diff options
| author | Silarn <jrim@rimpo.org> | 2019-01-05 20:00:16 -0600 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2019-01-05 20:00:16 -0600 |
| commit | e35cdd6c89ea27dfb8f3ea1f918192514617a64d (patch) | |
| tree | f35f50185df88c5104ca6c47133d07b2254202a3 /src | |
| parent | 15e47114175d7dd86cd6e774aff1d7872e87a647 (diff) | |
| parent | f2c145b2fc9d6ffce838398e06f7aa583d05887d (diff) | |
Merge remote-tracking branch 'origin/Develop' into archive_conflicts_2
Diffstat (limited to 'src')
30 files changed, 931 insertions, 887 deletions
diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui index 6bc51726..98a76061 100644 --- a/src/aboutdialog.ui +++ b/src/aboutdialog.ui @@ -371,6 +371,11 @@ </property>
<item>
<property name="text">
+ <string>Tannin (Original Creator)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
<string notr="true">blacksol</string>
</property>
</item>
diff --git a/src/bbcode.cpp b/src/bbcode.cpp index 56369538..84d7a7c0 100644 --- a/src/bbcode.cpp +++ b/src/bbcode.cpp @@ -88,7 +88,7 @@ public: return temp.replace(tagIter->second.first, QString("<font style=\"color: #%1;\">%2</font>").arg(color, content));
}
} else {
- qWarning("don't know how to deal with tag %s", qPrintable(tagName));
+ qWarning("don't know how to deal with tag %s", qUtf8Printable(tagName));
}
} else {
if (tagName == "*") {
diff --git a/src/directoryrefresher.cpp b/src/directoryrefresher.cpp index e6e6a8e0..c48b77d9 100644 --- a/src/directoryrefresher.cpp +++ b/src/directoryrefresher.cpp @@ -135,7 +135,7 @@ void DirectoryRefresher::addModFilesToStructure(DirectoryEntry *directoryStructu origin.addFile(file->getIndex());
file->addOrigin(origin.getID(), file->getFileTime(), L"", -1);
} else {
- qWarning("%s not found", qPrintable(fileInfo.fileName()));
+ qWarning("%s not found", qUtf8Printable(fileInfo.fileName()));
}
}
} else {
diff --git a/src/downloadlistwidget.cpp b/src/downloadlistwidget.cpp index 24695032..f885a5a8 100644 --- a/src/downloadlistwidget.cpp +++ b/src/downloadlistwidget.cpp @@ -32,9 +32,9 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. void DownloadProgressDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QModelIndex sourceIndex = m_SortProxy->mapToSource(index);
- if (sourceIndex.column() == DownloadList::COL_STATUS && sourceIndex.row() < m_Manager->numTotalDownloads()
+ bool pendingDownload = (sourceIndex.row() >= m_Manager->numTotalDownloads());
+ if (sourceIndex.column() == DownloadList::COL_STATUS && !pendingDownload
&& m_Manager->getState(sourceIndex.row()) == DownloadManager::STATE_DOWNLOADING) {
- bool pendingDownload = sourceIndex.row() >= m_Manager->numTotalDownloads();
QProgressBar progressBar;
progressBar.setProperty("downloadView", option.widget->property("downloadView"));
progressBar.setProperty("downloadProgress", true);
@@ -47,38 +47,73 @@ void DownloadProgressDelegate::paint(QPainter *painter, const QStyleOptionViewIt progressBar.setFormat(m_Manager->getProgress(sourceIndex.row()).second);
progressBar.setStyle(QApplication::style());
- /*
- QLabel progressText;
- progressText.setProperty("downloadView", option.widget->property("downloadView"));
- progressText.setProperty("downloadProgress", true);
- progressText.resize(option.rect.width(), option.rect.height());
- progressText.setAttribute(Qt::WA_TranslucentBackground);
- progressText.setAlignment(Qt::AlignCenter);
- progressText.setText(m_Manager->getProgress(sourceIndex.row()).second);
- progressText.setStyle(QApplication::style());
- */
-
// paint the background with default delegate first to preserve table cell styling
QStyledItemDelegate::paint(painter, option, index);
painter->save();
painter->translate(option.rect.topLeft());
progressBar.render(painter);
- //progressText.render(painter);
painter->restore();
} else {
QStyledItemDelegate::paint(painter, option, index);
}
}
+void DownloadListHeader::customResizeSections()
+{
+ // find the rightmost column that is not hidden
+ int rightVisible = count() - 1;
+ while (isSectionHidden(rightVisible) && rightVisible > 0)
+ rightVisible--;
+
+ // if that column is already squashed, squash others to the right side --
+ // otherwise to the left
+ if (sectionSize(rightVisible) == minimumSectionSize()) {
+ for (int idx = rightVisible; idx >= 0; idx--) {
+ if (!isSectionHidden(idx)) {
+ if (length() != width())
+ resizeSection(idx, std::max(sectionSize(idx) + width() - length(), minimumSectionSize()));
+ else
+ break;
+ }
+ }
+ } else {
+ for (int idx = 0; idx <= rightVisible; idx++) {
+ if (!isSectionHidden(idx)) {
+ if (length() != width())
+ resizeSection(idx, std::max(sectionSize(idx) + width() - length(), minimumSectionSize()));
+ else
+ break;
+ }
+ }
+ }
+}
+
+void DownloadListHeader::mouseReleaseEvent(QMouseEvent *event)
+{
+ QHeaderView::mouseReleaseEvent(event);
+ customResizeSections();
+}
+
DownloadListWidget::DownloadListWidget(QWidget *parent)
: QTreeView(parent)
{
- connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(onDoubleClick(QModelIndex)));
- connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onCustomContextMenu(QPoint)));
+ setHeader(new DownloadListHeader(Qt::Horizontal, this));
+ header()->setSectionsMovable(true);
header()->setContextMenuPolicy(Qt::CustomContextMenu);
+ header()->setCascadingSectionResizes(true);
+ header()->setStretchLastSection(false);
+ header()->setSectionResizeMode(QHeaderView::Interactive);
+ header()->setDefaultSectionSize(100);
+
+ setUniformRowHeights(true);
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ sortByColumn(1, Qt::DescendingOrder);
+
connect(header(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onHeaderCustomContextMenu(QPoint)));
+ connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(onDoubleClick(QModelIndex)));
+ connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onCustomContextMenu(QPoint)));
}
DownloadListWidget::~DownloadListWidget()
@@ -141,6 +176,14 @@ void DownloadListWidget::onHeaderCustomContextMenu(const QPoint &point) }
++i;
}
+
+ qobject_cast<DownloadListHeader*>(header())->customResizeSections();
+}
+
+void DownloadListWidget::resizeEvent(QResizeEvent *event)
+{
+ QTreeView::resizeEvent(event);
+ qobject_cast<DownloadListHeader*>(header())->customResizeSections();
}
void DownloadListWidget::onCustomContextMenu(const QPoint &point)
diff --git a/src/downloadlistwidget.h b/src/downloadlistwidget.h index 0002e2b4..4776d259 100644 --- a/src/downloadlistwidget.h +++ b/src/downloadlistwidget.h @@ -28,6 +28,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. #include <QLabel>
#include <QProgressBar>
#include <QTreeView>
+#include <QHeaderView>
#include <QStyledItemDelegate>
@@ -50,6 +51,18 @@ private: DownloadListSortProxy *m_SortProxy;
};
+class DownloadListHeader : public QHeaderView
+{
+ Q_OBJECT
+
+public:
+ explicit DownloadListHeader(Qt::Orientation orientation, QWidget *parent = nullptr) : QHeaderView(orientation, parent) {}
+ void customResizeSections();
+
+private:
+ void mouseReleaseEvent(QMouseEvent *event) override;
+};
+
class DownloadListWidget : public QTreeView
{
Q_OBJECT
@@ -101,6 +114,8 @@ private: DownloadManager *m_Manager;
DownloadList *m_SourceModel = 0;
int m_ContextRow;
+
+ void resizeEvent(QResizeEvent *event);
};
#endif // DOWNLOADLISTWIDGET_H
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 2784a8ce..15831126 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -378,7 +378,7 @@ void DownloadManager::refreshList() }
//if (m_ActiveDownloads.size() != downloadsBefore) {
- qDebug("downloads after refresh: %d", m_ActiveDownloads.size());
+ qDebug("Downloads after refresh: %d", m_ActiveDownloads.size());
//}
emit update(-1);
@@ -400,7 +400,7 @@ bool DownloadManager::addDownload(const QStringList &URLs, QString gameName, }
QUrl preferredUrl = QUrl::fromEncoded(URLs.first().toLocal8Bit());
- qDebug("selected download url: %s", qPrintable(preferredUrl.toString()));
+ qDebug("selected download url: %s", qUtf8Printable(preferredUrl.toString()));
QNetworkRequest request(preferredUrl);
request.setHeader(QNetworkRequest::UserAgentHeader, m_NexusInterface->getAccessManager()->userAgent());
return addDownload(m_NexusInterface->getAccessManager()->get(request), URLs, fileName, gameName, modID, fileID, fileInfo);
@@ -540,9 +540,9 @@ void DownloadManager::addNXMDownload(const QString &url) QStringList validGames;
validGames.append(m_ManagedGame->gameShortName());
validGames.append(m_ManagedGame->validShortNames());
- qDebug("add nxm download: %s", qPrintable(url));
+ qDebug("add nxm download: %s", qUtf8Printable(url));
if (!validGames.contains(nxmInfo.game(), Qt::CaseInsensitive)) {
- qDebug("download requested for wrong game (game: %s, url: %s)", qPrintable(m_ManagedGame->gameShortName()), qPrintable(nxmInfo.game()));
+ qDebug("download requested for wrong game (game: %s, url: %s)", qUtf8Printable(m_ManagedGame->gameShortName()), qUtf8Printable(nxmInfo.game()));
QMessageBox::information(nullptr, tr("Wrong Game"), tr("The download link is for a mod for \"%1\" but this instance of MO "
"has been set up for \"%2\".").arg(nxmInfo.game()).arg(m_ManagedGame->gameShortName()), QMessageBox::Ok);
return;
@@ -550,7 +550,7 @@ void DownloadManager::addNXMDownload(const QString &url) for (auto tuple : m_PendingDownloads) {
if (std::get<0>(tuple).compare(nxmInfo.game(), Qt::CaseInsensitive) == 0, std::get<1>(tuple) == nxmInfo.modId() && std::get<2>(tuple) == nxmInfo.fileId()) {
- qDebug("download requested is already started (mod id: %s, file id: %s)", qPrintable(QString(nxmInfo.modId())), qPrintable(QString(nxmInfo.fileId())));
+ qDebug("download requested is already started (mod id: %s, file id: %s)", qUtf8Printable(QString(nxmInfo.modId())), qUtf8Printable(QString(nxmInfo.fileId())));
QMessageBox::information(nullptr, tr("Already Started"), tr("A download for this mod file has already been queued."), QMessageBox::Ok);
return;
}
@@ -559,8 +559,8 @@ void DownloadManager::addNXMDownload(const QString &url) for (DownloadInfo *download : m_ActiveDownloads) {
if (download->m_FileInfo->modID == nxmInfo.modId() && download->m_FileInfo->fileID == nxmInfo.fileId()) {
if (download->m_State == STATE_DOWNLOADING || download->m_State == STATE_PAUSED || download->m_State == STATE_STARTED) {
- qDebug("download requested is already started (mod: %s, file: %s)", qPrintable(QString(download->m_FileInfo->modID)),
- qPrintable(download->m_FileInfo->fileName));
+ qDebug("download requested is already started (mod: %s, file: %s)", qUtf8Printable(QString(download->m_FileInfo->modID)),
+ qUtf8Printable(download->m_FileInfo->fileName));
QMessageBox::information(nullptr, tr("Already Started"), tr("There is already a download started for this file (mod: %1, file: %2).")
.arg(download->m_FileInfo->modName).arg(download->m_FileInfo->fileName), QMessageBox::Ok);
@@ -814,7 +814,7 @@ void DownloadManager::resumeDownloadInt(int index) if (info->m_State == STATE_ERROR) {
info->m_CurrentUrl = (info->m_CurrentUrl + 1) % info->m_Urls.count();
}
- qDebug("request resume from url %s", qPrintable(info->currentURL()));
+ qDebug("request resume from url %s", qUtf8Printable(info->currentURL()));
QNetworkRequest request(QUrl::fromEncoded(info->currentURL().toLocal8Bit()));
request.setHeader(QNetworkRequest::UserAgentHeader, m_NexusInterface->getAccessManager()->userAgent());
if (info->m_State != STATE_ERROR) {
@@ -1434,7 +1434,7 @@ QDateTime DownloadManager::matchDate(const QString &timeString) if (m_DateExpression.exactMatch(timeString)) {
return QDateTime::fromMSecsSinceEpoch(m_DateExpression.cap(1).toLongLong());
} else {
- qWarning("date not matched: %s", qPrintable(timeString));
+ qWarning("date not matched: %s", qUtf8Printable(timeString));
return QDateTime::currentDateTime();
}
}
@@ -1783,7 +1783,7 @@ void DownloadManager::downloadError(QNetworkReply::NetworkError error) {
if (error != QNetworkReply::OperationCanceledError) {
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
- qWarning("%s (%d)", reply != nullptr ? qPrintable(reply->errorString())
+ qWarning("%s (%d)", reply != nullptr ? qUtf8Printable(reply->errorString())
: "Download error occured",
error);
}
diff --git a/src/editexecutablesdialog.cpp b/src/editexecutablesdialog.cpp index fde6b397..be2ee127 100644 --- a/src/editexecutablesdialog.cpp +++ b/src/editexecutablesdialog.cpp @@ -324,7 +324,7 @@ void EditExecutablesDialog::on_executablesListBox_clicked(const QModelIndex &cur QString customOverwrite = m_Profile->setting("custom_overwrites", selectedExecutable.m_Title).toString(); if (!customOverwrite.isEmpty()) { index = ui->newFilesModBox->findText(customOverwrite); - qDebug("find %s -> %d", qPrintable(customOverwrite), index); + qDebug("find %s -> %d", qUtf8Printable(customOverwrite), index); } ui->newFilesModCheckBox->setChecked(index != -1); diff --git a/src/icondelegate.cpp b/src/icondelegate.cpp index e502dc69..249dae6f 100644 --- a/src/icondelegate.cpp +++ b/src/icondelegate.cpp @@ -54,7 +54,7 @@ void IconDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, if (!QPixmapCache::find(fullIconId, &icon)) {
icon = QIcon(iconId).pixmap(iconWidth, iconWidth);
if (icon.isNull()) {
- qWarning("failed to load icon %s", qPrintable(iconId));
+ qWarning("failed to load icon %s", qUtf8Printable(iconId));
}
QPixmapCache::insert(fullIconId, icon);
}
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index 76b1e086..57c5e861 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -758,7 +758,7 @@ bool InstallationManager::install(const QString &fileName, if (fileInfo.dir() == QDir(m_DownloadsDirectory)) { m_CurrentFile = fileInfo.fileName(); } - qDebug("using mod name \"%s\" (id %d) -> %s", modName->toUtf8().constData(), modID, qPrintable(m_CurrentFile)); + qDebug("using mod name \"%s\" (id %d) -> %s", modName->toUtf8().constData(), modID, qUtf8Printable(m_CurrentFile)); //If there's an archive already open, close it. This happens with the bundle //installer when it uncompresses a split archive, then finds it has a real archive @@ -770,8 +770,8 @@ bool InstallationManager::install(const QString &fileName, new MethodCallback<InstallationManager, void, QString *>(this, &InstallationManager::queryPassword)); if (!archiveOpen) { qDebug("integrated archiver can't open %s: %s (%d)", - qPrintable(fileName), - qPrintable(getErrorString(m_ArchiveHandler->getLastError())), + qUtf8Printable(fileName), + qUtf8Printable(getErrorString(m_ArchiveHandler->getLastError())), m_ArchiveHandler->getLastError()); } ON_BLOCK_EXIT(std::bind(&InstallationManager::postInstallCleanup, this)); @@ -841,7 +841,7 @@ bool InstallationManager::install(const QString &fileName, } } catch (const IncompatibilityException &e) { qCritical("plugin \"%s\" incompatible: %s", - qPrintable(installer->name()), e.what()); + qUtf8Printable(installer->name()), e.what()); } // act upon the installation result. at this point the files have already been diff --git a/src/instancemanager.cpp b/src/instancemanager.cpp index 9066741d..a5a52d63 100644 --- a/src/instancemanager.cpp +++ b/src/instancemanager.cpp @@ -86,7 +86,7 @@ bool InstanceManager::deleteLocalInstance(const QString &instanceId) const if (!MOBase::shellDelete(QStringList(instancePath),true)) { - qWarning("Failed to shell-delete \"%s\" (errorcode %lu), trying regular delete", qPrintable(instancePath), ::GetLastError()); + qWarning("Failed to shell-delete \"%s\" (errorcode %lu), trying regular delete", qUtf8Printable(instancePath), ::GetLastError()); if (!MOBase::removeDir(instancePath)) { qWarning("regular delete failed too"); diff --git a/src/logbuffer.cpp b/src/logbuffer.cpp index 522ce3c8..485e27db 100644 --- a/src/logbuffer.cpp +++ b/src/logbuffer.cpp @@ -127,7 +127,7 @@ void LogBuffer::log(QtMsgType type, const QMessageLogContext &context, {
// QMutexLocker doesn't support timeout...
if (!s_Mutex.tryLock(100)) {
- fprintf(stderr, "failed to log: %s", qPrintable(message));
+ fprintf(stderr, "failed to log: %s", qUtf8Printable(message));
return;
}
ON_BLOCK_EXIT([]() { s_Mutex.unlock(); });
@@ -137,17 +137,17 @@ void LogBuffer::log(QtMsgType type, const QMessageLogContext &context, }
if (type == QtDebugMsg) {
- fprintf(stdout, "%s [%c] %s\n", qPrintable(QTime::currentTime().toString()),
- msgTypeID(type), qPrintable(message));
+ fprintf(stdout, "%s [%c] %s\n", qUtf8Printable(QTime::currentTime().toString()),
+ msgTypeID(type), qUtf8Printable(message));
} else {
if (context.line != 0) {
fprintf(stdout, "%s [%c] (%s:%u) %s\n",
- qPrintable(QTime::currentTime().toString()), msgTypeID(type),
- context.file, context.line, qPrintable(message));
+ qUtf8Printable(QTime::currentTime().toString()), msgTypeID(type),
+ context.file, context.line, qUtf8Printable(message));
} else {
fprintf(stdout, "%s [%c] %s\n",
- qPrintable(QTime::currentTime().toString()), msgTypeID(type),
- qPrintable(message));
+ qUtf8Printable(QTime::currentTime().toString()), msgTypeID(type),
+ qUtf8Printable(message));
}
}
fflush(stdout);
diff --git a/src/main.cpp b/src/main.cpp index 4d2bb7ed..190a8f4b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -262,7 +262,7 @@ QString determineProfile(QStringList &arguments, const QSettings &settings) qDebug("no configured profile");
selectedProfileName = "Default";
} else {
- qDebug("configured profile: %s", qPrintable(selectedProfileName));
+ qDebug("configured profile: %s", qUtf8Printable(selectedProfileName));
}
return selectedProfileName;
@@ -401,7 +401,7 @@ void setupPath() {
static const int BUFSIZE = 4096;
- qDebug("MO at: %s", qPrintable(QDir::toNativeSeparators(
+ qDebug("MO at: %s", qUtf8Printable(QDir::toNativeSeparators(
QCoreApplication::applicationDirPath())));
QCoreApplication::setLibraryPaths(QStringList(QCoreApplication::applicationDirPath() + "/dlls") + QCoreApplication::libraryPaths());
@@ -429,18 +429,18 @@ static void preloadSsl() else {
QString libeay32 = appPath + "\\libeay32.dll";
if (!QFile::exists(libeay32))
- qWarning("libeay32.dll not found: %s", qPrintable(libeay32));
+ qWarning("libeay32.dll not found: %s", qUtf8Printable(libeay32));
else if (!LoadLibraryW(libeay32.toStdWString().c_str()))
- qWarning("failed to load: %s, %d", qPrintable(libeay32), GetLastError());
+ qWarning("failed to load: %s, %d", qUtf8Printable(libeay32), GetLastError());
}
if (GetModuleHandleA("ssleay32.dll"))
qWarning("ssleay32.dll already loaded?!");
else {
QString ssleay32 = appPath + "\\ssleay32.dll";
if (!QFile::exists(ssleay32))
- qWarning("ssleay32.dll not found: %s", qPrintable(ssleay32));
+ qWarning("ssleay32.dll not found: %s", qUtf8Printable(ssleay32));
else if (!LoadLibraryW(ssleay32.toStdWString().c_str()))
- qWarning("failed to load: %s, %d", qPrintable(ssleay32), GetLastError());
+ qWarning("failed to load: %s, %d", qUtf8Printable(ssleay32), GetLastError());
}
}
@@ -453,7 +453,7 @@ int runApplication(MOApplication &application, SingleInstance &instance, const QString &splashPath)
{
- qDebug("Starting Mod Organizer version %s revision %s", qPrintable(getVersionDisplayString()),
+ qDebug("Starting Mod Organizer version %s revision %s", qUtf8Printable(getVersionDisplayString()),
#if defined(HGID)
HGID
#elif defined(GITID)
@@ -471,7 +471,7 @@ int runApplication(MOApplication &application, SingleInstance &instance, #endif
QString dataPath = application.property("dataPath").toString();
- qDebug("data path: %s", qPrintable(dataPath));
+ qDebug("data path: %s", qUtf8Printable(dataPath));
if (!bootstrap()) {
reportError("failed to set up data paths");
@@ -483,7 +483,7 @@ int runApplication(MOApplication &application, SingleInstance &instance, QStringList arguments = application.arguments();
try {
- qDebug("Working directory: %s", qPrintable(QDir::toNativeSeparators(QDir::currentPath())));
+ qDebug("Working directory: %s", qUtf8Printable(QDir::toNativeSeparators(QDir::currentPath())));
QSettings settings(dataPath + "/"
+ QString::fromStdWString(AppConfig::iniFileName()),
@@ -552,7 +552,7 @@ int runApplication(MOApplication &application, SingleInstance &instance, }
game->setGameVariant(settings.value("game_edition").toString());
- qDebug("managing game at %s", qPrintable(QDir::toNativeSeparators(
+ qDebug("managing game at %s", qUtf8Printable(QDir::toNativeSeparators(
game->gameDirectory().absolutePath())));
organizer.updateExecutablesList(settings);
@@ -578,12 +578,12 @@ int runApplication(MOApplication &application, SingleInstance &instance, }
else if (OrganizerCore::isNxmLink(arguments.at(1))) {
qDebug("starting download from command line: %s",
- qPrintable(arguments.at(1)));
+ qUtf8Printable(arguments.at(1)));
organizer.externalMessage(arguments.at(1));
}
else {
QString exeName = arguments.at(1);
- qDebug("starting %s from command line", qPrintable(exeName));
+ qDebug("starting %s from command line", qUtf8Printable(exeName));
arguments.removeFirst(); // remove application name (ModOrganizer.exe)
arguments.removeFirst(); // remove binary name
// pass the remaining parameters to the binary
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a2696770..f2ad0470 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -476,8 +476,8 @@ MainWindow::MainWindow(QSettings &initSettings actionWidget->style()->polish(actionWidget);
}
- emit updatePluginCount();
- emit updateModCount();
+ updatePluginCount();
+ updateModCount();
}
@@ -1575,7 +1575,7 @@ void MainWindow::refreshSaveList() QDir savesDir = currentSavesDir();
savesDir.setNameFilters(filters);
- qDebug("reading save games from %s", qPrintable(savesDir.absolutePath()));
+ qDebug("reading save games from %s", qUtf8Printable(savesDir.absolutePath()));
QFileInfoList files = savesDir.entryInfoList(QDir::Files, QDir::Time);
for (const QFileInfo &file : files) {
@@ -1780,7 +1780,7 @@ void MainWindow::setupNetworkProxy(bool activate) query.setProtocolTag("http");
QList<QNetworkProxy> proxies = QNetworkProxyFactory::systemProxyForQuery(query);
if ((proxies.size() > 0) && (proxies.at(0).type() != QNetworkProxy::NoProxy)) {
- qDebug("Using proxy: %s", qPrintable(proxies.at(0).hostName()));
+ qDebug("Using proxy: %s", qUtf8Printable(proxies.at(0).hostName()));
QNetworkProxy::setApplicationProxy(proxies[0]);
} else {
qDebug("Not using proxy");
@@ -2240,7 +2240,7 @@ void MainWindow::directory_refreshed() void MainWindow::esplist_changed()
{
- emit updatePluginCount();
+ updatePluginCount();
}
void MainWindow::modorder_changed()
@@ -2449,7 +2449,7 @@ void MainWindow::refreshFilters() while (currentID != 0) {
categoriesUsed.insert(currentID);
if (!cycleTest.insert(currentID).second) {
- qWarning("cycle in categories: %s", qPrintable(SetJoin(cycleTest, ", ")));
+ qWarning("cycle in categories: %s", qUtf8Printable(SetJoin(cycleTest, ", ")));
break;
}
currentID = m_CategoryFactory.getParentID(m_CategoryFactory.getCategoryIndex(currentID));
@@ -2514,7 +2514,7 @@ void MainWindow::restoreBackup_clicked() void MainWindow::modlistChanged(const QModelIndex&, int)
{
m_OrganizerCore.currentProfile()->writeModlist();
- emit updateModCount();
+ updateModCount();
}
void MainWindow::modlistSelectionChanged(const QModelIndex ¤t, const QModelIndex&)
@@ -2587,6 +2587,8 @@ void MainWindow::removeMod_clicked() } else {
m_OrganizerCore.modList()->removeRow(m_ContextRow, QModelIndex());
}
+ updateModCount();
+ updatePluginCount();
} catch (const std::exception &e) {
reportError(tr("failed to remove mod: %1").arg(e.what()));
}
@@ -2765,7 +2767,7 @@ void MainWindow::unendorse_clicked() void MainWindow::loginFailed(const QString &error)
{
- qDebug("login failed: %s", qPrintable(error));
+ qDebug("login failed: %s", qUtf8Printable(error));
statusBar()->hide();
}
@@ -3251,14 +3253,14 @@ void MainWindow::updatePluginCount() for (QString plugin : list->pluginNames()) {
bool active = list->isEnabled(plugin);
bool visible = m_PluginListSortProxy->filterMatchesPlugin(plugin);
- if (list->isMaster(plugin)) {
- masterCount++;
- activeMasterCount += active;
- activeVisibleCount += visible && active;
- } else if (list->isLight(plugin) || list->isLightFlagged(plugin)) {
+ if (list->isLight(plugin) || list->isLightFlagged(plugin)) {
lightMasterCount++;
activeLightMasterCount += active;
activeVisibleCount += visible && active;
+ } else if (list->isMaster(plugin)) {
+ masterCount++;
+ activeMasterCount += active;
+ activeVisibleCount += visible && active;
} else {
regularCount++;
activeRegularCount += active;
@@ -3270,13 +3272,13 @@ void MainWindow::updatePluginCount() int totalCount = masterCount + lightMasterCount + regularCount;
ui->activePluginsCounter->display(activeVisibleCount);
- ui->activePluginsCounter->setToolTip(tr("<table cellspacing=\"4\">"
- "<tr><th>Type</th><th>Active</th><th>Total</th></tr>"
- "<tr><td>Active plugins:</td><td align=right>%1</td><td align=right>%2</td></tr>"
- "<tr><td>Active ESMs:</td><td align=right>%3</td><td align=right>%4</td></tr>"
- "<tr><td>Active ESPs:</td><td align=right>%7</td><td align=right>%8</td></tr>"
- "<tr><td>Active ESMs+ESPs:</td><td align=right>%9</td><td align=right>%10</td></tr>"
- "<tr><td>Active ESLs:</td><td align=right>%5</td><td align=right>%6</td></tr>"
+ ui->activePluginsCounter->setToolTip(tr("<table cellspacing=\"6\">"
+ "<tr><th>Type</th><th>Active </th><th>Total</th></tr>"
+ "<tr><td>All plugins:</td><td align=right>%1 </td><td align=right>%2</td></tr>"
+ "<tr><td>ESMs:</td><td align=right>%3 </td><td align=right>%4</td></tr>"
+ "<tr><td>ESPs:</td><td align=right>%7 </td><td align=right>%8</td></tr>"
+ "<tr><td>ESMs+ESPs:</td><td align=right>%9 </td><td align=right>%10</td></tr>"
+ "<tr><td>ESLs:</td><td align=right>%5 </td><td align=right>%6</td></tr>"
"</table>")
.arg(activeCount).arg(totalCount)
.arg(activeMasterCount).arg(masterCount)
@@ -3744,7 +3746,7 @@ void MainWindow::addRemoveCategories_MenuHandler() { int maxRow = -1;
for (const QPersistentModelIndex &idx : selected) {
- qDebug("change categories on: %s", qPrintable(idx.data().toString()));
+ qDebug("change categories on: %s", qUtf8Printable(idx.data().toString()));
QModelIndex modIdx = mapToModel(m_OrganizerCore.modList(), idx);
if (modIdx.row() != m_ContextIdx.row()) {
addRemoveCategoriesFromMenu(menu, modIdx.row(), m_ContextIdx.row());
@@ -3826,7 +3828,7 @@ void MainWindow::saveArchiveList() }
}
if (archiveFile.commitIfDifferent(m_ArchiveListHash)) {
- qDebug("%s saved", qPrintable(QDir::toNativeSeparators(m_OrganizerCore.currentProfile()->getArchivesFileName())));
+ qDebug("%s saved", qUtf8Printable(QDir::toNativeSeparators(m_OrganizerCore.currentProfile()->getArchivesFileName())));
}
} else {
qWarning("archive list not initialised");
@@ -4076,6 +4078,7 @@ void MainWindow::exportModListCSV() mod_Priority->setChecked(true);
QCheckBox *mod_Name = new QCheckBox(tr("Mod_Name"));
mod_Name->setChecked(true);
+ QCheckBox *mod_Note = new QCheckBox(tr("Notes_column"));
QCheckBox *mod_Status = new QCheckBox(tr("Mod_Status"));
QCheckBox *primary_Category = new QCheckBox(tr("Primary_Category"));
QCheckBox *nexus_ID = new QCheckBox(tr("Nexus_ID"));
@@ -4088,6 +4091,7 @@ void MainWindow::exportModListCSV() vbox1->addWidget(mod_Priority);
vbox1->addWidget(mod_Name);
vbox1->addWidget(mod_Status);
+ vbox1->addWidget(mod_Note);
vbox1->addWidget(primary_Category);
vbox1->addWidget(nexus_ID);
vbox1->addWidget(mod_Nexus_URL);
@@ -4127,6 +4131,8 @@ void MainWindow::exportModListCSV() fields.push_back(std::make_pair(QString("#Mod_Name"), CSVBuilder::TYPE_STRING));
if (mod_Status->isChecked())
fields.push_back(std::make_pair(QString("#Mod_Status"), CSVBuilder::TYPE_STRING));
+ if (mod_Note->isChecked())
+ fields.push_back(std::make_pair(QString("#Note"), CSVBuilder::TYPE_STRING));
if (primary_Category->isChecked())
fields.push_back(std::make_pair(QString("#Primary_Category"), CSVBuilder::TYPE_STRING));
if (nexus_ID->isChecked())
@@ -4162,6 +4168,8 @@ void MainWindow::exportModListCSV() builder.setRowField("#Mod_Name", info->name());
if (mod_Status->isChecked())
builder.setRowField("#Mod_Status", (enabled)? "Enabled" : "Disabled");
+ if (mod_Note->isChecked())
+ builder.setRowField("#Note", QString("%1").arg(info->comments().remove(',')));
if (primary_Category->isChecked())
builder.setRowField("#Primary_Category", (m_CategoryFactory.categoryExists(info->getPrimaryCategory())) ? m_CategoryFactory.getCategoryName(info->getPrimaryCategory()) : "");
if (nexus_ID->isChecked())
@@ -4741,7 +4749,7 @@ void MainWindow::installTranslator(const QString &name) QString fileName = name + "_" + m_CurrentLanguage;
if (!translator->load(fileName, qApp->applicationDirPath() + "/translations")) {
if (m_CurrentLanguage.compare("en", Qt::CaseInsensitive)) {
- qDebug("localization file %s not found", qPrintable(fileName));
+ qDebug("localization file %s not found", qUtf8Printable(fileName));
} // we don't actually expect localization files for English
}
@@ -4766,7 +4774,7 @@ void MainWindow::languageChange(const QString &newLanguage) installTranslator(QFileInfo(fileName).baseName());
}
ui->retranslateUi(this);
- qDebug("loaded language %s", qPrintable(newLanguage));
+ qDebug("loaded language %s", qUtf8Printable(newLanguage));
ui->profileBox->setItemText(0, QObject::tr("<Manage...>"));
@@ -5220,11 +5228,6 @@ void MainWindow::initDownloadView() ui->downloadView->setModel(sortProxy);
ui->downloadView->setManager(m_OrganizerCore.downloadManager());
ui->downloadView->setItemDelegate(new DownloadProgressDelegate(m_OrganizerCore.downloadManager(), sortProxy, ui->downloadView));
- ui->downloadView->setUniformRowHeights(false);
- ui->downloadView->header()->setStretchLastSection(false);
- ui->downloadView->header()->setSectionResizeMode(QHeaderView::Interactive);
- ui->downloadView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
- ui->downloadView->sortByColumn(1, Qt::DescendingOrder);
updateDownloadView();
connect(ui->downloadView, SIGNAL(installDownload(int)), &m_OrganizerCore, SLOT(installDownload(int)));
@@ -5244,20 +5247,21 @@ void MainWindow::updateDownloadView() // set the view attribute and default row sizes
if (m_OrganizerCore.settings().compactDownloads()) {
ui->downloadView->setProperty("downloadView", "compact");
- setStyleSheet("DownloadListWidget::item { padding: 4px; }");
+ setStyleSheet("DownloadListWidget::item { padding: 4px 0; }");
} else {
ui->downloadView->setProperty("downloadView", "standard");
- setStyleSheet("DownloadListWidget::item { padding: 16px; }");
+ setStyleSheet("DownloadListWidget::item { padding: 16px 0; }");
}
- setStyleSheet("DownloadListWidget::item:hover { padding: 0px; }");
- setStyleSheet("DownloadListWidget::item:selected { padding: 0px; }");
+ //setStyleSheet("DownloadListWidget::item:hover { padding: 0px; }");
+ //setStyleSheet("DownloadListWidget::item:selected { padding: 0px; }");
// reapply global stylesheet on the widget level (!) to override the defaults
- ui->downloadView->setStyleSheet(styleSheet());
+ //ui->downloadView->setStyleSheet(styleSheet());
ui->downloadView->setMetaDisplay(m_OrganizerCore.settings().metaDownloads());
ui->downloadView->style()->unpolish(ui->downloadView);
ui->downloadView->style()->polish(ui->downloadView);
+ qobject_cast<DownloadListHeader*>(ui->downloadView->header())->customResizeSections();
m_OrganizerCore.downloadManager()->refreshList();
}
@@ -6186,7 +6190,7 @@ void MainWindow::dropLocalFile(const QUrl &url, const QString &outputDir, bool m {
QFileInfo file(url.toLocalFile());
if (!file.exists()) {
- qWarning("invalid source file %s", qPrintable(file.absoluteFilePath()));
+ qWarning("invalid source file %s", qUtf8Printable(file.absoluteFilePath()));
return;
}
QString target = outputDir + "/" + file.fileName();
@@ -6219,7 +6223,7 @@ void MainWindow::dropLocalFile(const QUrl &url, const QString &outputDir, bool m success = shellCopy(file.absoluteFilePath(), target, true, this);
}
if (!success) {
- qCritical("file operation failed: %s", qPrintable(windowsErrorString(::GetLastError())));
+ qCritical("file operation failed: %s", qUtf8Printable(windowsErrorString(::GetLastError())));
}
}
diff --git a/src/messagedialog.cpp b/src/messagedialog.cpp index 90b0a9d3..6c6de3e7 100644 --- a/src/messagedialog.cpp +++ b/src/messagedialog.cpp @@ -81,7 +81,7 @@ void MessageDialog::resizeEvent(QResizeEvent *event) void MessageDialog::showMessage(const QString &text, QWidget *reference, bool bringToFront)
{
- qDebug("%s", qPrintable(text));
+ qDebug("%s", qUtf8Printable(text));
if (reference != nullptr) {
if (bringToFront || (qApp->activeWindow() != nullptr)) {
MessageDialog *dialog = new MessageDialog(text, reference);
diff --git a/src/moapplication.cpp b/src/moapplication.cpp index 9ddd9e54..3a791827 100644 --- a/src/moapplication.cpp +++ b/src/moapplication.cpp @@ -137,7 +137,7 @@ void MOApplication::updateStyle(const QString &fileName) if (QFile::exists(fileName)) {
setStyleSheet(QString("file:///%1").arg(fileName));
} else {
- qWarning("invalid stylesheet: %s", qPrintable(fileName));
+ qWarning("invalid stylesheet: %s", qUtf8Printable(fileName));
}
}
}
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index 548e3178..45c3985b 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -302,7 +302,7 @@ bool ModInfoRegular::setName(const QString &name) } else { if (!shellRename(modDir.absoluteFilePath(m_Name), modDir.absoluteFilePath(name))) { qCritical("failed to rename mod %s (errorcode %d)", - qPrintable(name), ::GetLastError()); + qUtf8Printable(name), ::GetLastError()); return false; } } diff --git a/src/modlist.cpp b/src/modlist.cpp index a0822e49..8f6bd47e 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -987,7 +987,7 @@ bool ModList::dropURLs(const QMimeData *mimeData, int row, const QModelIndex &pa QString overwriteName = ModInfo::getByIndex(overwriteIndex)->name();
for (const QUrl &url : mimeData->urls()) {
- qDebug("URL drop requested: %s", qPrintable(url.toLocalFile()));
+ qDebug("URL drop requested: %s", qUtf8Printable(url.toLocalFile()));
if (!url.isLocalFile()) {
qDebug("URL drop ignored: Not a local file.");
continue;
diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp index aaf93f5a..5797d5af 100644 --- a/src/modlistsortproxy.cpp +++ b/src/modlistsortproxy.cpp @@ -58,16 +58,20 @@ void ModListSortProxy::updateFilterActive() void ModListSortProxy::setCategoryFilter(const std::vector<int> &categories)
{
- m_CategoryFilter = categories;
- updateFilterActive();
- invalidate();
+ if (categories != m_CategoryFilter) {
+ m_CategoryFilter = categories;
+ updateFilterActive();
+ invalidate();
+ }
}
void ModListSortProxy::setContentFilter(const std::vector<int> &content)
{
- m_ContentFilter = content;
- updateFilterActive();
- invalidate();
+ if (content != m_ContentFilter) {
+ m_ContentFilter = content;
+ updateFilterActive();
+ invalidate();
+ }
}
Qt::ItemFlags ModListSortProxy::flags(const QModelIndex &modelIndex) const
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index e97e9800..c6f05405 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -226,7 +226,7 @@ void NexusInterface::interpretNexusFileName(const QString &fileName, QString &mo } else {
modID = strtol(candidate.c_str(), nullptr, 10);
}
- qDebug("mod id guessed: %s -> %d", qPrintable(fileName), modID);
+ qDebug("mod id guessed: %s -> %d", qUtf8Printable(fileName), modID);
} else if (std::regex_search(fileNameUTF8.constData(), result, simpleexp)) {
qDebug("simple expression matched, using name only");
modName = QString::fromUtf8(result[1].str().c_str());
@@ -542,7 +542,7 @@ void NexusInterface::requestFinished(std::list<NXMRequestInfo>::iterator iter) if (nexusError.length() == 0) {
nexusError = tr("empty response");
}
- qDebug("nexus error: %s", qPrintable(nexusError));
+ qDebug("nexus error: %s", qUtf8Printable(nexusError));
emit nxmRequestFailed(iter->m_GameName, iter->m_ModID, iter->m_FileID, iter->m_UserData, iter->m_ID, nexusError);
} else {
bool ok;
@@ -602,8 +602,8 @@ void NexusInterface::requestError(QNetworkReply::NetworkError) }
qCritical("request (%s) error: %s (%d)",
- qPrintable(reply->url().toString()),
- qPrintable(reply->errorString()),
+ qUtf8Printable(reply->url().toString()),
+ qUtf8Printable(reply->errorString()),
reply->error());
}
diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index 426c8b9c..912eab30 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -106,7 +106,7 @@ void NXMAccessManager::showCookies() const for (const QNetworkCookie &cookie : cookieJar()->cookiesForUrl(url)) {
qDebug("%s - %s (expires: %s)",
cookie.name().constData(), cookie.value().constData(),
- qPrintable(cookie.expirationDate().toString()));
+ qUtf8Printable(cookie.expirationDate().toString()));
}
}
@@ -164,7 +164,7 @@ void NXMAccessManager::retrieveCredentials() connect(reply, static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
[=] (QNetworkReply::NetworkError) {
- qDebug("failed to retrieve account credentials: %s", qPrintable(reply->errorString()));
+ qDebug("failed to retrieve account credentials: %s", qUtf8Printable(reply->errorString()));
reply->deleteLater();
});
}
@@ -235,7 +235,7 @@ QString NXMAccessManager::userAgent(const QString &subModule) const void NXMAccessManager::pageLogin()
{
- qDebug("logging %s in on Nexus", qPrintable(m_Username));
+ qDebug("logging %s in on Nexus", qUtf8Printable(m_Username));
QString requestString = (Nexus_Management_URL + "/Sessions/?Login&uri=%1")
.arg(QString(QUrl::toPercentEncoding(Nexus_Management_URL)));
diff --git a/src/organizer_en.ts b/src/organizer_en.ts index 9d891122..299ffe6a 100644 --- a/src/organizer_en.ts +++ b/src/organizer_en.ts @@ -27,6 +27,7 @@ <message> <location filename="aboutdialog.ui" line="160"/> <source>Lead Developers/ Maintainers</source> + <oldsource>Current Maintainers</oldsource> <translation type="unfinished"></translation> </message> <message> @@ -299,12 +300,12 @@ p, li { white-space: pre-wrap; } <context> <name>DirectoryRefresher</name> <message> - <location filename="directoryrefresher.cpp" line="112"/> + <location filename="directoryrefresher.cpp" line="94"/> <source>failed to parse bsa %1: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="directoryrefresher.cpp" line="178"/> + <location filename="directoryrefresher.cpp" line="160"/> <source>failed to read mod (%1): %2</source> <translation type="unfinished"></translation> </message> @@ -415,145 +416,145 @@ p, li { white-space: pre-wrap; } <context> <name>DownloadListWidget</name> <message> - <location filename="downloadlistwidget.cpp" line="158"/> + <location filename="downloadlistwidget.cpp" line="201"/> <source>Install</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="160"/> + <location filename="downloadlistwidget.cpp" line="203"/> <source>Query Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="162"/> + <location filename="downloadlistwidget.cpp" line="205"/> <source>Visit on Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="163"/> + <location filename="downloadlistwidget.cpp" line="206"/> <source>Open File</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="164"/> - <location filename="downloadlistwidget.cpp" line="176"/> - <location filename="downloadlistwidget.cpp" line="181"/> + <location filename="downloadlistwidget.cpp" line="207"/> + <location filename="downloadlistwidget.cpp" line="219"/> + <location filename="downloadlistwidget.cpp" line="224"/> <source>Show in Folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="168"/> - <location filename="downloadlistwidget.cpp" line="179"/> + <location filename="downloadlistwidget.cpp" line="211"/> + <location filename="downloadlistwidget.cpp" line="222"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="170"/> + <location filename="downloadlistwidget.cpp" line="213"/> <source>Un-Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="172"/> + <location filename="downloadlistwidget.cpp" line="215"/> <source>Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="174"/> + <location filename="downloadlistwidget.cpp" line="217"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="175"/> + <location filename="downloadlistwidget.cpp" line="218"/> <source>Pause</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="180"/> + <location filename="downloadlistwidget.cpp" line="223"/> <source>Resume</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="186"/> + <location filename="downloadlistwidget.cpp" line="229"/> <source>Delete Installed...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="187"/> + <location filename="downloadlistwidget.cpp" line="230"/> <source>Delete Uninstalled...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="188"/> + <location filename="downloadlistwidget.cpp" line="231"/> <source>Delete All...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="192"/> + <location filename="downloadlistwidget.cpp" line="235"/> <source>Hide Installed...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="193"/> + <location filename="downloadlistwidget.cpp" line="236"/> <source>Hide Uninstalled...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="194"/> + <location filename="downloadlistwidget.cpp" line="237"/> <source>Hide All...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="196"/> + <location filename="downloadlistwidget.cpp" line="239"/> <source>Un-Hide All...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="214"/> - <location filename="downloadlistwidget.cpp" line="269"/> - <location filename="downloadlistwidget.cpp" line="278"/> - <location filename="downloadlistwidget.cpp" line="287"/> + <location filename="downloadlistwidget.cpp" line="257"/> + <location filename="downloadlistwidget.cpp" line="312"/> + <location filename="downloadlistwidget.cpp" line="321"/> + <location filename="downloadlistwidget.cpp" line="330"/> <source>Delete Files?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="215"/> + <location filename="downloadlistwidget.cpp" line="258"/> <source>This will permanently delete the selected download.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="270"/> + <location filename="downloadlistwidget.cpp" line="313"/> <source>This will remove all finished downloads from this list and from disk.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="279"/> + <location filename="downloadlistwidget.cpp" line="322"/> <source>This will remove all installed downloads from this list and from disk.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="288"/> + <location filename="downloadlistwidget.cpp" line="331"/> <source>This will remove all uninstalled downloads from this list and from disk.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="296"/> - <location filename="downloadlistwidget.cpp" line="305"/> - <location filename="downloadlistwidget.cpp" line="314"/> + <location filename="downloadlistwidget.cpp" line="339"/> + <location filename="downloadlistwidget.cpp" line="348"/> + <location filename="downloadlistwidget.cpp" line="357"/> <source>Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="297"/> + <location filename="downloadlistwidget.cpp" line="340"/> <source>This will remove all finished downloads from this list (but NOT from disk).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="306"/> + <location filename="downloadlistwidget.cpp" line="349"/> <source>This will remove all installed downloads from this list (but NOT from disk).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="315"/> + <location filename="downloadlistwidget.cpp" line="358"/> <source>This will remove all uninstalled downloads from this list (but NOT from disk).</source> <translation type="unfinished"></translation> </message> @@ -1449,20 +1450,20 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="mainwindow.ui" line="273"/> - <location filename="mainwindow.ui" line="891"/> + <location filename="mainwindow.ui" line="888"/> <source>Restore Backup...</source> <translation type="unfinished"></translation> </message> <message> <location filename="mainwindow.ui" line="287"/> - <location filename="mainwindow.ui" line="911"/> - <location filename="mainwindow.cpp" line="4375"/> + <location filename="mainwindow.ui" line="908"/> + <location filename="mainwindow.cpp" line="4346"/> <source>Create Backup</source> <translation type="unfinished"></translation> </message> <message> <location filename="mainwindow.ui" line="301"/> - <location filename="mainwindow.ui" line="925"/> + <location filename="mainwindow.ui" line="922"/> <source>Active:</source> <translation type="unfinished"></translation> </message> @@ -1484,8 +1485,8 @@ p, li { white-space: pre-wrap; } <message> <location filename="mainwindow.ui" line="523"/> <location filename="mainwindow.ui" line="644"/> - <location filename="mainwindow.ui" line="1063"/> - <location filename="mainwindow.ui" line="1392"/> + <location filename="mainwindow.ui" line="1060"/> + <location filename="mainwindow.ui" line="1369"/> <source>Filter</source> <translation type="unfinished"></translation> </message> @@ -1563,22 +1564,22 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="867"/> + <location filename="mainwindow.ui" line="864"/> <source>Sort</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="938"/> + <location filename="mainwindow.ui" line="935"/> <source>This provides statistics about the plugin list. The total number of active plugins is normally displayed. Other statistics may be accessed with the tooltip of this counter.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1002"/> + <location filename="mainwindow.ui" line="999"/> <source>List of available esp/esm files</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1005"/> + <location filename="mainwindow.ui" line="1002"/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1587,27 +1588,27 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1076"/> + <location filename="mainwindow.ui" line="1073"/> <source>Archives</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1096"/> + <location filename="mainwindow.ui" line="1093"/> <source><html><head/><body><p>BSAs / BA2s are bundles of game assets (textures, scripts, etc.). By default, the engine loads these bundles in a separate step from loose files. <p>Their load order is specified by the priority of the corresponding plugin (right pane, plugins tab).</p><p>If there is a matching plugin, the game will load them no matter what.</p></body></html></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1099"/> + <location filename="mainwindow.ui" line="1096"/> <source><html><head/><body><p>Currently detected archives. (<a href="#"><span style=" text-decoration: underline; color:#0000ff;">What is an archive?</span></a>)</p></body></html></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1114"/> + <location filename="mainwindow.ui" line="1111"/> <source>List of available BS Archives. Archives not checked here are not managed by MO and ignore installation order.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1117"/> + <location filename="mainwindow.ui" line="1114"/> <source>BSA files are archives (comparable to .zip files) that contain data assets (meshes, textures, ...) to be used by the game. As such they "compete" with loose files in your data directory over which is loaded. By default, BSAs that share their base name with an enabled ESP (i.e. plugin.esp and plugin.bsa) are automatically loaded and will have precedence over all loose files, the installation order you set up to the left is then ignored! @@ -1615,72 +1616,61 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1151"/> + <location filename="mainwindow.ui" line="1148"/> <source>Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1169"/> + <location filename="mainwindow.ui" line="1166"/> <source>refresh data-directory overview</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1172"/> + <location filename="mainwindow.ui" line="1169"/> <source>Refresh the overview. This may take a moment.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1175"/> - <location filename="mainwindow.ui" line="1318"/> - <location filename="mainwindow.cpp" line="4250"/> - <location filename="mainwindow.cpp" line="5178"/> + <location filename="mainwindow.ui" line="1172"/> + <location filename="mainwindow.ui" line="1295"/> + <location filename="mainwindow.cpp" line="4221"/> + <location filename="mainwindow.cpp" line="5128"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1191"/> + <location filename="mainwindow.ui" line="1188"/> <source>This is an overview of your data directory as visible to the game (and tools). </source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1204"/> + <location filename="mainwindow.ui" line="1201"/> <source>File</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1209"/> + <location filename="mainwindow.ui" line="1206"/> <source>Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1221"/> - <location filename="mainwindow.ui" line="1224"/> - <source>Filters the above list so that only conflicts are displayed.</source> + <location filename="mainwindow.ui" line="1216"/> + <location filename="mainwindow.ui" line="1219"/> + <source>Filter the above list so that only conflicts are displayed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1227"/> + <location filename="mainwindow.ui" line="1222"/> <source>Show only conflicts</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1234"/> - <location filename="mainwindow.ui" line="1240"/> - <source>Filters the above list so that files from archives are not shown</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="mainwindow.ui" line="1243"/> - <source>Show files from Archives</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="mainwindow.ui" line="1253"/> + <location filename="mainwindow.ui" line="1230"/> <source>Saves</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1277"/> + <location filename="mainwindow.ui" line="1254"/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -1691,160 +1681,160 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1297"/> + <location filename="mainwindow.ui" line="1274"/> <source>Downloads</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1315"/> + <location filename="mainwindow.ui" line="1292"/> <source>Refresh downloads view</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1346"/> + <location filename="mainwindow.ui" line="1323"/> <source>This is a list of mods you downloaded from Nexus. Double click one to install it. You can also drag an archive into here.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1372"/> + <location filename="mainwindow.ui" line="1349"/> <source>Show Hidden</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1437"/> + <location filename="mainwindow.ui" line="1414"/> <source>Tool Bar</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1480"/> + <location filename="mainwindow.ui" line="1457"/> <source>Install Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1483"/> + <location filename="mainwindow.ui" line="1460"/> <source>Install &Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1486"/> + <location filename="mainwindow.ui" line="1463"/> <source>Install a new mod from an archive</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1489"/> + <location filename="mainwindow.ui" line="1466"/> <source>Ctrl+M</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1498"/> + <location filename="mainwindow.ui" line="1475"/> <source>Profiles</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1501"/> + <location filename="mainwindow.ui" line="1478"/> <source>&Profiles</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1504"/> + <location filename="mainwindow.ui" line="1481"/> <source>Configure Profiles</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1507"/> + <location filename="mainwindow.ui" line="1484"/> <source>Ctrl+P</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1516"/> + <location filename="mainwindow.ui" line="1493"/> <source>Executables</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1519"/> + <location filename="mainwindow.ui" line="1496"/> <source>&Executables</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1522"/> + <location filename="mainwindow.ui" line="1499"/> <source>Configure the executables that can be started through Mod Organizer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1525"/> + <location filename="mainwindow.ui" line="1502"/> <source>Ctrl+E</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1534"/> - <location filename="mainwindow.ui" line="1540"/> + <location filename="mainwindow.ui" line="1511"/> + <location filename="mainwindow.ui" line="1517"/> <source>Tools</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1537"/> + <location filename="mainwindow.ui" line="1514"/> <source>&Tools</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1543"/> + <location filename="mainwindow.ui" line="1520"/> <source>Ctrl+I</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1552"/> + <location filename="mainwindow.ui" line="1529"/> <source>Settings</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1555"/> + <location filename="mainwindow.ui" line="1532"/> <source>&Settings</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1558"/> + <location filename="mainwindow.ui" line="1535"/> <source>Configure settings and workarounds</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1561"/> + <location filename="mainwindow.ui" line="1538"/> <source>Ctrl+S</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1570"/> + <location filename="mainwindow.ui" line="1547"/> <source>Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1573"/> + <location filename="mainwindow.ui" line="1550"/> <source>Search nexus network for more mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1576"/> + <location filename="mainwindow.ui" line="1553"/> <source>Ctrl+N</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1588"/> - <location filename="mainwindow.cpp" line="5109"/> + <location filename="mainwindow.ui" line="1565"/> + <location filename="mainwindow.cpp" line="5059"/> <source>Update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1591"/> + <location filename="mainwindow.ui" line="1568"/> <source>Mod Organizer is up-to-date</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1603"/> - <location filename="mainwindow.cpp" line="674"/> + <location filename="mainwindow.ui" line="1580"/> + <location filename="mainwindow.cpp" line="661"/> <source>No Problems</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1606"/> + <location filename="mainwindow.ui" line="1583"/> <source>This button will be highlighted if MO discovered potential problems in your setup and provide tips on how to fix them. !Work in progress! @@ -1852,39 +1842,39 @@ Right now this has very limited functionality</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1618"/> - <location filename="mainwindow.ui" line="1621"/> + <location filename="mainwindow.ui" line="1595"/> + <location filename="mainwindow.ui" line="1598"/> <source>Help</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1624"/> + <location filename="mainwindow.ui" line="1601"/> <source>Ctrl+H</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1633"/> + <location filename="mainwindow.ui" line="1610"/> <source>Endorse MO</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1636"/> - <location filename="mainwindow.cpp" line="5201"/> + <location filename="mainwindow.ui" line="1613"/> + <location filename="mainwindow.cpp" line="5151"/> <source>Endorse Mod Organizer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1641"/> + <location filename="mainwindow.ui" line="1618"/> <source>Copy Log to Clipboard</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1650"/> + <location filename="mainwindow.ui" line="1627"/> <source>Change Game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1653"/> + <location filename="mainwindow.ui" line="1630"/> <source>Open the Instance selection dialog to manage a different Game</source> <translation type="unfinished"></translation> </message> @@ -1909,830 +1899,835 @@ Right now this has very limited functionality</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="494"/> + <location filename="mainwindow.cpp" line="481"/> <source>Crash on exit</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="495"/> + <location filename="mainwindow.cpp" line="482"/> <source>MO crashed while exiting. Some settings may not be saved. Error: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="662"/> + <location filename="mainwindow.cpp" line="649"/> <source>Problems</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="663"/> + <location filename="mainwindow.cpp" line="650"/> <source>There are potential problems with your setup</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="675"/> + <location filename="mainwindow.cpp" line="662"/> <source>Everything seems to be in order</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="737"/> - <location filename="mainwindow.cpp" line="4385"/> - <location filename="mainwindow.cpp" line="4389"/> + <location filename="mainwindow.cpp" line="724"/> + <location filename="mainwindow.cpp" line="4356"/> + <location filename="mainwindow.cpp" line="4360"/> <source>Endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="741"/> + <location filename="mainwindow.cpp" line="728"/> <source>Won't Endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="756"/> + <location filename="mainwindow.cpp" line="743"/> <source>Help on UI</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="760"/> + <location filename="mainwindow.cpp" line="747"/> <source>Documentation Wiki</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="764"/> + <location filename="mainwindow.cpp" line="751"/> <source>Report Issue</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="768"/> + <location filename="mainwindow.cpp" line="755"/> <source>Tutorials</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="807"/> + <location filename="mainwindow.cpp" line="794"/> <source>About</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="808"/> + <location filename="mainwindow.cpp" line="795"/> <source>About Qt</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="867"/> + <location filename="mainwindow.cpp" line="854"/> <source>Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="868"/> + <location filename="mainwindow.cpp" line="855"/> <source>Please enter a name for the new profile</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="876"/> + <location filename="mainwindow.cpp" line="863"/> <source>failed to create profile: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="920"/> + <location filename="mainwindow.cpp" line="907"/> <source>Show tutorial?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="921"/> + <location filename="mainwindow.cpp" line="908"/> <source>You are starting Mod Organizer for the first time. Do you want to show a tutorial of its basic features? If you choose no you can always start the tutorial from the "Help"-menu.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="957"/> + <location filename="mainwindow.cpp" line="944"/> <source>Downloads in progress</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="958"/> + <location filename="mainwindow.cpp" line="945"/> <source>There are still downloads in progress, do you really want to quit?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1075"/> + <location filename="mainwindow.cpp" line="1062"/> <source>Plugin "%1" failed: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1077"/> + <location filename="mainwindow.cpp" line="1064"/> <source>Plugin "%1" failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1155"/> + <location filename="mainwindow.cpp" line="1142"/> <source>Browse Mod Page</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1357"/> + <location filename="mainwindow.cpp" line="1340"/> <source>Also in: <br></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1368"/> + <location filename="mainwindow.cpp" line="1351"/> <source>No conflict</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1453"/> + <location filename="mainwindow.cpp" line="1436"/> <source><Edit...></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1731"/> + <location filename="mainwindow.cpp" line="1714"/> <source>This bsa is enabled in the ini file so it may be required!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1793"/> + <location filename="mainwindow.cpp" line="1776"/> <source>Activating Network Proxy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1854"/> + <location filename="mainwindow.cpp" line="1837"/> <source>Notice: Your current MO version (%1) is lower than the previous version (%2).<br>The GUI may not downgrade gracefully, so you may experience oddities.<br>However, there should be no serious issues.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1958"/> + <location filename="mainwindow.cpp" line="1941"/> <source>Choose Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1959"/> + <location filename="mainwindow.cpp" line="1942"/> <source>Mod Archive</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2134"/> + <location filename="mainwindow.cpp" line="2117"/> <source>Start Tutorial?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2135"/> + <location filename="mainwindow.cpp" line="2118"/> <source>You're about to start a tutorial. For technical reasons it's not possible to end the tutorial early. Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2308"/> + <location filename="mainwindow.cpp" line="2277"/> <source>failed to spawn notepad.exe: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2348"/> + <location filename="mainwindow.cpp" line="2317"/> <source>failed to change origin name: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2372"/> + <location filename="mainwindow.cpp" line="2341"/> <source>failed to move "%1" from mod "%2" to "%3": %4</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2396"/> + <location filename="mainwindow.cpp" line="2365"/> <source><Contains %1></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2431"/> + <location filename="mainwindow.cpp" line="2400"/> <source><Checked></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2432"/> + <location filename="mainwindow.cpp" line="2401"/> <source><Unchecked></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2433"/> + <location filename="mainwindow.cpp" line="2402"/> <source><Update></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2434"/> + <location filename="mainwindow.cpp" line="2403"/> <source><Mod Backup></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2435"/> + <location filename="mainwindow.cpp" line="2404"/> <source><Managed by MO></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2436"/> + <location filename="mainwindow.cpp" line="2405"/> <source><Managed outside MO></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2437"/> + <location filename="mainwindow.cpp" line="2406"/> <source><No category></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2438"/> + <location filename="mainwindow.cpp" line="2407"/> <source><Conflicted></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2439"/> + <location filename="mainwindow.cpp" line="2408"/> <source><Not Endorsed></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2485"/> + <location filename="mainwindow.cpp" line="2454"/> <source>failed to rename mod: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2498"/> + <location filename="mainwindow.cpp" line="2467"/> <source>Overwrite?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2499"/> + <location filename="mainwindow.cpp" line="2468"/> <source>This will replace the existing mod "%1". Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2502"/> + <location filename="mainwindow.cpp" line="2471"/> <source>failed to remove mod "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2506"/> - <location filename="mainwindow.cpp" line="4941"/> - <location filename="mainwindow.cpp" line="4965"/> + <location filename="mainwindow.cpp" line="2475"/> + <location filename="mainwindow.cpp" line="4891"/> + <location filename="mainwindow.cpp" line="4915"/> <source>failed to rename "%1" to "%2"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2577"/> - <location filename="mainwindow.cpp" line="3954"/> - <location filename="mainwindow.cpp" line="3962"/> - <location filename="mainwindow.cpp" line="4498"/> + <location filename="mainwindow.cpp" line="2542"/> + <location filename="mainwindow.cpp" line="3919"/> + <location filename="mainwindow.cpp" line="3927"/> + <location filename="mainwindow.cpp" line="4469"/> <source>Confirm</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2578"/> + <location filename="mainwindow.cpp" line="2543"/> <source>Remove the following mods?<br><ul>%1</ul></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2591"/> + <location filename="mainwindow.cpp" line="2556"/> <source>failed to remove mod: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2623"/> - <location filename="mainwindow.cpp" line="2626"/> - <location filename="mainwindow.cpp" line="2636"/> + <location filename="mainwindow.cpp" line="2588"/> + <location filename="mainwindow.cpp" line="2591"/> + <location filename="mainwindow.cpp" line="2601"/> <source>Failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2623"/> + <location filename="mainwindow.cpp" line="2588"/> <source>Installation file no longer exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2627"/> + <location filename="mainwindow.cpp" line="2592"/> <source>Mods installed with old versions of MO can't be reinstalled in this way.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2637"/> + <location filename="mainwindow.cpp" line="2602"/> <source>Failed to create backup.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2654"/> + <location filename="mainwindow.cpp" line="2619"/> <source>You need to be logged in with Nexus to resume a download</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2670"/> - <location filename="mainwindow.cpp" line="2696"/> - <location filename="mainwindow.cpp" line="2730"/> - <location filename="mainwindow.cpp" line="2756"/> + <location filename="mainwindow.cpp" line="2635"/> + <location filename="mainwindow.cpp" line="2661"/> + <location filename="mainwindow.cpp" line="2695"/> + <location filename="mainwindow.cpp" line="2721"/> <source>You need to be logged in with Nexus to endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2681"/> - <location filename="mainwindow.cpp" line="2689"/> + <location filename="mainwindow.cpp" line="2646"/> + <location filename="mainwindow.cpp" line="2654"/> <source>Endorsing multiple mods will take a while. Please wait...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2741"/> - <location filename="mainwindow.cpp" line="2749"/> + <location filename="mainwindow.cpp" line="2706"/> + <location filename="mainwindow.cpp" line="2714"/> <source>Unendorsing multiple mods will take a while. Please wait...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2817"/> + <location filename="mainwindow.cpp" line="2782"/> <source>Failed to display overwrite dialog: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3004"/> + <location filename="mainwindow.cpp" line="2969"/> <source>Opening Nexus Links</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3005"/> + <location filename="mainwindow.cpp" line="2970"/> <source>You are trying to open %1 links to Nexus Mods. Are you sure you want to do this?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3025"/> + <location filename="mainwindow.cpp" line="2990"/> <source>Nexus ID for this Mod is unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3036"/> + <location filename="mainwindow.cpp" line="3001"/> <source>Web page for this mod is unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3218"/> + <location filename="mainwindow.cpp" line="3183"/> <source><table cellspacing="5"><tr><th>Type</th><th>All</th><th>Visible</th><tr><td>Enabled mods:&emsp;</td><td align=right>%1 / %2</td><td align=right>%3 / %4</td></tr><tr><td>Unmanaged/DLCs:&emsp;</td><td align=right>%5</td><td align=right>%6</td></tr><tr><td>Mod backups:&emsp;</td><td align=right>%7</td><td align=right>%8</td></tr><tr><td>Separators:&emsp;</td><td align=right>%9</td><td align=right>%10</td></tr></table></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3273"/> + <location filename="mainwindow.cpp" line="3238"/> <source><table cellspacing="4"><tr><th>Type</th><th>Active</th><th>Total</th></tr><tr><td>Active plugins:</td><td align=right>%1</td><td align=right>%2</td></tr><tr><td>Active ESMs:</td><td align=right>%3</td><td align=right>%4</td></tr><tr><td>Active ESPs:</td><td align=right>%7</td><td align=right>%8</td></tr><tr><td>Active ESMs+ESPs:</td><td align=right>%9</td><td align=right>%10</td></tr><tr><td>Active ESLs:</td><td align=right>%5</td><td align=right>%6</td></tr></table></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3305"/> - <location filename="mainwindow.cpp" line="3443"/> - <location filename="mainwindow.cpp" line="4312"/> + <location filename="mainwindow.cpp" line="3270"/> + <location filename="mainwindow.cpp" line="3408"/> + <location filename="mainwindow.cpp" line="4283"/> <source>Create Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3306"/> + <location filename="mainwindow.cpp" line="3271"/> <source>This will create an empty mod. Please enter a name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3315"/> - <location filename="mainwindow.cpp" line="3453"/> + <location filename="mainwindow.cpp" line="3280"/> + <location filename="mainwindow.cpp" line="3418"/> <source>A mod with this name already exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3343"/> + <location filename="mainwindow.cpp" line="3308"/> <source>Create Separator...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3344"/> + <location filename="mainwindow.cpp" line="3309"/> <source>This will create a new separator. Please enter a name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3351"/> + <location filename="mainwindow.cpp" line="3316"/> <source>A separator with this name already exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3444"/> + <location filename="mainwindow.cpp" line="3409"/> <source>This will move all files from overwrite into a new, regular mod. Please enter a name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3485"/> - <location filename="mainwindow.cpp" line="5536"/> + <location filename="mainwindow.cpp" line="3450"/> + <location filename="mainwindow.cpp" line="5482"/> <source>Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3486"/> + <location filename="mainwindow.cpp" line="3451"/> <source>About to recursively delete: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3848"/> + <location filename="mainwindow.cpp" line="3813"/> <source>Not logged in, endorsement information will be wrong</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3856"/> + <location filename="mainwindow.cpp" line="3821"/> <source>Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3857"/> + <location filename="mainwindow.cpp" line="3822"/> <source>The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3877"/> - <location filename="mainwindow.cpp" line="5077"/> + <location filename="mainwindow.cpp" line="3842"/> + <location filename="mainwindow.cpp" line="5027"/> <source>Sorry</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3878"/> + <location filename="mainwindow.cpp" line="3843"/> <source>I don't know a versioning scheme where %1 is newer than %2.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3954"/> + <location filename="mainwindow.cpp" line="3919"/> <source>Really enable all visible mods?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3962"/> + <location filename="mainwindow.cpp" line="3927"/> <source>Really disable all visible mods?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4042"/> + <location filename="mainwindow.cpp" line="4007"/> <source>Export to csv</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4045"/> + <location filename="mainwindow.cpp" line="4010"/> <source>CSV (Comma Separated Values) is a format that can be imported in programs like Excel to create a spreadsheet. You can also use online editors and converters instead.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4048"/> + <location filename="mainwindow.cpp" line="4013"/> <source>Select what mods you want export:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4049"/> + <location filename="mainwindow.cpp" line="4014"/> <source>All installed mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4050"/> + <location filename="mainwindow.cpp" line="4015"/> <source>Only active (checked) mods from your current profile</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4051"/> + <location filename="mainwindow.cpp" line="4016"/> <source>All currently visible mods in the mod list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4072"/> + <location filename="mainwindow.cpp" line="4037"/> <source>Choose what Columns to export:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4075"/> + <location filename="mainwindow.cpp" line="4040"/> <source>Mod_Priority</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4077"/> + <location filename="mainwindow.cpp" line="4042"/> <source>Mod_Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4079"/> + <location filename="mainwindow.cpp" line="4044"/> + <source>Notes_column</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="4045"/> <source>Mod_Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4080"/> + <location filename="mainwindow.cpp" line="4046"/> <source>Primary_Category</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4081"/> + <location filename="mainwindow.cpp" line="4047"/> <source>Nexus_ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4082"/> + <location filename="mainwindow.cpp" line="4048"/> <source>Mod_Nexus_URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4083"/> + <location filename="mainwindow.cpp" line="4049"/> <source>Mod_Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4084"/> + <location filename="mainwindow.cpp" line="4050"/> <source>Install_Date</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4085"/> + <location filename="mainwindow.cpp" line="4051"/> <source>Download_File_Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4187"/> + <location filename="mainwindow.cpp" line="4158"/> <source>export failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4206"/> + <location filename="mainwindow.cpp" line="4177"/> <source>Open Game folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4208"/> + <location filename="mainwindow.cpp" line="4179"/> <source>Open MyGames folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4210"/> + <location filename="mainwindow.cpp" line="4181"/> <source>Open INIs folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4214"/> + <location filename="mainwindow.cpp" line="4185"/> <source>Open Instance folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4216"/> + <location filename="mainwindow.cpp" line="4187"/> <source>Open Mods folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4218"/> + <location filename="mainwindow.cpp" line="4189"/> <source>Open Profile folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4220"/> + <location filename="mainwindow.cpp" line="4191"/> <source>Open Downloads folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4224"/> + <location filename="mainwindow.cpp" line="4195"/> <source>Open MO2 Install folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4226"/> + <location filename="mainwindow.cpp" line="4197"/> <source>Open MO2 Plugins folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4228"/> + <location filename="mainwindow.cpp" line="4199"/> <source>Open MO2 Logs folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4237"/> + <location filename="mainwindow.cpp" line="4208"/> <source>Install Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4239"/> + <location filename="mainwindow.cpp" line="4210"/> <source>Create empty mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4241"/> + <location filename="mainwindow.cpp" line="4212"/> <source>Create Separator</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4245"/> + <location filename="mainwindow.cpp" line="4216"/> <source>Enable all visible</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4246"/> + <location filename="mainwindow.cpp" line="4217"/> <source>Disable all visible</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4248"/> + <location filename="mainwindow.cpp" line="4219"/> <source>Check all for update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4252"/> + <location filename="mainwindow.cpp" line="4223"/> <source>Export to csv...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4264"/> - <location filename="mainwindow.cpp" line="4280"/> + <location filename="mainwindow.cpp" line="4235"/> + <location filename="mainwindow.cpp" line="4251"/> <source>Send to</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4265"/> - <location filename="mainwindow.cpp" line="4281"/> + <location filename="mainwindow.cpp" line="4236"/> + <location filename="mainwindow.cpp" line="4252"/> <source>Top</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4266"/> - <location filename="mainwindow.cpp" line="4282"/> + <location filename="mainwindow.cpp" line="4237"/> + <location filename="mainwindow.cpp" line="4253"/> <source>Bottom</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4267"/> - <location filename="mainwindow.cpp" line="4283"/> + <location filename="mainwindow.cpp" line="4238"/> + <location filename="mainwindow.cpp" line="4254"/> <source>Priority...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4268"/> + <location filename="mainwindow.cpp" line="4239"/> <source>Separator...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4304"/> + <location filename="mainwindow.cpp" line="4275"/> <source>All Mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4311"/> + <location filename="mainwindow.cpp" line="4282"/> <source>Sync to Mods...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4313"/> + <location filename="mainwindow.cpp" line="4284"/> <source>Clear Overwrite...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4315"/> - <location filename="mainwindow.cpp" line="4416"/> + <location filename="mainwindow.cpp" line="4286"/> + <location filename="mainwindow.cpp" line="4387"/> <source>Open in Explorer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4317"/> + <location filename="mainwindow.cpp" line="4288"/> <source>Restore Backup</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4318"/> + <location filename="mainwindow.cpp" line="4289"/> <source>Remove Backup...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4321"/> - <location filename="mainwindow.cpp" line="4340"/> + <location filename="mainwindow.cpp" line="4292"/> + <location filename="mainwindow.cpp" line="4311"/> <source>Change Categories</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4325"/> - <location filename="mainwindow.cpp" line="4345"/> + <location filename="mainwindow.cpp" line="4296"/> + <location filename="mainwindow.cpp" line="4316"/> <source>Primary Category</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4329"/> + <location filename="mainwindow.cpp" line="4300"/> <source>Rename Separator...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4330"/> + <location filename="mainwindow.cpp" line="4301"/> <source>Remove Separator...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4333"/> + <location filename="mainwindow.cpp" line="4304"/> <source>Select Color...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4335"/> + <location filename="mainwindow.cpp" line="4306"/> <source>Reset Color</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4352"/> + <location filename="mainwindow.cpp" line="4323"/> <source>Change versioning scheme</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4356"/> + <location filename="mainwindow.cpp" line="4327"/> <source>Un-ignore update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4360"/> + <location filename="mainwindow.cpp" line="4331"/> <source>Ignore update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4365"/> - <location filename="mainwindow.cpp" line="5647"/> + <location filename="mainwindow.cpp" line="4336"/> + <location filename="mainwindow.cpp" line="5593"/> <source>Enable selected</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4366"/> - <location filename="mainwindow.cpp" line="5648"/> + <location filename="mainwindow.cpp" line="4337"/> + <location filename="mainwindow.cpp" line="5594"/> <source>Disable selected</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4372"/> + <location filename="mainwindow.cpp" line="4343"/> <source>Rename Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4373"/> + <location filename="mainwindow.cpp" line="4344"/> <source>Reinstall Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4374"/> + <location filename="mainwindow.cpp" line="4345"/> <source>Remove Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4382"/> + <location filename="mainwindow.cpp" line="4353"/> <source>Un-Endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4386"/> + <location filename="mainwindow.cpp" line="4357"/> <source>Won't endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4392"/> + <location filename="mainwindow.cpp" line="4363"/> <source>Endorsement state unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4403"/> + <location filename="mainwindow.cpp" line="4374"/> <source>Ignore missing data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4407"/> + <location filename="mainwindow.cpp" line="4378"/> <source>Mark as converted/working</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4411"/> + <location filename="mainwindow.cpp" line="4382"/> <source>Visit on Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4413"/> + <location filename="mainwindow.cpp" line="4384"/> <source>Visit web page</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4420"/> + <location filename="mainwindow.cpp" line="4391"/> <source>Information...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4427"/> - <location filename="mainwindow.cpp" line="5695"/> + <location filename="mainwindow.cpp" line="4398"/> + <location filename="mainwindow.cpp" line="5641"/> <source>Exception: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4429"/> - <location filename="mainwindow.cpp" line="5697"/> + <location filename="mainwindow.cpp" line="4400"/> + <location filename="mainwindow.cpp" line="5643"/> <source>Unknown exception</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4458"/> + <location filename="mainwindow.cpp" line="4429"/> <source><All></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4460"/> + <location filename="mainwindow.cpp" line="4431"/> <source><Multiple></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4495"/> + <location filename="mainwindow.cpp" line="4466"/> <source>%1 more</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="mainwindow.cpp" line="4499"/> + <location filename="mainwindow.cpp" line="4470"/> <source>Are you sure you want to remove the following %n save(s)?<br><ul>%1</ul><br>Removed saves will be sent to the Recycle Bin.</source> <translation type="unfinished"> <numerusform></numerusform> @@ -2740,12 +2735,12 @@ You can also use online editors and converters instead.</source> </translation> </message> <message> - <location filename="mainwindow.cpp" line="4544"/> + <location filename="mainwindow.cpp" line="4515"/> <source>Enable Mods...</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="mainwindow.cpp" line="4559"/> + <location filename="mainwindow.cpp" line="4530"/> <source>Delete %n save(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -2753,22 +2748,22 @@ You can also use online editors and converters instead.</source> </translation> </message> <message> - <location filename="mainwindow.cpp" line="4601"/> + <location filename="mainwindow.cpp" line="4572"/> <source>failed to remove %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4623"/> + <location filename="mainwindow.cpp" line="4594"/> <source>failed to create %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4653"/> + <location filename="mainwindow.cpp" line="4624"/> <source>Restarting MO</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4654"/> + <location filename="mainwindow.cpp" line="4625"/> <source>Changing the managed game directory requires restarting MO. Any pending downloads will be paused. @@ -2776,335 +2771,335 @@ Click OK to restart MO now.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4674"/> + <location filename="mainwindow.cpp" line="4645"/> <source>Can't change download directory while downloads are in progress!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4813"/> + <location filename="mainwindow.cpp" line="4763"/> <source>failed to write to file %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4819"/> + <location filename="mainwindow.cpp" line="4769"/> <source>%1 written</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4860"/> + <location filename="mainwindow.cpp" line="4810"/> <source>Select binary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4860"/> + <location filename="mainwindow.cpp" line="4810"/> <source>Binary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4886"/> + <location filename="mainwindow.cpp" line="4836"/> <source>Enter Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4887"/> + <location filename="mainwindow.cpp" line="4837"/> <source>Please enter a name for the executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4901"/> + <location filename="mainwindow.cpp" line="4851"/> <source>Not an executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4901"/> + <location filename="mainwindow.cpp" line="4851"/> <source>This is not a recognized executable.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4926"/> - <location filename="mainwindow.cpp" line="4951"/> + <location filename="mainwindow.cpp" line="4876"/> + <location filename="mainwindow.cpp" line="4901"/> <source>Replace file?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4926"/> + <location filename="mainwindow.cpp" line="4876"/> <source>There already is a hidden version of this file. Replace it?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4929"/> - <location filename="mainwindow.cpp" line="4954"/> + <location filename="mainwindow.cpp" line="4879"/> + <location filename="mainwindow.cpp" line="4904"/> <source>File operation failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4929"/> - <location filename="mainwindow.cpp" line="4954"/> + <location filename="mainwindow.cpp" line="4879"/> + <location filename="mainwindow.cpp" line="4904"/> <source>Failed to remove "%1". Maybe you lack the required file permissions?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4951"/> + <location filename="mainwindow.cpp" line="4901"/> <source>There already is a visible version of this file. Replace it?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4995"/> - <location filename="mainwindow.cpp" line="6309"/> + <location filename="mainwindow.cpp" line="4945"/> + <location filename="mainwindow.cpp" line="6255"/> <source>Set Priority</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4995"/> + <location filename="mainwindow.cpp" line="4945"/> <source>Set the priority of the selected plugins</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5044"/> + <location filename="mainwindow.cpp" line="4994"/> <source>file not found: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5057"/> + <location filename="mainwindow.cpp" line="5007"/> <source>failed to generate preview for %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5077"/> + <location filename="mainwindow.cpp" line="5027"/> <source>Sorry, can't preview anything. This function currently does not support extracting from bsas.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5111"/> + <location filename="mainwindow.cpp" line="5061"/> <source>Update available</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5158"/> + <location filename="mainwindow.cpp" line="5108"/> <source>Open/Execute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5159"/> + <location filename="mainwindow.cpp" line="5109"/> <source>Add as Executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5163"/> + <location filename="mainwindow.cpp" line="5113"/> <source>Preview</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5169"/> + <location filename="mainwindow.cpp" line="5119"/> <source>Un-Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5171"/> + <location filename="mainwindow.cpp" line="5121"/> <source>Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5177"/> + <location filename="mainwindow.cpp" line="5127"/> <source>Write To File...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5202"/> + <location filename="mainwindow.cpp" line="5152"/> <source>Do you want to endorse Mod Organizer on %1 now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5345"/> + <location filename="mainwindow.cpp" line="5291"/> <source>Thank you!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5345"/> + <location filename="mainwindow.cpp" line="5291"/> <source>Thank you for your endorsement!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5380"/> + <location filename="mainwindow.cpp" line="5326"/> <source>Request to Nexus failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5395"/> - <location filename="mainwindow.cpp" line="5457"/> + <location filename="mainwindow.cpp" line="5341"/> + <location filename="mainwindow.cpp" line="5403"/> <source>failed to read %1: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5407"/> - <location filename="mainwindow.cpp" line="5885"/> + <location filename="mainwindow.cpp" line="5353"/> + <location filename="mainwindow.cpp" line="5831"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5407"/> + <location filename="mainwindow.cpp" line="5353"/> <source>failed to extract %1 (errorcode %2)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5439"/> + <location filename="mainwindow.cpp" line="5385"/> <source>Extract BSA</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5468"/> + <location filename="mainwindow.cpp" line="5414"/> <source>This archive contains invalid hashes. Some files may be broken.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5514"/> + <location filename="mainwindow.cpp" line="5460"/> <source>Extract...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5537"/> + <location filename="mainwindow.cpp" line="5483"/> <source>This will restart MO, continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5584"/> + <location filename="mainwindow.cpp" line="5530"/> <source>Edit Categories...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5585"/> + <location filename="mainwindow.cpp" line="5531"/> <source>Deselect filter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5636"/> + <location filename="mainwindow.cpp" line="5582"/> <source>Remove</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5652"/> + <location filename="mainwindow.cpp" line="5598"/> <source>Enable all</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5653"/> + <location filename="mainwindow.cpp" line="5599"/> <source>Disable all</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5674"/> + <location filename="mainwindow.cpp" line="5620"/> <source>Unlock load order</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5677"/> + <location filename="mainwindow.cpp" line="5623"/> <source>Lock load order</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5681"/> + <location filename="mainwindow.cpp" line="5627"/> <source>Open Origin in Explorer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5688"/> + <location filename="mainwindow.cpp" line="5634"/> <source>Open Origin Info...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5831"/> + <location filename="mainwindow.cpp" line="5777"/> <source>depends on missing "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5835"/> + <location filename="mainwindow.cpp" line="5781"/> <source>incompatible with "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5861"/> + <location filename="mainwindow.cpp" line="5807"/> <source>Please wait while LOOT is running</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5958"/> + <location filename="mainwindow.cpp" line="5904"/> <source>loot failed. Exit code was: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5980"/> + <location filename="mainwindow.cpp" line="5926"/> <source>failed to start loot</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5983"/> + <location filename="mainwindow.cpp" line="5929"/> <source>failed to run loot: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5987"/> + <location filename="mainwindow.cpp" line="5933"/> <source>Errors occured</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6034"/> + <location filename="mainwindow.cpp" line="5980"/> <source>Backup of load order created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6044"/> + <location filename="mainwindow.cpp" line="5990"/> <source>Choose backup to restore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6057"/> + <location filename="mainwindow.cpp" line="6003"/> <source>No Backups</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6057"/> + <location filename="mainwindow.cpp" line="6003"/> <source>There are no backups to restore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6078"/> - <location filename="mainwindow.cpp" line="6100"/> + <location filename="mainwindow.cpp" line="6024"/> + <location filename="mainwindow.cpp" line="6046"/> <source>Restore failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6079"/> - <location filename="mainwindow.cpp" line="6101"/> + <location filename="mainwindow.cpp" line="6025"/> + <location filename="mainwindow.cpp" line="6047"/> <source>Failed to restore the backup. Errorcode: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6090"/> + <location filename="mainwindow.cpp" line="6036"/> <source>Backup of modlist created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6196"/> + <location filename="mainwindow.cpp" line="6142"/> <source>A file with the same name has already been downloaded. What would you like to do?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6198"/> + <location filename="mainwindow.cpp" line="6144"/> <source>Overwrite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6199"/> + <location filename="mainwindow.cpp" line="6145"/> <source>Rename new file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6200"/> + <location filename="mainwindow.cpp" line="6146"/> <source>Ignore file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="6309"/> + <location filename="mainwindow.cpp" line="6255"/> <source>Set the priority of the selected mods</source> <translation type="unfinished"></translation> </message> @@ -3565,243 +3560,243 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="500"/> - <location filename="modinfodialog.cpp" line="515"/> + <location filename="modinfodialog.cpp" line="487"/> + <location filename="modinfodialog.cpp" line="502"/> <source>Save changes?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="500"/> - <location filename="modinfodialog.cpp" line="515"/> + <location filename="modinfodialog.cpp" line="487"/> + <location filename="modinfodialog.cpp" line="502"/> <source>Save changes to "%1"?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="705"/> + <location filename="modinfodialog.cpp" line="692"/> <source>File Exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="705"/> + <location filename="modinfodialog.cpp" line="692"/> <source>A file with that name exists, please enter a new one</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="722"/> + <location filename="modinfodialog.cpp" line="709"/> <source>failed to move file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="747"/> + <location filename="modinfodialog.cpp" line="734"/> <source>failed to create directory "optional"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="791"/> - <location filename="modinfodialog.cpp" line="1515"/> + <location filename="modinfodialog.cpp" line="778"/> + <location filename="modinfodialog.cpp" line="1502"/> <source>Info requested, please wait</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="845"/> + <location filename="modinfodialog.cpp" line="832"/> <source>Main</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="846"/> + <location filename="modinfodialog.cpp" line="833"/> <source>Update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="847"/> + <location filename="modinfodialog.cpp" line="834"/> <source>Optional</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="848"/> + <location filename="modinfodialog.cpp" line="835"/> <source>Old</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="849"/> + <location filename="modinfodialog.cpp" line="836"/> <source>Misc</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="850"/> + <location filename="modinfodialog.cpp" line="837"/> <source>Unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="861"/> + <location filename="modinfodialog.cpp" line="848"/> <source>Current Version: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="865"/> + <location filename="modinfodialog.cpp" line="852"/> <source>No update available</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="908"/> + <location filename="modinfodialog.cpp" line="895"/> <source>(description incomplete, please visit nexus)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="923"/> + <location filename="modinfodialog.cpp" line="910"/> <source><a href="%1">Visit on Nexus</a></source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1016"/> + <location filename="modinfodialog.cpp" line="1003"/> <source>Failed to delete %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1032"/> - <location filename="modinfodialog.cpp" line="1038"/> - <location filename="modinfodialog.cpp" line="1057"/> - <location filename="modinfodialog.cpp" line="1062"/> + <location filename="modinfodialog.cpp" line="1019"/> + <location filename="modinfodialog.cpp" line="1025"/> + <location filename="modinfodialog.cpp" line="1044"/> + <location filename="modinfodialog.cpp" line="1049"/> <source>Confirm</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1032"/> - <location filename="modinfodialog.cpp" line="1057"/> + <location filename="modinfodialog.cpp" line="1019"/> + <location filename="modinfodialog.cpp" line="1044"/> <source>Are sure you want to delete "%1"?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1038"/> - <location filename="modinfodialog.cpp" line="1062"/> + <location filename="modinfodialog.cpp" line="1025"/> + <location filename="modinfodialog.cpp" line="1049"/> <source>Are sure you want to delete the selected files?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1136"/> - <location filename="modinfodialog.cpp" line="1142"/> + <location filename="modinfodialog.cpp" line="1123"/> + <location filename="modinfodialog.cpp" line="1129"/> <source>New Folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1148"/> + <location filename="modinfodialog.cpp" line="1135"/> <source>Failed to create "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1252"/> - <location filename="modinfodialog.cpp" line="1276"/> + <location filename="modinfodialog.cpp" line="1239"/> + <location filename="modinfodialog.cpp" line="1263"/> <source>Replace file?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1252"/> + <location filename="modinfodialog.cpp" line="1239"/> <source>There already is a hidden version of this file. Replace it?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1255"/> - <location filename="modinfodialog.cpp" line="1279"/> + <location filename="modinfodialog.cpp" line="1242"/> + <location filename="modinfodialog.cpp" line="1266"/> <source>File operation failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1255"/> - <location filename="modinfodialog.cpp" line="1279"/> + <location filename="modinfodialog.cpp" line="1242"/> + <location filename="modinfodialog.cpp" line="1266"/> <source>Failed to remove "%1". Maybe you lack the required file permissions?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1266"/> - <location filename="modinfodialog.cpp" line="1289"/> + <location filename="modinfodialog.cpp" line="1253"/> + <location filename="modinfodialog.cpp" line="1276"/> <source>failed to rename %1 to %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1276"/> + <location filename="modinfodialog.cpp" line="1263"/> <source>There already is a visible version of this file. Replace it?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1352"/> + <location filename="modinfodialog.cpp" line="1339"/> <source>Select binary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1352"/> + <location filename="modinfodialog.cpp" line="1339"/> <source>Binary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1424"/> + <location filename="modinfodialog.cpp" line="1411"/> <source>file not found: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1437"/> + <location filename="modinfodialog.cpp" line="1424"/> <source>failed to generate preview for %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1453"/> + <location filename="modinfodialog.cpp" line="1440"/> <source>Sorry</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1453"/> + <location filename="modinfodialog.cpp" line="1440"/> <source>Sorry, can't preview anything. This function currently does not support extracting from bsas.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1467"/> + <location filename="modinfodialog.cpp" line="1454"/> <source>Un-Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1469"/> + <location filename="modinfodialog.cpp" line="1456"/> <source>Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1472"/> - <location filename="modinfodialog.cpp" line="1492"/> + <location filename="modinfodialog.cpp" line="1459"/> + <location filename="modinfodialog.cpp" line="1479"/> <source>Open/Execute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1476"/> - <location filename="modinfodialog.cpp" line="1496"/> + <location filename="modinfodialog.cpp" line="1463"/> + <location filename="modinfodialog.cpp" line="1483"/> <source>Preview</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1544"/> + <location filename="modinfodialog.cpp" line="1531"/> <source>Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1544"/> + <location filename="modinfodialog.cpp" line="1531"/> <source>Please enter a name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1548"/> - <location filename="modinfodialog.cpp" line="1551"/> + <location filename="modinfodialog.cpp" line="1535"/> + <location filename="modinfodialog.cpp" line="1538"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1548"/> + <location filename="modinfodialog.cpp" line="1535"/> <source>Invalid name. Must be a valid file name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1551"/> + <location filename="modinfodialog.cpp" line="1538"/> <source>A tweak by that name exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.cpp" line="1565"/> + <location filename="modinfodialog.cpp" line="1552"/> <source>Create Tweak</source> <translation type="unfinished"></translation> </message> @@ -3953,17 +3948,17 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="modlist.cpp" line="161"/> - <source>Overwrites loose files</source> + <source>Overwrites files</source> <translation type="unfinished"></translation> </message> <message> <location filename="modlist.cpp" line="162"/> - <source>Overwritten loose files</source> + <source>Overwritten files</source> <translation type="unfinished"></translation> </message> <message> <location filename="modlist.cpp" line="163"/> - <source>Loose files Overwrites & Overwritten</source> + <source>Overwrites & Overwritten</source> <translation type="unfinished"></translation> </message> <message> @@ -3973,187 +3968,162 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="modlist.cpp" line="165"/> - <source>Overwrites an archive with loose files</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="modlist.cpp" line="166"/> - <source>Archive is overwritten by loose files</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="modlist.cpp" line="167"/> - <source>Overwrites another archive file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="modlist.cpp" line="168"/> - <source>Overwritten by another archive file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="modlist.cpp" line="169"/> - <source>Archive files overwrites & overwritten</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="modlist.cpp" line="170"/> <source>This mod targets a different game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="262"/> + <location filename="modlist.cpp" line="257"/> <source>Non-MO</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="294"/> + <location filename="modlist.cpp" line="289"/> <source>invalid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="451"/> + <location filename="modlist.cpp" line="437"/> <source>installed version: "%1", newest version: "%2"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="453"/> + <location filename="modlist.cpp" line="439"/> <source>The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn (i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. Either way you may want to "upgrade".</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="461"/> + <location filename="modlist.cpp" line="447"/> <source>Categories: <br></source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="492"/> + <location filename="modlist.cpp" line="478"/> <source>Invalid name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="497"/> + <location filename="modlist.cpp" line="483"/> <source>Name is already in use by another mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1053"/> + <location filename="modlist.cpp" line="1026"/> <source>drag&drop failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1132"/> + <location filename="modlist.cpp" line="1105"/> <source>Confirm</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1133"/> + <location filename="modlist.cpp" line="1106"/> <source>Are you sure you want to remove "%1"?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1200"/> + <location filename="modlist.cpp" line="1169"/> <source>Flags</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1201"/> + <location filename="modlist.cpp" line="1170"/> <source>Content</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1202"/> + <location filename="modlist.cpp" line="1171"/> <source>Mod Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1203"/> + <location filename="modlist.cpp" line="1172"/> <source>Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1204"/> + <location filename="modlist.cpp" line="1173"/> <source>Priority</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1205"/> + <location filename="modlist.cpp" line="1174"/> <source>Category</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1206"/> + <location filename="modlist.cpp" line="1175"/> <source>Source Game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1207"/> + <location filename="modlist.cpp" line="1176"/> <source>Nexus ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1208"/> + <location filename="modlist.cpp" line="1177"/> <source>Installation</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1209"/> + <location filename="modlist.cpp" line="1178"/> <source>Notes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1210"/> - <location filename="modlist.cpp" line="1246"/> + <location filename="modlist.cpp" line="1179"/> + <location filename="modlist.cpp" line="1215"/> <source>unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1218"/> + <location filename="modlist.cpp" line="1187"/> <source>Name of your mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1219"/> + <location filename="modlist.cpp" line="1188"/> <source>Version of the mod (if available)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1220"/> + <location filename="modlist.cpp" line="1189"/> <source>Installation priority of your mod. The higher, the more "important" it is and thus overwrites files from mods with lower priority.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1222"/> + <location filename="modlist.cpp" line="1191"/> <source>Category of the mod.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1223"/> + <location filename="modlist.cpp" line="1192"/> <source>The source game which was the origin of this mod.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1224"/> + <location filename="modlist.cpp" line="1193"/> <source>Id of the mod as used on Nexus.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1225"/> + <location filename="modlist.cpp" line="1194"/> <source>Emblemes to highlight things that might require attention.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1226"/> + <location filename="modlist.cpp" line="1195"/> <source>Depicts the content of the mod:<br><table cellspacing=7><tr><td><img src=":/MO/gui/content/plugin" width=32/></td><td>Game plugins (esp/esm/esl)</td></tr><tr><td><img src=":/MO/gui/content/interface" width=32/></td><td>Interface</td></tr><tr><td><img src=":/MO/gui/content/mesh" width=32/></td><td>Meshes</td></tr><tr><td><img src=":/MO/gui/content/bsa" width=32/></td><td>BSA</td></tr><tr><td><img src=":/MO/gui/content/texture" width=32/></td><td>Textures</td></tr><tr><td><img src=":/MO/gui/content/sound" width=32/></td><td>Sounds</td></tr><tr><td><img src=":/MO/gui/content/music" width=32/></td><td>Music</td></tr><tr><td><img src=":/MO/gui/content/string" width=32/></td><td>Strings</td></tr><tr><td><img src=":/MO/gui/content/script" width=32/></td><td>Scripts (Papyrus)</td></tr><tr><td><img src=":/MO/gui/content/skse" width=32/></td><td>Script Extender plugins</td></tr><tr><td><img src=":/MO/gui/content/skyproc" width=32/></td><td>SkyProc Patcher</td></tr><tr><td><img src=":/MO/gui/content/menu" width=32/></td><td>Mod Configuration Menu</td></tr><tr><td><img src=":/MO/gui/content/inifile" width=32/></td><td>INI files</td></tr><tr><td><img src=":/MO/gui/content/modgroup" width=32/></td><td>ModGroup files</td></tr></table></source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1244"/> + <location filename="modlist.cpp" line="1213"/> <source>Time this mod was installed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1245"/> + <location filename="modlist.cpp" line="1214"/> <source>User notes about the mod</source> <translation type="unfinished"></translation> </message> @@ -4161,7 +4131,7 @@ p, li { white-space: pre-wrap; } <context> <name>ModListSortProxy</name> <message> - <location filename="modlistsortproxy.cpp" line="466"/> + <location filename="modlistsortproxy.cpp" line="461"/> <source>Drag&Drop is only supported when sorting by priority</source> <translation type="unfinished"></translation> </message> @@ -4291,171 +4261,171 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="989"/> - <location filename="organizercore.cpp" line="1047"/> + <location filename="organizercore.cpp" line="979"/> + <location filename="organizercore.cpp" line="1037"/> <source>Installation successful</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="997"/> - <location filename="organizercore.cpp" line="1057"/> + <location filename="organizercore.cpp" line="987"/> + <location filename="organizercore.cpp" line="1047"/> <source>Configure Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="998"/> - <location filename="organizercore.cpp" line="1058"/> + <location filename="organizercore.cpp" line="988"/> + <location filename="organizercore.cpp" line="1048"/> <source>This mod contains ini tweaks. Do you want to configure them now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1010"/> - <location filename="organizercore.cpp" line="1068"/> + <location filename="organizercore.cpp" line="1000"/> + <location filename="organizercore.cpp" line="1058"/> <source>mod "%1" not found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1013"/> - <location filename="organizercore.cpp" line="1075"/> + <location filename="organizercore.cpp" line="1003"/> + <location filename="organizercore.cpp" line="1065"/> <source>Installation cancelled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1014"/> - <location filename="organizercore.cpp" line="1076"/> + <location filename="organizercore.cpp" line="1004"/> + <location filename="organizercore.cpp" line="1066"/> <source>The mod was not installed completely.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1283"/> + <location filename="organizercore.cpp" line="1273"/> <source>Executable "%1" not found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1311"/> + <location filename="organizercore.cpp" line="1301"/> <source>Start Steam?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1312"/> + <location filename="organizercore.cpp" line="1302"/> <source>Steam is required to be running already to correctly start the game. Should MO try to start steam now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1341"/> + <location filename="organizercore.cpp" line="1331"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1349"/> + <location filename="organizercore.cpp" line="1339"/> <source>Windows Event Log Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1350"/> + <location filename="organizercore.cpp" line="1340"/> <source>The Windows Event Log service is disabled and/or not running. This prevents USVFS from running properly. Your mods may not be working in the executable that you are launching. Note that you may have to restart MO and/or your PC after the service is fixed. Continue launching %1?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1362"/> + <location filename="organizercore.cpp" line="1352"/> <source>Blacklisted Executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1363"/> + <location filename="organizercore.cpp" line="1353"/> <source>The executable you are attempted to launch is blacklisted in the virtual file system. This will likely prevent the executable, and any executables that are launched by this one, from seeing any mods. This could extend to INI files, save games and any other virtualized files. Continue launching %1?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1452"/> + <location filename="organizercore.cpp" line="1442"/> <source>No profile set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1741"/> + <location filename="organizercore.cpp" line="1731"/> <source>Failed to refresh list of esps: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1834"/> + <location filename="organizercore.cpp" line="1824"/> <source>Multiple esps/esls activated, please check that they don't conflict.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1909"/> + <location filename="organizercore.cpp" line="1899"/> <source>Download?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1910"/> + <location filename="organizercore.cpp" line="1900"/> <source>A download has been started but no installed page plugin recognizes it. If you download anyway no information (i.e. version) will be associated with the download. Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2046"/> + <location filename="organizercore.cpp" line="2034"/> <source>failed to update mod list: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2053"/> - <location filename="organizercore.cpp" line="2070"/> + <location filename="organizercore.cpp" line="2041"/> + <location filename="organizercore.cpp" line="2058"/> <source>login successful</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2077"/> + <location filename="organizercore.cpp" line="2065"/> <source>Login failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2078"/> + <location filename="organizercore.cpp" line="2066"/> <source>Login failed, try again?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2087"/> + <location filename="organizercore.cpp" line="2075"/> <source>login failed: %1. Download will not be associated with an account</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2095"/> + <location filename="organizercore.cpp" line="2083"/> <source>login failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2105"/> + <location filename="organizercore.cpp" line="2093"/> <source>login failed: %1. You need to log-in with Nexus to update MO.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2158"/> + <location filename="organizercore.cpp" line="2146"/> <source>MO1 "Script Extender" load mechanism has left hook.dll in your game folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2161"/> - <location filename="organizercore.cpp" line="2177"/> + <location filename="organizercore.cpp" line="2149"/> + <location filename="organizercore.cpp" line="2165"/> <source>Description missing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2170"/> + <location filename="organizercore.cpp" line="2158"/> <source><a href="%1">hook.dll</a> has been found in your game folder (right click to copy the full path). This is most likely a leftover of setting the ModOrganizer 1 load mechanism to "Script Extender", in which case you must remove this file either by changing the load mechanism in ModOrganizer 1 or manually removing the file, otherwise the game is likely to crash and burn.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2204"/> + <location filename="organizercore.cpp" line="2192"/> <source>failed to save load order: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2276"/> + <location filename="organizercore.cpp" line="2264"/> <source>The designated write target "%1" is not enabled.</source> <translation type="unfinished"></translation> </message> @@ -4815,22 +4785,25 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="profile.cpp" line="784"/> + <location filename="profile.cpp" line="785"/> <source>Missing profile-specific game INI files!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="profile.cpp" line="785"/> - <source>Some of your profile-specific game INI files were missing. They will now be copied from the vanilla game folder. You might want double-check your settings.</source> + <location filename="profile.cpp" line="786"/> + <source>Some of your profile-specific game INI files were missing. They will now be copied from the vanilla game folder. You might want double-check your settings. + +Missing files: +</source> <translation type="unfinished"></translation> </message> <message> - <location filename="profile.cpp" line="800"/> + <location filename="profile.cpp" line="801"/> <source>Delete profile-specific game INI files?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="profile.cpp" line="801"/> + <location filename="profile.cpp" line="802"/> <source>Do you want to delete the profile-specific game INI files? (If you select "No", the INI files will be used again if you re-enable profile-specific game INI files.)</source> <translation type="unfinished"></translation> </message> @@ -5471,7 +5444,7 @@ If the folder was still in use, restart MO and try again.</source> </message> <message> <location filename="main.cpp" line="682"/> - <location filename="settings.cpp" line="1122"/> + <location filename="settings.cpp" line="1098"/> <source>Mod Organizer</source> <translation type="unfinished"></translation> </message> @@ -5486,18 +5459,18 @@ If the folder was still in use, restart MO and try again.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="933"/> + <location filename="mainwindow.cpp" line="920"/> <source>Please use "Help" from the toolbar to get usage instructions to all elements</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1417"/> - <location filename="mainwindow.cpp" line="4771"/> + <location filename="mainwindow.cpp" line="1400"/> + <location filename="mainwindow.cpp" line="4721"/> <source><Manage...></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1429"/> + <location filename="mainwindow.cpp" line="1412"/> <source>failed to parse profile %1: %2</source> <translation type="unfinished"></translation> </message> @@ -5548,12 +5521,12 @@ If the folder was still in use, restart MO and try again.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settings.cpp" line="1129"/> + <location filename="settings.cpp" line="1105"/> <source>Script Extender</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settings.cpp" line="1136"/> + <location filename="settings.cpp" line="1112"/> <source>Proxy DLL</source> <translation type="unfinished"></translation> </message> @@ -5769,28 +5742,28 @@ Select Show Details option to see the full change-log.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settings.cpp" line="518"/> - <location filename="settings.cpp" line="537"/> + <location filename="settings.cpp" line="503"/> + <location filename="settings.cpp" line="522"/> <source>attempt to store setting for unknown plugin "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settings.cpp" line="900"/> + <location filename="settings.cpp" line="877"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settings.cpp" line="901"/> + <location filename="settings.cpp" line="878"/> <source>Failed to create "%1", you may not have the necessary permission. path remains unchanged.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settings.cpp" line="1175"/> + <location filename="settings.cpp" line="1149"/> <source>Restart Mod Organizer?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settings.cpp" line="1176"/> + <location filename="settings.cpp" line="1150"/> <source>In order to reset the window geometries, MO must be restarted. Restart it now?</source> <translation type="unfinished"></translation> @@ -5873,183 +5846,173 @@ If you use pre-releases, never contact me directly by e-mail or via private mess </message> <message> <location filename="settingsdialog.ui" line="105"/> - <location filename="settingsdialog.ui" line="108"/> - <source>When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="settingsdialog.ui" line="111"/> - <source>Show mod list separator colors on the scrollbar</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="settingsdialog.ui" line="121"/> - <source>Plugin is Contained in selected Mod</source> + <source>Reset Colors</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="128"/> + <location filename="settingsdialog.ui" line="112"/> <source>Is overwritten (loose files)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="135"/> - <source>Is overwriting (loose files)</source> + <location filename="settingsdialog.ui" line="119"/> + <source>Mod Contains selected Plugin</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="142"/> - <source>Reset Colors</source> + <location filename="settingsdialog.ui" line="126"/> + <source>Plugin is Contained in selected Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="149"/> - <source>Mod Contains selected Plugin</source> + <location filename="settingsdialog.ui" line="133"/> + <source>Is overwriting (loose files)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="156"/> - <source>Is overwritten (archive files)</source> + <location filename="settingsdialog.ui" line="140"/> + <location filename="settingsdialog.ui" line="143"/> + <source>When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="163"/> - <source>Is overwriting (archive files)</source> + <location filename="settingsdialog.ui" line="146"/> + <source>Show mod list separator colors on the scrollbar</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="173"/> - <location filename="settingsdialog.ui" line="176"/> + <location filename="settingsdialog.ui" line="159"/> + <location filename="settingsdialog.ui" line="162"/> <source>Modify the categories available to arrange your mods.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="179"/> + <location filename="settingsdialog.ui" line="165"/> <source>Configure Mod Categories</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="192"/> + <location filename="settingsdialog.ui" line="178"/> <source>Reset stored information from dialogs.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="195"/> + <location filename="settingsdialog.ui" line="181"/> <source>This will make all dialogs show up again where you checked the "Remember selection"-box.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="198"/> + <location filename="settingsdialog.ui" line="184"/> <source>Reset Dialogs</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="205"/> + <location filename="settingsdialog.ui" line="191"/> <source>If checked, the download interface will be more compact.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="208"/> + <location filename="settingsdialog.ui" line="194"/> <source>Compact Download Interface</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="228"/> + <location filename="settingsdialog.ui" line="214"/> <source>If checked, the download list will display meta information instead of file names.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="231"/> + <location filename="settingsdialog.ui" line="217"/> <source>Download Meta Information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="242"/> + <location filename="settingsdialog.ui" line="228"/> <source>Paths</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="250"/> - <location filename="settingsdialog.ui" line="267"/> - <location filename="settingsdialog.ui" line="364"/> - <location filename="settingsdialog.ui" line="422"/> + <location filename="settingsdialog.ui" line="236"/> + <location filename="settingsdialog.ui" line="253"/> + <location filename="settingsdialog.ui" line="350"/> + <location filename="settingsdialog.ui" line="408"/> <source>...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="277"/> + <location filename="settingsdialog.ui" line="263"/> <source>Caches</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="284"/> + <location filename="settingsdialog.ui" line="270"/> <source>Overwrite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="291"/> - <location filename="settingsdialog.ui" line="294"/> + <location filename="settingsdialog.ui" line="277"/> + <location filename="settingsdialog.ui" line="280"/> <source>Directory where downloads are stored.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="311"/> + <location filename="settingsdialog.ui" line="297"/> <source>Downloads</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="331"/> + <location filename="settingsdialog.ui" line="317"/> <source>Profiles</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="354"/> + <location filename="settingsdialog.ui" line="340"/> <source>Directory where mods are stored.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="357"/> + <location filename="settingsdialog.ui" line="343"/> <source>Directory where mods are stored. Please note that changing this will break all associations of profiles with mods that don't exist in the new location (with the same name).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="381"/> + <location filename="settingsdialog.ui" line="367"/> <source>Mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="401"/> + <location filename="settingsdialog.ui" line="387"/> <source>Managed Game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="408"/> + <location filename="settingsdialog.ui" line="394"/> <source>Base Directory</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="415"/> + <location filename="settingsdialog.ui" line="401"/> <source>Use %BASE_DIR% to refer to the Base Directory.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="444"/> + <location filename="settingsdialog.ui" line="430"/> <source>Important: All directories have to be writeable!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="452"/> - <location filename="settingsdialog.ui" line="468"/> + <location filename="settingsdialog.ui" line="438"/> + <location filename="settingsdialog.ui" line="454"/> <source>Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="458"/> + <location filename="settingsdialog.ui" line="444"/> <source>Allows automatic log-in when the Nexus-Page for the game is clicked.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="461"/> + <location filename="settingsdialog.ui" line="447"/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -6058,149 +6021,149 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="477"/> + <location filename="settingsdialog.ui" line="463"/> <source>If checked and if correct credentials are entered below, log-in to Nexus (for browsing and downloading) is automatic.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="480"/> + <location filename="settingsdialog.ui" line="466"/> <source>Automatically Log-In to Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="489"/> - <location filename="settingsdialog.ui" line="689"/> + <location filename="settingsdialog.ui" line="475"/> + <location filename="settingsdialog.ui" line="675"/> <source>Username</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="503"/> - <location filename="settingsdialog.ui" line="699"/> + <location filename="settingsdialog.ui" line="489"/> + <location filename="settingsdialog.ui" line="685"/> <source>Password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="524"/> + <location filename="settingsdialog.ui" line="510"/> <source>Remove cache and cookies. Forces a new login.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="527"/> + <location filename="settingsdialog.ui" line="513"/> <source>Clear Cache</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="558"/> + <location filename="settingsdialog.ui" line="544"/> <source>Disable automatic internet features</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="561"/> + <location filename="settingsdialog.ui" line="547"/> <source>Disable automatic internet features. This does not affect features that are explicitly invoked by the user (like checking mods for updates, endorsing, opening the web browser)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="564"/> + <location filename="settingsdialog.ui" line="550"/> <source>Offline Mode</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="571"/> + <location filename="settingsdialog.ui" line="557"/> <source>Use a proxy for network connections.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="574"/> + <location filename="settingsdialog.ui" line="560"/> <source>Use a proxy for network connections. This uses the system-wide settings which can be configured in Internet Explorer. Please note that MO will start up a few seconds slower on some systems when using a proxy.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="577"/> + <location filename="settingsdialog.ui" line="563"/> <source>Use HTTP Proxy (Uses System Settings)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="584"/> + <location filename="settingsdialog.ui" line="570"/> <source>Endorsement Integration</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="598"/> + <location filename="settingsdialog.ui" line="584"/> <source>Associate with "Download with manager" links</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="627"/> + <location filename="settingsdialog.ui" line="613"/> <source>Known Servers (updated on download)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="648"/> + <location filename="settingsdialog.ui" line="634"/> <source>Preferred Servers (Drag & Drop)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="683"/> + <location filename="settingsdialog.ui" line="669"/> <source>Steam</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="729"/> + <location filename="settingsdialog.ui" line="715"/> <source>If you save your steam user ID and password here, they will be used when logging into steam. Note, however, your password will be stored unencrypted, so make sure your computer is secure.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="756"/> + <location filename="settingsdialog.ui" line="742"/> <source>Plugins</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="781"/> + <location filename="settingsdialog.ui" line="767"/> <source>Author:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="795"/> + <location filename="settingsdialog.ui" line="781"/> <source>Version:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="809"/> + <location filename="settingsdialog.ui" line="795"/> <source>Description:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="847"/> + <location filename="settingsdialog.ui" line="833"/> <source>Key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="852"/> + <location filename="settingsdialog.ui" line="838"/> <source>Value</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="864"/> + <location filename="settingsdialog.ui" line="850"/> <source>Blacklisted Plugins (use <del> to remove):</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="875"/> + <location filename="settingsdialog.ui" line="861"/> <source>Workarounds</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="883"/> + <location filename="settingsdialog.ui" line="869"/> <source>Steam App ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="903"/> + <location filename="settingsdialog.ui" line="889"/> <source>The Steam AppID for your game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="906"/> + <location filename="settingsdialog.ui" line="892"/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -6216,17 +6179,17 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="937"/> + <location filename="settingsdialog.ui" line="923"/> <source>Load Mechanism</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="957"/> + <location filename="settingsdialog.ui" line="943"/> <source>Select loading mechanism. See help for details.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="960"/> + <location filename="settingsdialog.ui" line="946"/> <source>Mod Organizer needs a dll to be injected into the game so all mods are visible to it. There are several means to do this: *Mod Organizer* (default) In this mode the Mod Organizer itself injects the dll. The disadvantage is that you always have to start the game through MO or a link created by it. @@ -6237,17 +6200,17 @@ If you use the Steam version of Oblivion the default will NOT work. In this case <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="977"/> + <location filename="settingsdialog.ui" line="963"/> <source>NMM Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="997"/> + <location filename="settingsdialog.ui" line="983"/> <source>The Version of Nexus Mod Manager to impersonate.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1000"/> + <location filename="settingsdialog.ui" line="986"/> <source>Mod Organizer uses an API provided by the Nexus to provide features like checking for updates and downloading files. Unfortunately this API has not been made available officially to third party tools like MO so we have to impersonate the Nexus Mod Manager to be allowed in. On top of this Nexus has used the client identification to lock out outdated versions of NMM to force users to update. This means that MO also needs to impersonate the new version of NMM even if MO doesn't need an update. Therefore you can configure the version to identify as here. Please note that MO does identify itself as MO to the webserver, it's not lying about what it is. It is merely adding a "compatible" NMM version to the user agent. @@ -6256,28 +6219,28 @@ tl;dr-version: If Nexus-features don't work, insert the current version num <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1024"/> + <location filename="settingsdialog.ui" line="1010"/> <source>If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1027"/> + <location filename="settingsdialog.ui" line="1013"/> <source>If checked, files (i.e. esps, esms and bsas) belonging to the core game can not be disabled in the UI. (default: on) Uncheck this if you want to use Mod Organizer with total conversions (like Nehrim) but be aware that the game will crash if required files are not enabled.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1031"/> + <location filename="settingsdialog.ui" line="1017"/> <source>Force-enable game files</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1041"/> + <location filename="settingsdialog.ui" line="1027"/> <source>Disable this to no longer display mods installed outside MO in the mod list (left pane). Assets from those mods will then be treated as having lowest mod priority together with the original game content.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1044"/> + <location filename="settingsdialog.ui" line="1030"/> <source>By default Mod Organizer will display esp+bsa bundles installed with foreign tools as mods (left pane). This allows you to control their priority in relation to other mods. This is particularly useful if you also use Steam Workshop to install mods. However, if you installed loose file mods outside MO which conflict with BSAs also installed outside MO those conflicts can't be resolved correctly. @@ -6285,51 +6248,51 @@ If you disable this feature, MO will only display official DLCs this way. Please <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1050"/> + <location filename="settingsdialog.ui" line="1036"/> <source>Display mods installed outside MO</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1063"/> + <location filename="settingsdialog.ui" line="1049"/> <source>Enforces that inactive ESPs and ESMs are never loaded.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1066"/> + <location filename="settingsdialog.ui" line="1052"/> <source>It seems that the Games occasionally load ESP or ESM files even if they haven't been activated as plugins. I don't yet know what the circumstances are, but user reports imply it is in some cases unwanted. If this is checked, ESPs and ESMs not checked in the List are invisible to the game and can not be loaded.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1070"/> + <location filename="settingsdialog.ui" line="1056"/> <source>Hide inactive ESPs/ESMs</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1077"/> - <location filename="settingsdialog.ui" line="1080"/> + <location filename="settingsdialog.ui" line="1063"/> + <location filename="settingsdialog.ui" line="1066"/> <source>Disable this to prevent the GUI from being locked when running an executable. This may result in abnormal behavior.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1083"/> + <location filename="settingsdialog.ui" line="1069"/> <source>Lock GUI when running executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1095"/> - <location filename="settingsdialog.ui" line="1099"/> + <location filename="settingsdialog.ui" line="1081"/> + <location filename="settingsdialog.ui" line="1085"/> <source>For Skyrim, this can be used instead of Archive Invalidation. It should make AI redundant for all Profiles. For the other games this is not a sufficient replacement for AI!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1103"/> + <location filename="settingsdialog.ui" line="1089"/> <source>Back-date BSAs</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1114"/> + <location filename="settingsdialog.ui" line="1100"/> <source>Add executables to the blacklist to prevent them from accessing the virtual file system. This is useful to prevent unintended programs from being hooked. Hooking unintended @@ -6338,68 +6301,48 @@ programs you are intentionally running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1121"/> + <location filename="settingsdialog.ui" line="1107"/> <source>Add executables to the blacklist to prevent them from accessing the virtual file system. This is useful to prevent unintended programs from being hooked. Hooking unintended programs may affect the execution of these programs or the programs you are intentionally running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1124"/> + <location filename="settingsdialog.ui" line="1110"/> <source>Configure Executables Blacklist</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1134"/> - <source>Enable parsing of Archives Archives, has effects on perfromance.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="settingsdialog.ui" line="1137"/> - <source> - By default Mod Organizer will parse Archive files to calculate conflicts between themselves and loose files, this process has a noticeable cost in performance. - This feature should not be confused from the one offered by ModOrganizer 1, ModOrganizer 2 will only show conflicts with archives NOT load them into the game or program. - - If you disable this feature, MO will only display conflicts with Loose files. - </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="settingsdialog.ui" line="1145"/> - <source>Enable parsing of Archives</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="settingsdialog.ui" line="1155"/> - <location filename="settingsdialog.ui" line="1158"/> + <location filename="settingsdialog.ui" line="1120"/> + <location filename="settingsdialog.ui" line="1123"/> <source>Resets the window geometries for all windows. This can be useful if a window becomes too small or too large, if a column becomes too thin or too wide, and in similar situations.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1161"/> + <location filename="settingsdialog.ui" line="1126"/> <source>Reset Window Geometries</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1184"/> + <location filename="settingsdialog.ui" line="1149"/> <source>These are workarounds for problems with Mod Organizer. Please make sure you read the help text before changing anything here.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1195"/> + <location filename="settingsdialog.ui" line="1160"/> <source>Diagnostics</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1203"/> + <location filename="settingsdialog.ui" line="1168"/> <source>Max Dumps To Keep</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1223"/> + <location filename="settingsdialog.ui" line="1188"/> <source>Maximum number of crash dumps to keep on disk. Use 0 for unlimited.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1226"/> + <location filename="settingsdialog.ui" line="1191"/> <source> Maximum number of crash dumps to keep on disk. Use 0 for unlimited. Set "Crash Dumps" above to None to disable crash dump collection. @@ -6407,12 +6350,12 @@ programs you are intentionally running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1238"/> + <location filename="settingsdialog.ui" line="1203"/> <source>Hint: right click link and copy link location</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1241"/> + <location filename="settingsdialog.ui" line="1206"/> <source> Logs and crash dumps are stored under your current instance in the <a href="LOGS_FULL_PATH">LOGS_DIR</a> and <a href="DUMPS_FULL_PATH">DUMPS_DIR</a> folders. @@ -6422,17 +6365,17 @@ programs you are intentionally running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1258"/> + <location filename="settingsdialog.ui" line="1223"/> <source>Crash Dumps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1265"/> + <location filename="settingsdialog.ui" line="1230"/> <source>Decides which type of crash dumps are collected when injected processes crash.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1268"/> + <location filename="settingsdialog.ui" line="1233"/> <source> Decides which type of crash dumps are collected when injected processes crash. "None" Disables the generation of crash dumps by MO. @@ -6443,37 +6386,37 @@ programs you are intentionally running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1278"/> + <location filename="settingsdialog.ui" line="1243"/> <source>None</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1283"/> + <location filename="settingsdialog.ui" line="1248"/> <source>Mini (recommended)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1288"/> + <location filename="settingsdialog.ui" line="1253"/> <source>Data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1293"/> + <location filename="settingsdialog.ui" line="1258"/> <source>Full</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1321"/> + <location filename="settingsdialog.ui" line="1286"/> <source>Log Level</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1328"/> + <location filename="settingsdialog.ui" line="1293"/> <source>Decides the amount of data printed to "ModOrganizer.log"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1331"/> + <location filename="settingsdialog.ui" line="1296"/> <source> Decides the amount of data printed to "ModOrganizer.log". "Debug" produces very useful information for finding problems. There is usually no noteworthy performance impact but the file may become rather large. If this is a problem you may prefer the "Info" level for regluar use. On the "Error" level the log file usually remains empty. @@ -6481,22 +6424,22 @@ programs you are intentionally running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1338"/> + <location filename="settingsdialog.ui" line="1303"/> <source>Debug</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1343"/> + <location filename="settingsdialog.ui" line="1308"/> <source>Info (recommended)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1348"/> + <location filename="settingsdialog.ui" line="1313"/> <source>Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1353"/> + <location filename="settingsdialog.ui" line="1318"/> <source>Error</source> <translation type="unfinished"></translation> </message> @@ -6562,12 +6505,12 @@ Example: <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.cpp" line="322"/> + <location filename="settingsdialog.cpp" line="300"/> <source>Confirm?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.cpp" line="323"/> + <location filename="settingsdialog.cpp" line="301"/> <source>This will make all dialogs show up again where you checked the "Remember selection"-box. Continue?</source> <translation type="unfinished"></translation> </message> diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 80dad96b..4d5bf48b 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -47,7 +47,7 @@ #include <QWidget>
#include <QtDebug>
-#include <QtGlobal> // for qPrintable, etc
+#include <QtGlobal> // for qUtf8Printable, etc
#include <Psapi.h>
#include <Shlobj.h>
@@ -89,8 +89,8 @@ static bool isOnline() continue;
}
qDebug("interface %s seems to be up (address: %s)",
- qPrintable(iter->humanReadableName()),
- qPrintable(addresses[0].ip().toString()));
+ qUtf8Printable(iter->humanReadableName()),
+ qUtf8Printable(addresses[0].ip().toString()));
connected = true;
}
}
@@ -640,7 +640,7 @@ bool OrganizerCore::nexusLogin(bool retry) if ((!retry && m_Settings.getNexusLogin(username, password))
|| (m_AskForNexusPW && queryLogin(username, password))) {
// credentials stored or user entered them manually
- qDebug("attempt login with username %s", qPrintable(username));
+ qDebug("attempt login with username %s", qUtf8Printable(username));
accessManager->login(username, password);
return true;
} else {
@@ -681,7 +681,7 @@ void OrganizerCore::startMOUpdate() void OrganizerCore::downloadRequestedNXM(const QString &url)
{
- qDebug("download requested: %s", qPrintable(url));
+ qDebug("download requested: %s", qUtf8Printable(url));
if (nexusLogin()) {
m_PendingDownloads.append(url);
} else {
@@ -1126,7 +1126,7 @@ QStringList OrganizerCore::findFiles( }
}
} else {
- qWarning("directory %s not found", qPrintable(path));
+ qWarning("directory %s not found", qUtf8Printable(path));
}
return result;
}
@@ -1145,7 +1145,7 @@ QStringList OrganizerCore::getFileOrigins(const QString &fileName) const ToQString(m_DirectoryStructure->getOriginByID(i.first).getName()));
}
} else {
- qDebug("%s not found", qPrintable(fileName));
+ qDebug("%s not found", qUtf8Printable(fileName));
}
return result;
}
@@ -1412,7 +1412,7 @@ HANDLE OrganizerCore::spawnBinaryProcess(const QFileInfo &binary, }
} else {
qDebug("start of \"%s\" canceled by plugin",
- qPrintable(binary.absoluteFilePath()));
+ qUtf8Printable(binary.absoluteFilePath()));
return INVALID_HANDLE_VALUE;
}
}
@@ -1791,13 +1791,15 @@ void OrganizerCore::updateModActiveState(int index, bool active) dir.entryList(QStringList() << "*.esm", QDir::Files)) {
const FileEntry::Ptr file = m_DirectoryStructure->findFile(ToWString(esm));
if (file.get() == nullptr) {
- qWarning("failed to activate %s", qPrintable(esm));
+ qWarning("failed to activate %s", qUtf8Printable(esm));
continue;
}
if (active != m_PluginList.isEnabled(esm)
&& file->getAlternatives().empty()) {
+ m_PluginList.blockSignals(true);
m_PluginList.enableESP(esm, active);
+ m_PluginList.blockSignals(false);
}
}
int enabled = 0;
@@ -1805,13 +1807,15 @@ void OrganizerCore::updateModActiveState(int index, bool active) dir.entryList(QStringList() << "*.esl", QDir::Files)) {
const FileEntry::Ptr file = m_DirectoryStructure->findFile(ToWString(esl));
if (file.get() == nullptr) {
- qWarning("failed to activate %s", qPrintable(esl));
+ qWarning("failed to activate %s", qUtf8Printable(esl));
continue;
}
if (active != m_PluginList.isEnabled(esl)
&& file->getAlternatives().empty()) {
+ m_PluginList.blockSignals(true);
m_PluginList.enableESP(esl, active);
+ m_PluginList.blockSignals(false);
++enabled;
}
}
@@ -1819,13 +1823,15 @@ void OrganizerCore::updateModActiveState(int index, bool active) for (const QString &esp : esps) {
const FileEntry::Ptr file = m_DirectoryStructure->findFile(ToWString(esp));
if (file.get() == nullptr) {
- qWarning("failed to activate %s", qPrintable(esp));
+ qWarning("failed to activate %s", qUtf8Printable(esp));
continue;
}
if (active != m_PluginList.isEnabled(esp)
&& file->getAlternatives().empty()) {
+ m_PluginList.blockSignals(true);
m_PluginList.enableESP(esp, active);
+ m_PluginList.blockSignals(false);
++enabled;
}
}
@@ -1852,7 +1858,9 @@ void OrganizerCore::updateModInDirectoryStructure(unsigned int index, refreshESPList(true);
// activate all esps of the specified mod so the bsas get activated along with
// it
+ m_PluginList.blockSignals(true);
updateModActiveState(index, true);
+ m_PluginList.blockSignals(false);
// now we need to refresh the bsa list and save it so there is no confusion
// about what archives are avaiable and active
refreshBSAList();
@@ -2017,7 +2025,6 @@ void OrganizerCore::modStatusChanged(unsigned int index) updateModInDirectoryStructure(index, modInfo);
} else {
updateModActiveState(index, false);
- refreshESPList(true);
if (m_DirectoryStructure->originExists(ToWString(modInfo->name()))) {
FilesOrigin &origin
= m_DirectoryStructure->getOriginByName(ToWString(modInfo->name()));
@@ -2145,7 +2152,7 @@ std::vector<unsigned int> OrganizerCore::activeProblems() const // of a "log spam". But since this is a sevre error which will most likely make the
// game crash/freeze/etc. and is very hard to diagnose, this "log spam" will make it
// easier for the user to notice the warning.
- qWarning("hook.dll found in game folder: %s", qPrintable(hookdll));
+ qWarning("hook.dll found in game folder: %s", qUtf8Printable(hookdll));
problems.push_back(PROBLEM_MO1SCRIPTEXTENDERWORKAROUND);
}
return problems;
diff --git a/src/persistentcookiejar.cpp b/src/persistentcookiejar.cpp index a6eb78fa..1ed463c6 100644 --- a/src/persistentcookiejar.cpp +++ b/src/persistentcookiejar.cpp @@ -11,7 +11,7 @@ PersistentCookieJar::PersistentCookieJar(const QString &fileName, QObject *paren }
PersistentCookieJar::~PersistentCookieJar() {
- qDebug("save %s", qPrintable(m_FileName));
+ qDebug("save %s", qUtf8Printable(m_FileName));
save();
}
@@ -40,14 +40,14 @@ void PersistentCookieJar::save() { QFile oldCookies(m_FileName);
if (oldCookies.exists()) {
if (!oldCookies.remove()) {
- qCritical("failed to save cookies: failed to remove %s", qPrintable(m_FileName));
+ qCritical("failed to save cookies: failed to remove %s", qUtf8Printable(m_FileName));
return;
}
} // if it doesn't exists that's fine
}
if (!file.copy(m_FileName)) {
- qCritical("failed to save cookies: failed to write %s", qPrintable(m_FileName));
+ qCritical("failed to save cookies: failed to write %s", qUtf8Printable(m_FileName));
}
}
diff --git a/src/plugincontainer.cpp b/src/plugincontainer.cpp index 8935c472..46a95f0c 100644 --- a/src/plugincontainer.cpp +++ b/src/plugincontainer.cpp @@ -160,12 +160,12 @@ bool PluginContainer::registerPlugin(QObject *plugin, const QString &fileName) for (QObject *proxiedPlugin : matchingPlugins) {
if (proxiedPlugin != nullptr) {
if (registerPlugin(proxiedPlugin, pluginName)) {
- qDebug("loaded plugin \"%s\"", qPrintable(QFileInfo(pluginName).fileName()));
+ qDebug("loaded plugin \"%s\"", qUtf8Printable(QFileInfo(pluginName).fileName()));
}
else {
qWarning("plugin \"%s\" failed to load. If this plugin is for an older version of MO "
"you have to update it or delete it if no update exists.",
- qPrintable(pluginName));
+ qUtf8Printable(pluginName));
}
}
}
@@ -220,7 +220,7 @@ void PluginContainer::unloadPlugins() QPluginLoader *loader = m_PluginLoaders.back();
m_PluginLoaders.pop_back();
if ((loader != nullptr) && !loader->unload()) {
- qDebug("failed to unload %s: %s", qPrintable(loader->fileName()), qPrintable(loader->errorString()));
+ qDebug("failed to unload %s: %s", qUtf8Printable(loader->fileName()), qUtf8Printable(loader->errorString()));
}
delete loader;
}
@@ -275,7 +275,7 @@ void PluginContainer::loadPlugins() while (iter.hasNext()) {
iter.next();
if (m_Organizer->settings().pluginBlacklisted(iter.fileName())) {
- qDebug("plugin \"%s\" blacklisted", qPrintable(iter.fileName()));
+ qDebug("plugin \"%s\" blacklisted", qUtf8Printable(iter.fileName()));
continue;
}
loadCheck.write(iter.fileName().toUtf8());
@@ -287,14 +287,14 @@ void PluginContainer::loadPlugins() if (pluginLoader->instance() == nullptr) {
m_FailedPlugins.push_back(pluginName);
qCritical("failed to load plugin %s: %s",
- qPrintable(pluginName), qPrintable(pluginLoader->errorString()));
+ qUtf8Printable(pluginName), qUtf8Printable(pluginLoader->errorString()));
} else {
if (registerPlugin(pluginLoader->instance(), pluginName)) {
- qDebug("loaded plugin \"%s\"", qPrintable(QFileInfo(pluginName).fileName()));
+ qDebug("loaded plugin \"%s\"", qUtf8Printable(QFileInfo(pluginName).fileName()));
m_PluginLoaders.push_back(pluginLoader.release());
} else {
m_FailedPlugins.push_back(pluginName);
- qWarning("plugin \"%s\" failed to load (may be outdated)", qPrintable(pluginName));
+ qWarning("plugin \"%s\" failed to load (may be outdated)", qUtf8Printable(pluginName));
}
}
}
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 2f70cd27..3f7830c4 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -41,6 +41,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. #include <QTextCodec>
#include <QFileInfo>
#include <QListWidgetItem>
+#include <QRegularExpression>
#include <QString>
#include <QApplication>
#include <QKeyEvent>
@@ -174,6 +175,19 @@ void PluginList::refresh(const QString &profileName QStringList availablePlugins;
+ QRegExp bsaReg = QRegExp();
+ QRegExp ba2Reg = QRegExp();
+ bsaReg.setPatternSyntax(QRegExp::Wildcard);
+ bsaReg.setCaseSensitivity(Qt::CaseInsensitive);
+ ba2Reg.setPatternSyntax(QRegExp::Wildcard);
+ ba2Reg.setCaseSensitivity(Qt::CaseInsensitive);
+
+ //TODO: try QRegularExpression when we move to Qt5.12
+ /*QRegularExpression bsaReg = QRegularExpression();
+ QRegularExpression ba2Reg = QRegularExpression();
+ bsaReg.setPatternOptions(QRegularExpression::CaseInsensitiveOption);
+ ba2Reg.setPatternOptions(QRegularExpression::CaseInsensitiveOption);*/
+
std::vector<FileEntry::Ptr> files = baseDirectory.getFiles();
for (FileEntry::Ptr current : files) {
if (current.get() == nullptr) {
@@ -198,15 +212,23 @@ void PluginList::refresh(const QString &profileName try {
FilesOrigin &origin = baseDirectory.getOriginByID(current->getOrigin(archive));
+ //name without extension
+ QString baseName = QFileInfo(filename).baseName();
- QString iniPath = QFileInfo(filename).baseName() + ".ini";
+ QString iniPath = baseName + ".ini";
bool hasIni = baseDirectory.findFile(ToWString(iniPath)).get() != nullptr;
+ bsaReg.setPattern(baseName + "*.bsa");
+ ba2Reg.setPattern(baseName + "*.ba2");
+
+
+ //bsaReg.setPattern(QRegularExpression::wildcardToRegularExpression(baseName + "*.bsa"));
+ //ba2Reg.setPattern(QRegularExpression::wildcardToRegularExpression(baseName + "*.ba2"));
std::set<QString> loadedArchives;
+ QString candidateName;
for (FileEntry::Ptr archiveCandidate : files) {
- QString candidateName = ToQString(archiveCandidate->getName());
- if (candidateName.contains(QRegExp(QFileInfo(filename).baseName() + "*.bsa", Qt::CaseInsensitive, QRegExp::Wildcard)) ||
- candidateName.contains(QRegExp(QFileInfo(filename).baseName() + "*.ba2", Qt::CaseInsensitive, QRegExp::Wildcard))) {
+ candidateName = ToQString(archiveCandidate->getName());
+ if (candidateName.contains(bsaReg) || candidateName.contains(ba2Reg)) {
loadedArchives.insert(candidateName);
}
}
@@ -413,7 +435,7 @@ void PluginList::addInformation(const QString &name, const QString &message) if (iter != m_ESPsByName.end()) {
m_AdditionalInfo[name.toLower()].m_Messages.append(message);
} else {
- qWarning("failed to associate message for \"%s\"", qPrintable(name));
+ qWarning("failed to associate message for \"%s\"", qUtf8Printable(name));
}
}
@@ -477,7 +499,7 @@ void PluginList::writeLockedOrder(const QString &fileName) const file->write(QString("%1|%2\r\n").arg(iter->first).arg(iter->second).toUtf8());
}
file.commit();
- qDebug("%s saved", QDir::toNativeSeparators(fileName).toUtf8().constData());
+ qDebug("%s saved", qUtf8Printable(QDir::toNativeSeparators(fileName)));
}
@@ -502,7 +524,7 @@ void PluginList::saveTo(const QString &lockedOrderFileName }
}
if (deleterFile.commitIfDifferent(m_LastSaveHash[deleterFileName])) {
- qDebug("%s saved", qPrintable(QDir::toNativeSeparators(deleterFileName)));
+ qDebug("%s saved", qUtf8Printable(QDir::toNativeSeparators(deleterFileName)));
}
} else if (QFile::exists(deleterFileName)) {
shellDelete(QStringList() << deleterFileName);
@@ -690,7 +712,7 @@ void PluginList::setState(const QString &name, PluginStates state) { m_ESPs[iter->second].m_Enabled = (state == IPluginList::STATE_ACTIVE) ||
m_ESPs[iter->second].m_ForceEnabled;
} else {
- qWarning("plugin %s not found", qPrintable(name));
+ qWarning("plugin %s not found", qUtf8Printable(name));
}
}
@@ -1364,7 +1386,7 @@ PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled, m_Masters.insert(QString(iter->c_str()));
}
} catch (const std::exception &e) {
- qCritical("failed to parse plugin file %s: %s", qPrintable(fullPath), e.what());
+ qCritical("failed to parse plugin file %s: %s", qUtf8Printable(fullPath), e.what());
m_IsMaster = false;
m_IsLight = false;
m_IsLightFlagged = false;
diff --git a/src/profile.cpp b/src/profile.cpp index d1741311..e8ead8e8 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -40,7 +40,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. #include <QScopedArrayPointer> #include <QStringList> // for QStringList #include <QtDebug> // for qDebug, qWarning, etc -#include <QtGlobal> // for qPrintable +#include <QtGlobal> // for qUtf8Printable #include <QBuffer> #include <QDirIterator> @@ -124,7 +124,7 @@ Profile::Profile(const QDir &directory, IPluginGame const *gamePlugin) findProfileSettings(); if (!QFile::exists(m_Directory.filePath("modlist.txt"))) { - qWarning("missing modlist.txt in %s", qPrintable(directory.path())); + qWarning("missing modlist.txt in %s", qUtf8Printable(directory.path())); touchFile(m_Directory.filePath("modlist.txt")); } @@ -252,7 +252,7 @@ void Profile::doWriteModlist() } if (file.commitIfDifferent(m_LastModlistHash)) { - qDebug("%s saved", QDir::toNativeSeparators(fileName).toUtf8().constData()); + qDebug("%s saved", qUtf8Printable(QDir::toNativeSeparators(fileName))); } } catch (const std::exception &e) { reportError(tr("failed to write mod list: %1").arg(e.what())); @@ -286,9 +286,9 @@ void Profile::createTweakedIniFile() } if (error) { - reportError(tr("failed to create tweaked ini: %1").arg(getCurrentErrorStringA().c_str())); + reportError(tr("failed to create tweaked ini: %1").arg(getCurrentErrorString().c_str())); } - qDebug("%s saved", qPrintable(QDir::toNativeSeparators(tweakedIni))); + qDebug("%s saved", qUtf8Printable(QDir::toNativeSeparators(tweakedIni))); } // static @@ -303,7 +303,7 @@ void Profile::renameModInAllProfiles(const QString& oldName, const QString& newN if (modList.exists()) renameModInList(modList, oldName, newName); else - qWarning("Profile has no modlist.txt : %s", qPrintable(profileIter.filePath())); + qWarning("Profile has no modlist.txt : %s", qUtf8Printable(profileIter.filePath())); } } @@ -361,7 +361,7 @@ void Profile::renameModInList(QFile &modList, const QString &oldName, const QStr if (renamed) qDebug("Renamed %d \"%s\" mod to \"%s\" in %s", - renamed, qPrintable(oldName), qPrintable(newName), qPrintable(modList.fileName())); + renamed, qUtf8Printable(oldName), qUtf8Printable(newName), qUtf8Printable(modList.fileName())); } void Profile::refreshModStatus() @@ -421,13 +421,13 @@ void Profile::refreshModStatus() } } else { qWarning("no mod state for \"%s\" (profile \"%s\")", - qPrintable(modName), m_Directory.path().toUtf8().constData()); + qUtf8Printable(modName), m_Directory.path().toUtf8().constData()); // need to rewrite the modlist to fix this modStatusModified = true; } } else { qDebug("mod \"%s\" (profile \"%s\") not found", - qPrintable(modName), m_Directory.path().toUtf8().constData()); + qUtf8Printable(modName), m_Directory.path().toUtf8().constData()); // need to rewrite the modlist to fix this modStatusModified = true; } @@ -772,20 +772,21 @@ bool Profile::localSettingsEnabled() const { bool enabled = setting("LocalSettings", false).toBool(); if (enabled) { - bool reinitConfig = false; + QStringList missingFiles; for (QString file : m_GamePlugin->iniFiles()) { if (!QFile::exists(m_Directory.filePath(file))) { - qWarning("missing %s in %s", qPrintable(file), qPrintable(m_Directory.path())); - reinitConfig = true; + qWarning("missing %s in %s", qUtf8Printable(file), qUtf8Printable(m_Directory.path())); + missingFiles << file; } } - if (reinitConfig) { + if (!missingFiles.empty()) { + m_GamePlugin->initializeProfile(m_Directory, IPluginGame::CONFIGURATION); QMessageBox::StandardButton res = QMessageBox::warning( QApplication::activeModalWidget(), tr("Missing profile-specific game INI files!"), tr("Some of your profile-specific game INI files were missing. They will now be copied " - "from the vanilla game folder. You might want double-check your settings.") + "from the vanilla game folder. You might want double-check your settings.\n\n" + "Missing files:\n") + missingFiles.join("\n") ); - m_GamePlugin->initializeProfile(m_Directory, IPluginGame::CONFIGURATION); } } return enabled; diff --git a/src/profilesdialog.cpp b/src/profilesdialog.cpp index 17844357..f9ea655f 100644 --- a/src/profilesdialog.cpp +++ b/src/profilesdialog.cpp @@ -214,7 +214,7 @@ void ProfilesDialog::on_removeProfileButton_clicked() delete item;
}
if (!shellDelete(QStringList(profilePath))) {
- qWarning("Failed to shell-delete \"%s\" (errorcode %lu), trying regular delete", qPrintable(profilePath), ::GetLastError());
+ qWarning("Failed to shell-delete \"%s\" (errorcode %lu), trying regular delete", qUtf8Printable(profilePath), ::GetLastError());
if (!removeDir(profilePath)) {
qWarning("regular delete failed too");
}
diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index d26ca96c..cdcbc2f4 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -145,15 +145,15 @@ void SelfUpdater::testForUpdate() if (newestVer > this->m_MOVersion) {
m_UpdateCandidate = newest;
qDebug("update available: %s -> %s",
- qPrintable(this->m_MOVersion.displayString()),
- qPrintable(newestVer.displayString()));
+ qUtf8Printable(this->m_MOVersion.displayString()),
+ qUtf8Printable(newestVer.displayString()));
emit updateAvailable();
} else if (newestVer < this->m_MOVersion) {
// this could happen if the user switches from using prereleases to
// stable builds. Should we downgrade?
qDebug("this version is newer than the newest installed one: %s -> %s",
- qPrintable(this->m_MOVersion.displayString()),
- qPrintable(newestVer.displayString()));
+ qUtf8Printable(this->m_MOVersion.displayString()),
+ qUtf8Printable(newestVer.displayString()));
}
}
});
@@ -224,7 +224,7 @@ void SelfUpdater::closeProgress() void SelfUpdater::openOutputFile(const QString &fileName)
{
QString outputPath = QDir::fromNativeSeparators(qApp->property("dataPath").toString()) + "/" + fileName;
- qDebug("downloading to %s", qPrintable(outputPath));
+ qDebug("downloading to %s", qUtf8Printable(outputPath));
m_UpdateFile.setFileName(outputPath);
m_UpdateFile.open(QIODevice::WriteOnly);
}
diff --git a/src/settings.cpp b/src/settings.cpp index 6d16cfc6..605c257a 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -167,7 +167,7 @@ void Settings::registerPlugin(IPlugin *plugin) QVariant temp = m_Settings.value("Plugins/" + plugin->name() + "/" + setting.key, setting.defaultValue); if (!temp.convert(setting.defaultValue.type())) { qWarning("failed to interpret \"%s\" as correct type for \"%s\" in plugin \"%s\", using default", - qPrintable(temp.toString()), qPrintable(setting.key), qPrintable(plugin->name())); + qUtf8Printable(temp.toString()), qUtf8Printable(setting.key), qUtf8Printable(plugin->name())); temp = setting.defaultValue; } m_PluginSettings[plugin->name()][setting.key] = temp; @@ -589,7 +589,7 @@ void Settings::updateServers(const QList<ServerInfo> &servers) QVariantMap val = m_Settings.value(key).toMap(); QDate lastSeen = val["lastSeen"].toDate(); if (lastSeen.daysTo(now) > 30) { - qDebug("removing server %s since it hasn't been available for downloads in over a month", qPrintable(key)); + qDebug("removing server %s since it hasn't been available for downloads in over a month", qUtf8Printable(key)); m_Settings.remove(key); } } diff --git a/src/usvfsconnector.cpp b/src/usvfsconnector.cpp index 9c81d0d9..ef7314c0 100644 --- a/src/usvfsconnector.cpp +++ b/src/usvfsconnector.cpp @@ -61,7 +61,7 @@ LogWorker::LogWorker() { m_LogFile.open(QIODevice::WriteOnly); qDebug("usvfs log messages are written to %s", - qPrintable(m_LogFile.fileName())); + qUtf8Printable(m_LogFile.fileName())); } LogWorker::~LogWorker() |
