diff options
| author | Brian Munro <brian.alexander.munro@gmail.com> | 2018-08-21 12:23:47 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-21 12:23:47 +0200 |
| commit | 364289db72ca452e7af56dbf6ff43d0573656e57 (patch) | |
| tree | 176e8c349fffe87996fbe4708937bc4bd587c86b /src | |
| parent | 7b1821a5189f0187ea776c150f29e3bd7446724a (diff) | |
| parent | ef771fd8ca262a136c95c5141bb0de95712d14c2 (diff) | |
Merge pull request #495 from Modorganizer2/Develop
Release 2.1.5
Diffstat (limited to 'src')
| -rw-r--r-- | src/aboutdialog.ui | 7 | ||||
| -rw-r--r-- | src/downloadlistwidget.cpp | 6 | ||||
| -rw-r--r-- | src/downloadlistwidget.h | 2 | ||||
| -rw-r--r-- | src/downloadlistwidgetcompact.cpp | 6 | ||||
| -rw-r--r-- | src/downloadlistwidgetcompact.h | 2 | ||||
| -rw-r--r-- | src/downloadmanager.cpp | 62 | ||||
| -rw-r--r-- | src/downloadmanager.h | 4 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 65 | ||||
| -rw-r--r-- | src/mainwindow.h | 6 | ||||
| -rw-r--r-- | src/modlist.cpp | 30 | ||||
| -rw-r--r-- | src/modlist.h | 4 | ||||
| -rw-r--r-- | src/organizer_en.ts | 938 | ||||
| -rw-r--r-- | src/organizercore.cpp | 3 | ||||
| -rw-r--r-- | src/pluginlist.cpp | 41 | ||||
| -rw-r--r-- | src/pluginlist.h | 10 | ||||
| -rw-r--r-- | src/profilesdialog.cpp | 16 | ||||
| -rw-r--r-- | src/profilesdialog.h | 1 | ||||
| -rw-r--r-- | src/stylesheets/Paper Dark by 6788-00.qss | 53 | ||||
| -rw-r--r-- | src/stylesheets/Paper Light by 6788-00.qss | 40 | ||||
| -rw-r--r-- | src/stylesheets/dark.qss | 4 | ||||
| -rw-r--r-- | src/stylesheets/dracula.qss | 14 | ||||
| -rw-r--r-- | src/usvfsconnector.cpp | 4 | ||||
| -rw-r--r-- | src/usvfsconnector.h | 16 | ||||
| -rw-r--r-- | src/version.rc | 4 |
24 files changed, 832 insertions, 506 deletions
diff --git a/src/aboutdialog.ui b/src/aboutdialog.ui index 7e90ec32..3a6daa82 100644 --- a/src/aboutdialog.ui +++ b/src/aboutdialog.ui @@ -190,6 +190,11 @@ <string notr="true">Silarn</string>
</property>
</item>
+ <item>
+ <property name="text">
+ <string notr="true">LostDragonist</string>
+ </property>
+ </item>
</widget>
</item>
</layout>
@@ -208,7 +213,7 @@ </property>
<item>
<property name="text">
- <string notr="true">AnyOldName3 (Python Plugins)</string>
+ <string notr="true">AnyOldName3</string>
</property>
</item>
</widget>
diff --git a/src/downloadlistwidget.cpp b/src/downloadlistwidget.cpp index ad694107..34a90534 100644 --- a/src/downloadlistwidget.cpp +++ b/src/downloadlistwidget.cpp @@ -272,6 +272,11 @@ void DownloadListWidgetDelegate::issueVisitOnNexus() emit visitOnNexus(m_ContextRow);
}
+void DownloadListWidgetDelegate::issueOpenFile()
+{
+ emit openFile(m_ContextRow);
+}
+
void DownloadListWidgetDelegate::issueOpenInDownloadsFolder()
{
emit openInDownloadsFolder(m_ContextRow);
@@ -375,6 +380,7 @@ bool DownloadListWidgetDelegate::editorEvent(QEvent *event, QAbstractItemModel * menu.addAction(tr("Visit on Nexus"), this,SLOT(issueVisitOnNexus()));
}
+ menu.addAction(tr("Open File"), this, SLOT(issueOpenFile()));
menu.addAction(tr("Show in Folder"), this, SLOT(issueOpenInDownloadsFolder()));
menu.addSeparator();
diff --git a/src/downloadlistwidget.h b/src/downloadlistwidget.h index 2dd73e73..fe7f3b22 100644 --- a/src/downloadlistwidget.h +++ b/src/downloadlistwidget.h @@ -72,6 +72,7 @@ signals: void pauseDownload(int index);
void resumeDownload(int index);
void visitOnNexus(int index);
+ void openFile(int index);
void openInDownloadsFolder(int index);
protected:
@@ -93,6 +94,7 @@ private slots: void issueRestoreToView();
void issueRestoreToViewAll();
void issueVisitOnNexus();
+ void issueOpenFile();
void issueOpenInDownloadsFolder();
void issueCancel();
void issuePause();
diff --git a/src/downloadlistwidgetcompact.cpp b/src/downloadlistwidgetcompact.cpp index 663a224e..fcf93754 100644 --- a/src/downloadlistwidgetcompact.cpp +++ b/src/downloadlistwidgetcompact.cpp @@ -247,6 +247,11 @@ void DownloadListWidgetCompactDelegate::issueVisitOnNexus() emit visitOnNexus(m_ContextIndex.row());
}
+void DownloadListWidgetCompactDelegate::issueOpenFile()
+{
+ emit openFile(m_ContextIndex.row());
+}
+
void DownloadListWidgetCompactDelegate::issueOpenInDownloadsFolder()
{
emit openInDownloadsFolder(m_ContextIndex.row());
@@ -361,6 +366,7 @@ bool DownloadListWidgetCompactDelegate::editorEvent(QEvent *event, QAbstractItem }else {
menu.addAction(tr("Visit on Nexus"), this, SLOT(issueVisitOnNexus()));
}
+ menu.addAction(tr("Open File"), this, SLOT(issueOpenFile()));
menu.addAction(tr("Show in Folder"), this, SLOT(issueOpenInDownloadsFolder()));
menu.addSeparator();
menu.addAction(tr("Delete"), this, SLOT(issueDelete()));
diff --git a/src/downloadlistwidgetcompact.h b/src/downloadlistwidgetcompact.h index b1b3c617..eb109f29 100644 --- a/src/downloadlistwidgetcompact.h +++ b/src/downloadlistwidgetcompact.h @@ -70,6 +70,7 @@ signals: void pauseDownload(int index);
void resumeDownload(int index);
void visitOnNexus(int index);
+ void openFile(int index);
void openInDownloadsFolder(int index);
protected:
@@ -92,6 +93,7 @@ private slots: void issueRestoreToView();
void issueRestoreToViewAll();
void issueVisitOnNexus();
+ void issueOpenFile();
void issueOpenInDownloadsFolder();
void issueCancel();
void issuePause();
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp index 33899f46..1e907b3f 100644 --- a/src/downloadmanager.cpp +++ b/src/downloadmanager.cpp @@ -703,7 +703,7 @@ void DownloadManager::removeDownload(int index, bool deleteFile) DownloadState minState;
if (index == -3) {
minState = STATE_UNINSTALLED;
- }
+ }
else
minState = index == -1 ? STATE_READY : STATE_INSTALLED;
@@ -804,8 +804,10 @@ void DownloadManager::resumeDownloadInt(int index) if (info->isPausedState() || info->m_State == STATE_PAUSING) {
if (info->m_State == STATE_PAUSING) {
if (info->m_Output.isOpen()) {
- info->m_Output.write(info->m_Reply->readAll());
- setState(info, STATE_PAUSED);
+ writeData(info);
+ if (info->m_State == STATE_PAUSING) {
+ setState(info, STATE_PAUSED);
+ }
}
}
if ((info->m_Urls.size() == 0)
@@ -927,10 +929,27 @@ void DownloadManager::visitOnNexus(int index) }
}
+void DownloadManager::openFile(int index)
+{
+ if ((index < 0) || (index >= m_ActiveDownloads.size())) {
+ reportError(tr("OpenFile: invalid download index %1").arg(index));
+ return;
+ }
+ QDir path = QDir(m_OutputDirectory);
+ if (path.exists(getFileName(index))) {
+
+ ::ShellExecuteW(nullptr, L"open", ToWString(QDir::toNativeSeparators(getFilePath(index))).c_str(), nullptr, nullptr, SW_SHOWNORMAL);
+ return;
+ }
+
+ ::ShellExecuteW(nullptr, L"explore", ToWString(QDir::toNativeSeparators(m_OutputDirectory)).c_str(), nullptr, nullptr, SW_SHOWNORMAL);
+ return;
+}
+
void DownloadManager::openInDownloadsFolder(int index)
{
if ((index < 0) || (index >= m_ActiveDownloads.size())) {
- reportError(tr("VisitNexus: invalid download index %1").arg(index));
+ reportError(tr("OpenFileInDownloadsFolder: invalid download index %1").arg(index));
return;
}
QString params = "/select,\"";
@@ -1345,10 +1364,7 @@ void DownloadManager::downloadProgress(qint64 bytesReceived, qint64 bytesTotal) void DownloadManager::downloadReadyRead()
{
try {
- DownloadInfo *info = findDownload(this->sender());
- if (info != nullptr) {
- info->m_Output.write(info->m_Reply->readAll());
- }
+ writeData(findDownload(this->sender()));
} catch (const std::bad_alloc&) {
reportError(tr("Memory allocation error (in processing downloaded data)."));
}
@@ -1428,18 +1444,6 @@ QDateTime DownloadManager::matchDate(const QString &timeString) }
-static EFileCategory convertFileCategory(int id)
-{
- // TODO: need to handle file categories in the mod page plugin
- switch (id) {
- case 0: return TYPE_MAIN;
- case 1: return TYPE_UPDATE;
- case 2: return TYPE_OPTION;
- default: return TYPE_MAIN;
- }
-}
-
-
void DownloadManager::nxmFilesAvailable(QString, int, QVariant userData, QVariant resultData, int requestID)
{
std::set<int>::iterator idIter = m_RequestIDs.find(requestID);
@@ -1476,7 +1480,7 @@ void DownloadManager::nxmFilesAvailable(QString, int, QVariant userData, QVarian if (!info->m_FileInfo->version.isValid()) {
info->m_FileInfo->version = info->m_FileInfo->newestVersion;
}
- info->m_FileInfo->fileCategory = convertFileCategory(fileInfo["category_id"].toInt());
+ info->m_FileInfo->fileCategory = fileInfo["category_id"].toInt();
info->m_FileInfo->fileTime = matchDate(fileInfo["date"].toString());
info->m_FileInfo->fileID = fileInfo["id"].toInt();
info->m_FileInfo->fileName = fileInfo["uri"].toString();
@@ -1501,7 +1505,7 @@ void DownloadManager::nxmFilesAvailable(QString, int, QVariant userData, QVarian QVariantMap fileInfo = selection.getChoiceData().toMap();
info->m_FileInfo->name = fileInfo["name"].toString();
info->m_FileInfo->version.parse(fileInfo["version"].toString());
- info->m_FileInfo->fileCategory = convertFileCategory(fileInfo["category_id"].toInt());
+ info->m_FileInfo->fileCategory = fileInfo["category_id"].toInt();
info->m_FileInfo->fileID = fileInfo["id"].toInt();
} else {
emit showMessage(tr("No matching file found on Nexus! Maybe this file is no longer available or it was renamed?"));
@@ -1835,3 +1839,17 @@ void DownloadManager::checkDownloadTimeout() }
}
}
+
+void DownloadManager::writeData(DownloadInfo *info)
+{
+ if (info != nullptr) {
+ qint64 ret = info->m_Output.write(info->m_Reply->readAll());
+ if (ret < info->m_Reply->size()) {
+ setState(info, DownloadState::STATE_CANCELED);
+ qCritical(QString("Unable to write download \"%2\" to drive (return %1)").arg(ret).arg(info->m_FileName).toLocal8Bit());
+ reportError(tr("Unable to write download to drive (return %1).\n"
+ "Check the drive's available storage.\n\n"
+ "Canceling download \"%2\"...").arg(ret).arg(info->m_FileName));
+ }
+ }
+}
\ No newline at end of file diff --git a/src/downloadmanager.h b/src/downloadmanager.h index 136ecf2a..4cbe31b7 100644 --- a/src/downloadmanager.h +++ b/src/downloadmanager.h @@ -445,6 +445,8 @@ public slots: void visitOnNexus(int index);
+ void openFile(int index);
+
void openInDownloadsFolder(int index);
void nxmDescriptionAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID);
@@ -522,6 +524,8 @@ private: static QString getFileTypeString(int fileType);
+ void writeData(DownloadInfo *info);
+
private:
static const int AUTOMATIC_RETRIES = 3;
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f6cfbfbd..3c749bf5 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -162,6 +162,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. #include <boost/algorithm/string.hpp>
#include <boost/bind.hpp>
#include <boost/assign.hpp>
+#include <boost/range/adaptor/reversed.hpp>
#endif
#include <shlobj.h>
@@ -440,6 +441,11 @@ MainWindow::MainWindow(QSettings &initSettings refreshExecutablesList();
updateToolBar();
+
+ for (QAction *action : ui->toolBar->actions()) {
+ // set the name of the widget to the name of the action to allow styling
+ ui->toolBar->widgetForAction(action)->setObjectName(action->objectName());
+ }
}
@@ -1955,8 +1961,7 @@ void MainWindow::on_actionInstallMod_triggered() void MainWindow::on_actionAdd_Profile_triggered()
{
for (;;) {
- //Note: Calling this with an invalid profile name. Not quite sure why
- ProfilesDialog profilesDialog(m_OrganizerCore.managedGame()->gameDirectory().absolutePath(),
+ ProfilesDialog profilesDialog(m_OrganizerCore.currentProfile()->name(),
m_OrganizerCore.managedGame(),
this);
// workaround: need to disable monitoring of the saves directory, otherwise the active
@@ -3557,7 +3562,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) menu->addAction(tr("Create Mod..."), this, SLOT(createModFromOverwrite()));
menu->addAction(tr("Clear Overwrite..."), this, SLOT(clearOverwrite()));
}
- menu->addAction(tr("Open in explorer"), this, SLOT(openExplorer_clicked()));
+ menu->addAction(tr("Open in Explorer"), this, SLOT(openExplorer_clicked()));
} else if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_BACKUP) != flags.end()) {
menu->addAction(tr("Restore Backup"), this, SLOT(restoreBackup_clicked()));
menu->addAction(tr("Remove Backup..."), this, SLOT(removeMod_clicked()));
@@ -3592,13 +3597,19 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) menu->addAction(tr("Ignore update"), this, SLOT(ignoreUpdate()));
}
}
+
+ menu->addSeparator();
+
+ menu->addAction(tr("Enable selected"), this, SLOT(enableSelectedMods_clicked()));
+ menu->addAction(tr("Disable selected"), this, SLOT(disableSelectedMods_clicked()));
+
menu->addSeparator();
menu->addAction(tr("Rename Mod..."), this, SLOT(renameMod_clicked()));
menu->addAction(tr("Reinstall Mod"), this, SLOT(reinstallMod_clicked()));
- menu->addAction(tr("Remove Mod..."), this, SLOT(removeMod_clicked()));
+ menu->addAction(tr("Remove Mod..."), this, SLOT(removeMod_clicked()));
- menu->addSeparator();
+ menu->addSeparator();
if (info->getNexusID() > 0) {
switch (info->endorsedState()) {
@@ -3637,7 +3648,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos) menu->addAction(tr("Visit web page"), this, SLOT(visitWebPage_clicked()));
}
- menu->addAction(tr("Open in explorer"), this, SLOT(openExplorer_clicked()));
+ menu->addAction(tr("Open in Explorer"), this, SLOT(openExplorer_clicked()));
}
if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_FOREIGN) == flags.end()) {
@@ -4165,6 +4176,31 @@ void MainWindow::unhideFile() }
}
+
+void MainWindow::enableSelectedPlugins_clicked()
+{
+ m_OrganizerCore.pluginList()->enableSelected(ui->espList->selectionModel());
+}
+
+
+void MainWindow::disableSelectedPlugins_clicked()
+{
+ m_OrganizerCore.pluginList()->disableSelected(ui->espList->selectionModel());
+}
+
+
+void MainWindow::enableSelectedMods_clicked()
+{
+ m_OrganizerCore.modList()->enableSelected(ui->modList->selectionModel());
+}
+
+
+void MainWindow::disableSelectedMods_clicked()
+{
+ m_OrganizerCore.modList()->disableSelected(ui->modList->selectionModel());
+}
+
+
void MainWindow::previewDataFile()
{
QString fileName = QDir::fromNativeSeparators(m_ContextItem->data(0, Qt::UserRole).toString());
@@ -4373,6 +4409,7 @@ void MainWindow::updateDownloadListDelegate() connect(ui->downloadView->itemDelegate(), SIGNAL(installDownload(int)), &m_OrganizerCore, SLOT(installDownload(int)));
connect(ui->downloadView->itemDelegate(), SIGNAL(queryInfo(int)), m_OrganizerCore.downloadManager(), SLOT(queryInfo(int)));
connect(ui->downloadView->itemDelegate(), SIGNAL(visitOnNexus(int)), m_OrganizerCore.downloadManager(), SLOT(visitOnNexus(int)));
+ connect(ui->downloadView->itemDelegate(), SIGNAL(openFile(int)), m_OrganizerCore.downloadManager(), SLOT(openFile(int)));
connect(ui->downloadView->itemDelegate(), SIGNAL(openInDownloadsFolder(int)), m_OrganizerCore.downloadManager(), SLOT(openInDownloadsFolder(int)));
connect(ui->downloadView->itemDelegate(), SIGNAL(removeDownload(int, bool)), m_OrganizerCore.downloadManager(), SLOT(removeDownload(int, bool)));
connect(ui->downloadView->itemDelegate(), SIGNAL(restoreDownload(int)), m_OrganizerCore.downloadManager(), SLOT(restoreDownload(int)));
@@ -4410,8 +4447,7 @@ void MainWindow::nxmUpdatesAvailable(const std::vector<int> &modIDs, QVariant us if (game
&& result["id"].toInt() == game->nexusModOrganizerID()
&& result["game_id"].toInt() == game->nexusGameID()) {
- if (result["voted_by_user"].type() != QVariant::Invalid &&
- !result["voted_by_user"].toBool()) {
+ if (!result["voted_by_user"].toBool()) {
ui->actionEndorseMO->setVisible(true);
}
} else {
@@ -4435,8 +4471,7 @@ void MainWindow::nxmUpdatesAvailable(const std::vector<int> &modIDs, QVariant us (*iter)->setNewestVersion(result["version"].toString());
(*iter)->setNexusDescription(result["description"].toString());
if (NexusInterface::instance(&m_PluginContainer)->getAccessManager()->loggedIn() &&
- result.contains("voted_by_user") &&
- result["voted_by_user"].type() != QVariant::Invalid) {
+ result.contains("voted_by_user")) {
// don't use endorsement info if we're not logged in or if the response doesn't contain it
(*iter)->setIsEndorsed(result["voted_by_user"].toBool());
}
@@ -4757,6 +4792,11 @@ void MainWindow::on_espList_customContextMenuRequested(const QPoint &pos) m_ContextRow = m_PluginListSortProxy->mapToSource(ui->espList->indexAt(pos)).row();
QMenu menu;
+ menu.addAction(tr("Enable selected"), this, SLOT(enableSelectedPlugins_clicked()));
+ menu.addAction(tr("Disable selected"), this, SLOT(disableSelectedPlugins_clicked()));
+
+ menu.addSeparator();
+
menu.addAction(tr("Enable all"), m_OrganizerCore.pluginList(), SLOT(enableAll()));
menu.addAction(tr("Disable all"), m_OrganizerCore.pluginList(), SLOT(disableAll()));
@@ -4972,6 +5012,9 @@ void MainWindow::on_bossButton_clicked() createStdoutPipe(&stdOutRead, &stdOutWrite);
try {
m_OrganizerCore.prepareVFS();
+ } catch (const UsvfsConnectorException &e) {
+ qDebug(e.what());
+ return;
} catch (const std::exception &e) {
QMessageBox::warning(qApp->activeWindow(), tr("Error"), e.what());
return;
@@ -5135,7 +5178,7 @@ QString MainWindow::queryRestore(const QString &filePath) SelectionDialog dialog(tr("Choose backup to restore"), this);
QRegExp exp(pluginFileInfo.fileName() + PATTERN_BACKUP_REGEX);
QRegExp exp2(pluginFileInfo.fileName() + "\\.(.*)");
- for(const QFileInfo &info : files) {
+ for(const QFileInfo &info : boost::adaptors::reverse(files)) {
if (exp.exactMatch(info.fileName())) {
QDateTime time = QDateTime::fromString(exp.cap(1), PATTERN_BACKUP_DATE);
dialog.addChoice(time.toString(), "", exp.cap(1));
diff --git a/src/mainwindow.h b/src/mainwindow.h index 6cf83301..ad0972da 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -417,6 +417,8 @@ private slots: void visitWebPage_clicked();
void openExplorer_clicked();
void information_clicked();
+ void enableSelectedMods_clicked();
+ void disableSelectedMods_clicked();
// savegame context menu
void deleteSavegame_clicked();
void fixMods_clicked(SaveGameInfo::MissingAssets const &missingAssets);
@@ -428,6 +430,10 @@ private slots: void hideFile();
void unhideFile();
+ // pluginlist context menu
+ void enableSelectedPlugins_clicked();
+ void disableSelectedPlugins_clicked();
+
void linkToolbar();
void linkDesktop();
void linkMenu();
diff --git a/src/modlist.cpp b/src/modlist.cpp index 0d084c22..afed2241 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -1231,3 +1231,33 @@ bool ModList::eventFilter(QObject *obj, QEvent *event) }
return QAbstractItemModel::eventFilter(obj, event);
}
+
+
+void ModList::enableSelected(const QItemSelectionModel *selectionModel)
+{
+ if (selectionModel->hasSelection()) {
+ bool dirty = false;
+ for (auto row : selectionModel->selectedRows(COL_PRIORITY)) {
+ int modID = m_Profile->modIndexByPriority(row.data().toInt());
+ if (!m_Profile->modEnabled(modID)) {
+ m_Profile->setModEnabled(modID, true);
+ emit modlist_changed(row, 0);
+ }
+ }
+ }
+}
+
+
+void ModList::disableSelected(const QItemSelectionModel *selectionModel)
+{
+ if (selectionModel->hasSelection()) {
+ bool dirty = false;
+ for (auto row : selectionModel->selectedRows(COL_PRIORITY)) {
+ int modID = m_Profile->modIndexByPriority(row.data().toInt());
+ if (m_Profile->modEnabled(modID)) {
+ m_Profile->setModEnabled(modID, false);
+ emit modlist_changed(row, 0);
+ }
+ }
+ }
+}
\ No newline at end of file diff --git a/src/modlist.h b/src/modlist.h index 2db98bd1..15376ed5 100644 --- a/src/modlist.h +++ b/src/modlist.h @@ -170,6 +170,10 @@ public slots: void dropModeUpdate(bool dropOnItems);
+ void enableSelected(const QItemSelectionModel *selectionModel);
+
+ void disableSelected(const QItemSelectionModel *selectionModel);
+
signals:
/**
diff --git a/src/organizer_en.ts b/src/organizer_en.ts index 01a4abcb..8b8bd101 100644 --- a/src/organizer_en.ts +++ b/src/organizer_en.ts @@ -35,67 +35,67 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="201"/> + <location filename="aboutdialog.ui" line="206"/> <source>Major Contributors</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="222"/> + <location filename="aboutdialog.ui" line="227"/> <source>Translators</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="247"/> + <location filename="aboutdialog.ui" line="252"/> <source>Cyb3r (Dutch)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="257"/> + <location filename="aboutdialog.ui" line="262"/> <source>fruttyx (French)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="272"/> + <location filename="aboutdialog.ui" line="277"/> <source>Yoplala (French)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="277"/> + <location filename="aboutdialog.ui" line="282"/> <source>Faron (German)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="287"/> + <location filename="aboutdialog.ui" line="292"/> <source>Mordan (Greek)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="300"/> + <location filename="aboutdialog.ui" line="305"/> <source>Yoosk (Polish)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="305"/> + <location filename="aboutdialog.ui" line="310"/> <source>Brgodfx (Portuguese)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="325"/> + <location filename="aboutdialog.ui" line="330"/> <source>Jax (Swedish)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="330"/> + <location filename="aboutdialog.ui" line="335"/> <source>...and all other Transifex contributors!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="344"/> + <location filename="aboutdialog.ui" line="349"/> <source>Other Supporters && Contributors</source> <translation type="unfinished"></translation> </message> <message> - <location filename="aboutdialog.ui" line="466"/> + <location filename="aboutdialog.ui" line="471"/> <source>Close</source> <translation type="unfinished"></translation> </message> @@ -414,12 +414,12 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="downloadlistwidgetcompact.cpp" line="233"/> - <location filename="downloadlistwidgetcompact.cpp" line="283"/> - <location filename="downloadlistwidgetcompact.cpp" line="292"/> - <location filename="downloadlistwidgetcompact.cpp" line="301"/> - <location filename="downloadlistwidgetcompact.cpp" line="310"/> - <location filename="downloadlistwidgetcompact.cpp" line="319"/> - <location filename="downloadlistwidgetcompact.cpp" line="328"/> + <location filename="downloadlistwidgetcompact.cpp" line="288"/> + <location filename="downloadlistwidgetcompact.cpp" line="297"/> + <location filename="downloadlistwidgetcompact.cpp" line="306"/> + <location filename="downloadlistwidgetcompact.cpp" line="315"/> + <location filename="downloadlistwidgetcompact.cpp" line="324"/> + <location filename="downloadlistwidgetcompact.cpp" line="333"/> <source>Are you sure?</source> <translation type="unfinished"></translation> </message> @@ -429,124 +429,129 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="284"/> + <location filename="downloadlistwidgetcompact.cpp" line="289"/> <source>This will remove all finished downloads from this list and from disk.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="293"/> + <location filename="downloadlistwidgetcompact.cpp" line="298"/> <source>This will remove all installed downloads from this list and from disk.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="302"/> + <location filename="downloadlistwidgetcompact.cpp" line="307"/> <source>This will remove all uninstalled downloads from this list and from disk.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="311"/> + <location filename="downloadlistwidgetcompact.cpp" line="316"/> <source>This will permanently remove all finished downloads from this list (but NOT from disk).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="320"/> + <location filename="downloadlistwidgetcompact.cpp" line="325"/> <source>This will permanently remove all installed downloads from this list (but NOT from disk).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="329"/> + <location filename="downloadlistwidgetcompact.cpp" line="334"/> <source>This will permanently remove all uninstalled downloads from this list (but NOT from disk).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="358"/> + <location filename="downloadlistwidgetcompact.cpp" line="363"/> <source>Install</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="360"/> + <location filename="downloadlistwidgetcompact.cpp" line="365"/> <source>Query Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="362"/> + <location filename="downloadlistwidgetcompact.cpp" line="367"/> <source>Visit on Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="364"/> - <location filename="downloadlistwidgetcompact.cpp" line="375"/> - <location filename="downloadlistwidgetcompact.cpp" line="379"/> + <location filename="downloadlistwidgetcompact.cpp" line="369"/> + <source>Open File</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="downloadlistwidgetcompact.cpp" line="370"/> + <location filename="downloadlistwidgetcompact.cpp" line="381"/> + <location filename="downloadlistwidgetcompact.cpp" line="385"/> <source>Show in Folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="366"/> + <location filename="downloadlistwidgetcompact.cpp" line="372"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="368"/> + <location filename="downloadlistwidgetcompact.cpp" line="374"/> <source>Un-Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="370"/> + <location filename="downloadlistwidgetcompact.cpp" line="376"/> <source>Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="373"/> + <location filename="downloadlistwidgetcompact.cpp" line="379"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="374"/> + <location filename="downloadlistwidgetcompact.cpp" line="380"/> <source>Pause</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="377"/> + <location filename="downloadlistwidgetcompact.cpp" line="383"/> <source>Remove</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="378"/> + <location filename="downloadlistwidgetcompact.cpp" line="384"/> <source>Resume</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="383"/> + <location filename="downloadlistwidgetcompact.cpp" line="389"/> <source>Delete Installed...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="384"/> + <location filename="downloadlistwidgetcompact.cpp" line="390"/> <source>Delete Uninstalled...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="385"/> + <location filename="downloadlistwidgetcompact.cpp" line="391"/> <source>Delete All...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="388"/> + <location filename="downloadlistwidgetcompact.cpp" line="394"/> <source>Hide Installed...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="389"/> + <location filename="downloadlistwidgetcompact.cpp" line="395"/> <source>Hide Uninstalled...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="390"/> + <location filename="downloadlistwidgetcompact.cpp" line="396"/> <source>Hide All...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidgetcompact.cpp" line="394"/> + <location filename="downloadlistwidgetcompact.cpp" line="400"/> <source>Un-Hide All...</source> <translation type="unfinished"></translation> </message> @@ -574,22 +579,10 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="324"/> - <location filename="downloadlistwidget.cpp" line="333"/> - <location filename="downloadlistwidget.cpp" line="342"/> - <source>Are you sure?</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="downloadlistwidget.cpp" line="298"/> - <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="248"/> - <location filename="downloadlistwidget.cpp" line="297"/> - <location filename="downloadlistwidget.cpp" line="306"/> - <location filename="downloadlistwidget.cpp" line="315"/> + <location filename="downloadlistwidget.cpp" line="302"/> + <location filename="downloadlistwidget.cpp" line="311"/> + <location filename="downloadlistwidget.cpp" line="320"/> <source>Delete Files?</source> <translation type="unfinished"></translation> </message> @@ -599,115 +592,132 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="307"/> + <location filename="downloadlistwidget.cpp" line="303"/> + <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="312"/> <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="316"/> + <location filename="downloadlistwidget.cpp" line="321"/> <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="325"/> + <location filename="downloadlistwidget.cpp" line="329"/> + <location filename="downloadlistwidget.cpp" line="338"/> + <location filename="downloadlistwidget.cpp" line="347"/> + <source>Are you sure?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="downloadlistwidget.cpp" line="330"/> <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="334"/> + <location filename="downloadlistwidget.cpp" line="339"/> <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="343"/> + <location filename="downloadlistwidget.cpp" line="348"/> <source>This will remove all uninstalled downloads from this list (but NOT from disk).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="371"/> + <location filename="downloadlistwidget.cpp" line="376"/> <source>Install</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="373"/> + <location filename="downloadlistwidget.cpp" line="378"/> <source>Query Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="375"/> + <location filename="downloadlistwidget.cpp" line="380"/> <source>Visit on Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="378"/> - <location filename="downloadlistwidget.cpp" line="391"/> - <location filename="downloadlistwidget.cpp" line="395"/> + <location filename="downloadlistwidget.cpp" line="383"/> + <source>Open File</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="downloadlistwidget.cpp" line="384"/> + <location filename="downloadlistwidget.cpp" line="397"/> + <location filename="downloadlistwidget.cpp" line="401"/> <source>Show in Folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="382"/> - <location filename="downloadlistwidget.cpp" line="393"/> + <location filename="downloadlistwidget.cpp" line="388"/> + <location filename="downloadlistwidget.cpp" line="399"/> <source>Delete</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="384"/> + <location filename="downloadlistwidget.cpp" line="390"/> <source>Un-Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="386"/> + <location filename="downloadlistwidget.cpp" line="392"/> <source>Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="389"/> + <location filename="downloadlistwidget.cpp" line="395"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="390"/> + <location filename="downloadlistwidget.cpp" line="396"/> <source>Pause</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="394"/> + <location filename="downloadlistwidget.cpp" line="400"/> <source>Resume</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="400"/> + <location filename="downloadlistwidget.cpp" line="406"/> <source>Delete Installed...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="401"/> + <location filename="downloadlistwidget.cpp" line="407"/> <source>Delete Uninstalled...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="402"/> + <location filename="downloadlistwidget.cpp" line="408"/> <source>Delete All...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="406"/> + <location filename="downloadlistwidget.cpp" line="412"/> <source>Hide Installed...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="407"/> + <location filename="downloadlistwidget.cpp" line="413"/> <source>Hide Uninstalled...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="408"/> + <location filename="downloadlistwidget.cpp" line="414"/> <source>Hide All...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadlistwidget.cpp" line="412"/> + <location filename="downloadlistwidget.cpp" line="418"/> <source>Un-Hide All...</source> <translation type="unfinished"></translation> </message> @@ -833,7 +843,6 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="downloadmanager.cpp" line="905"/> - <location filename="downloadmanager.cpp" line="933"/> <source>VisitNexus: invalid download index %1</source> <translation type="unfinished"></translation> </message> @@ -843,164 +852,174 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="969"/> + <location filename="downloadmanager.cpp" line="933"/> + <source>OpenFile: invalid download index %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="downloadmanager.cpp" line="950"/> + <source>OpenFileInDownloadsFolder: invalid download index %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="downloadmanager.cpp" line="986"/> <source>get pending: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="978"/> + <location filename="downloadmanager.cpp" line="995"/> <source>get path: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="987"/> + <location filename="downloadmanager.cpp" line="1004"/> <source>Main</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="988"/> + <location filename="downloadmanager.cpp" line="1005"/> <source>Update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="989"/> + <location filename="downloadmanager.cpp" line="1006"/> <source>Optional</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="990"/> + <location filename="downloadmanager.cpp" line="1007"/> <source>Old</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="991"/> + <location filename="downloadmanager.cpp" line="1008"/> <source>Misc</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="992"/> + <location filename="downloadmanager.cpp" line="1009"/> <source>Unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="999"/> + <location filename="downloadmanager.cpp" line="1016"/> <source>display name: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1019"/> + <location filename="downloadmanager.cpp" line="1036"/> <source>file name: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1028"/> + <location filename="downloadmanager.cpp" line="1045"/> <source>file time: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1042"/> + <location filename="downloadmanager.cpp" line="1059"/> <source>file size: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1052"/> + <location filename="downloadmanager.cpp" line="1069"/> <source>progress: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1062"/> + <location filename="downloadmanager.cpp" line="1079"/> <source>state: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1072"/> + <location filename="downloadmanager.cpp" line="1089"/> <source>infocomplete: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1087"/> - <location filename="downloadmanager.cpp" line="1095"/> + <location filename="downloadmanager.cpp" line="1104"/> + <location filename="downloadmanager.cpp" line="1112"/> <source>mod id: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1103"/> + <location filename="downloadmanager.cpp" line="1120"/> <source>ishidden: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1112"/> + <location filename="downloadmanager.cpp" line="1129"/> <source>file info: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1122"/> + <location filename="downloadmanager.cpp" line="1139"/> <source>mark installed: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1167"/> + <location filename="downloadmanager.cpp" line="1184"/> <source>mark uninstalled: invalid download index %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1340"/> + <location filename="downloadmanager.cpp" line="1357"/> <source>Memory allocation error (in processing progress event).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1353"/> + <location filename="downloadmanager.cpp" line="1370"/> <source>Memory allocation error (in processing downloaded data).</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1491"/> + <location filename="downloadmanager.cpp" line="1496"/> <source>Information updated</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1493"/> - <location filename="downloadmanager.cpp" line="1507"/> + <location filename="downloadmanager.cpp" line="1498"/> + <location filename="downloadmanager.cpp" line="1512"/> <source>No matching file found on Nexus! Maybe this file is no longer available or it was renamed?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1495"/> + <location filename="downloadmanager.cpp" line="1500"/> <source>No file on Nexus matches the selected file by name. Please manually choose the correct one.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1624"/> + <location filename="downloadmanager.cpp" line="1629"/> <source>No download server available. Please try again later.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1667"/> + <location filename="downloadmanager.cpp" line="1672"/> <source>Failed to request file info from nexus: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1694"/> + <location filename="downloadmanager.cpp" line="1699"/> <source>Warning: Content type is: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1699"/> + <location filename="downloadmanager.cpp" line="1704"/> <source>Download header content length: %1 downloaded file size: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1701"/> + <location filename="downloadmanager.cpp" line="1706"/> <source>Download failed: %1 (%2)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1723"/> + <location filename="downloadmanager.cpp" line="1728"/> <source>We were unable to download the file due to errors after four retries. There may be an issue with the Nexus servers.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="downloadmanager.cpp" line="1806"/> + <location filename="downloadmanager.cpp" line="1811"/> <source>failed to re-open %1</source> <translation type="unfinished"></translation> </message> @@ -1726,11 +1745,6 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1132"/> - <source>File</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="mainwindow.ui" line="1082"/> <source>Data</source> <translation type="unfinished"></translation> @@ -1747,8 +1761,8 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="mainwindow.ui" line="1106"/> - <location filename="mainwindow.cpp" line="3505"/> - <location filename="mainwindow.cpp" line="4293"/> + <location filename="mainwindow.cpp" line="3532"/> + <location filename="mainwindow.cpp" line="4351"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> @@ -1758,6 +1772,11 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> + <location filename="mainwindow.ui" line="1132"/> + <source>File</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="mainwindow.ui" line="1137"/> <source>Mod</source> <translation type="unfinished"></translation> @@ -1922,7 +1941,7 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="mainwindow.ui" line="1509"/> - <location filename="mainwindow.cpp" line="4234"/> + <location filename="mainwindow.cpp" line="4292"/> <source>Update</source> <translation type="unfinished"></translation> </message> @@ -1933,7 +1952,7 @@ p, li { white-space: pre-wrap; } </message> <message> <location filename="mainwindow.ui" line="1524"/> - <location filename="mainwindow.cpp" line="630"/> + <location filename="mainwindow.cpp" line="636"/> <source>No Problems</source> <translation type="unfinished"></translation> </message> @@ -1963,7 +1982,7 @@ Right now this has very limited functionality</source> </message> <message> <location filename="mainwindow.ui" line="1557"/> - <location filename="mainwindow.cpp" line="4316"/> + <location filename="mainwindow.cpp" line="4374"/> <source>Endorse Mod Organizer</source> <translation type="unfinished"></translation> </message> @@ -1973,713 +1992,720 @@ Right now this has very limited functionality</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1565"/> - <source>Ctrl+C</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="mainwindow.ui" line="1574"/> + <location filename="mainwindow.ui" line="1571"/> <source>Change Game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.ui" line="1577"/> + <location filename="mainwindow.ui" line="1574"/> <source>Open the Instance selection dialog to manage a different Game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="321"/> + <location filename="mainwindow.cpp" line="322"/> <source>Toolbar</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="322"/> + <location filename="mainwindow.cpp" line="323"/> <source>Desktop</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="323"/> + <location filename="mainwindow.cpp" line="324"/> <source>Start Menu</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="347"/> + <location filename="mainwindow.cpp" line="348"/> <source>There is no supported sort mechanism for this game. You will probably have to use a third-party tool.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="618"/> + <location filename="mainwindow.cpp" line="624"/> <source>Problems</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="619"/> + <location filename="mainwindow.cpp" line="625"/> <source>There are potential problems with your setup</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="631"/> + <location filename="mainwindow.cpp" line="637"/> <source>Everything seems to be in order</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="693"/> + <location filename="mainwindow.cpp" line="699"/> <source>Help on UI</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="697"/> + <location filename="mainwindow.cpp" line="703"/> <source>Documentation Wiki</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="701"/> + <location filename="mainwindow.cpp" line="707"/> <source>Report Issue</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="705"/> + <location filename="mainwindow.cpp" line="711"/> <source>Tutorials</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="744"/> + <location filename="mainwindow.cpp" line="750"/> <source>About</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="745"/> + <location filename="mainwindow.cpp" line="751"/> <source>About Qt</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="797"/> + <location filename="mainwindow.cpp" line="803"/> <source>Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="798"/> + <location filename="mainwindow.cpp" line="804"/> <source>Please enter a name for the new profile</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="806"/> + <location filename="mainwindow.cpp" line="812"/> <source>failed to create profile: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="850"/> + <location filename="mainwindow.cpp" line="856"/> <source>Show tutorial?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="851"/> + <location filename="mainwindow.cpp" line="857"/> <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="887"/> + <location filename="mainwindow.cpp" line="893"/> <source>Downloads in progress</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="888"/> + <location filename="mainwindow.cpp" line="894"/> <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="1005"/> + <location filename="mainwindow.cpp" line="1011"/> <source>Plugin "%1" failed: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1007"/> + <location filename="mainwindow.cpp" line="1013"/> <source>Plugin "%1" failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1043"/> + <location filename="mainwindow.cpp" line="1049"/> <source>Browse Mod Page</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1178"/> + <location filename="mainwindow.cpp" line="1184"/> <source>Also in: <br></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1189"/> + <location filename="mainwindow.cpp" line="1195"/> <source>No conflict</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1301"/> + <location filename="mainwindow.cpp" line="1307"/> <source><Edit...></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1569"/> + <location filename="mainwindow.cpp" line="1575"/> <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="1631"/> + <location filename="mainwindow.cpp" line="1637"/> <source>Activating Network Proxy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1689"/> + <location filename="mainwindow.cpp" line="1695"/> <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="1778"/> + <location filename="mainwindow.cpp" line="1784"/> <source>Choose Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1779"/> + <location filename="mainwindow.cpp" line="1785"/> <source>Mod Archive</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1941"/> + <location filename="mainwindow.cpp" line="1947"/> <source>Start Tutorial?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1942"/> + <location filename="mainwindow.cpp" line="1948"/> <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="2078"/> + <location filename="mainwindow.cpp" line="2083"/> <source>failed to spawn notepad.exe: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2118"/> + <location filename="mainwindow.cpp" line="2123"/> <source>failed to change origin name: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2142"/> + <location filename="mainwindow.cpp" line="2147"/> <source>failed to move "%1" from mod "%2" to "%3": %4</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2166"/> + <location filename="mainwindow.cpp" line="2171"/> <source><Contains %1></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2201"/> + <location filename="mainwindow.cpp" line="2206"/> <source><Checked></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2202"/> + <location filename="mainwindow.cpp" line="2207"/> <source><Unchecked></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2203"/> + <location filename="mainwindow.cpp" line="2208"/> <source><Update></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2204"/> + <location filename="mainwindow.cpp" line="2209"/> <source><Managed by MO></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2205"/> + <location filename="mainwindow.cpp" line="2210"/> <source><Managed outside MO></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2206"/> + <location filename="mainwindow.cpp" line="2211"/> <source><No category></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2207"/> + <location filename="mainwindow.cpp" line="2212"/> <source><Conflicted></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2208"/> + <location filename="mainwindow.cpp" line="2213"/> <source><Not Endorsed></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2254"/> + <location filename="mainwindow.cpp" line="2259"/> <source>failed to rename mod: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2267"/> + <location filename="mainwindow.cpp" line="2272"/> <source>Overwrite?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2268"/> + <location filename="mainwindow.cpp" line="2273"/> <source>This will replace the existing mod "%1". Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2271"/> + <location filename="mainwindow.cpp" line="2276"/> <source>failed to remove mod "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2275"/> - <location filename="mainwindow.cpp" line="4118"/> - <location filename="mainwindow.cpp" line="4142"/> + <location filename="mainwindow.cpp" line="2280"/> + <location filename="mainwindow.cpp" line="4151"/> + <location filename="mainwindow.cpp" line="4175"/> <source>failed to rename "%1" to "%2"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2335"/> - <location filename="mainwindow.cpp" line="3228"/> - <location filename="mainwindow.cpp" line="3236"/> - <location filename="mainwindow.cpp" line="3702"/> + <location filename="mainwindow.cpp" line="2340"/> + <location filename="mainwindow.cpp" line="3255"/> + <location filename="mainwindow.cpp" line="3263"/> + <location filename="mainwindow.cpp" line="3735"/> <source>Confirm</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2336"/> + <location filename="mainwindow.cpp" line="2341"/> <source>Remove the following mods?<br><ul>%1</ul></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2349"/> + <location filename="mainwindow.cpp" line="2354"/> <source>failed to remove mod: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2381"/> - <location filename="mainwindow.cpp" line="2384"/> + <location filename="mainwindow.cpp" line="2386"/> + <location filename="mainwindow.cpp" line="2389"/> <source>Failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2381"/> + <location filename="mainwindow.cpp" line="2386"/> <source>Installation file no longer exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2385"/> + <location filename="mainwindow.cpp" line="2390"/> <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="2402"/> + <location filename="mainwindow.cpp" line="2407"/> <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="2418"/> - <location filename="mainwindow.cpp" line="2445"/> + <location filename="mainwindow.cpp" line="2423"/> + <location filename="mainwindow.cpp" line="2450"/> <source>You need to be logged in with Nexus to endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2493"/> + <location filename="mainwindow.cpp" line="2498"/> <source>Failed to display overwrite dialog: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2673"/> + <location filename="mainwindow.cpp" line="2675"/> <source>Nexus ID for this Mod is unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2683"/> + <location filename="mainwindow.cpp" line="2685"/> <source>Web page for this mod is unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2761"/> - <location filename="mainwindow.cpp" line="2790"/> - <location filename="mainwindow.cpp" line="3535"/> + <location filename="mainwindow.cpp" line="2763"/> + <location filename="mainwindow.cpp" line="2792"/> + <location filename="mainwindow.cpp" line="3562"/> <source>Create Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2762"/> + <location filename="mainwindow.cpp" line="2764"/> <source>This will create an empty mod. Please enter a name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2771"/> - <location filename="mainwindow.cpp" line="2800"/> + <location filename="mainwindow.cpp" line="2773"/> + <location filename="mainwindow.cpp" line="2802"/> <source>A mod with this name already exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2791"/> + <location filename="mainwindow.cpp" line="2793"/> <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="2832"/> - <location filename="mainwindow.cpp" line="4634"/> + <location filename="mainwindow.cpp" line="2834"/> + <location filename="mainwindow.cpp" line="4691"/> <source>Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="2833"/> + <location filename="mainwindow.cpp" line="2835"/> <source>About to recursively delete: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3122"/> + <location filename="mainwindow.cpp" line="3149"/> <source>Not logged in, endorsement information will be wrong</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3130"/> + <location filename="mainwindow.cpp" line="3157"/> <source>Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3131"/> + <location filename="mainwindow.cpp" line="3158"/> <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="3151"/> - <location filename="mainwindow.cpp" line="4202"/> + <location filename="mainwindow.cpp" line="3178"/> + <location filename="mainwindow.cpp" line="4260"/> <source>Sorry</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3152"/> + <location filename="mainwindow.cpp" line="3179"/> <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="3228"/> + <location filename="mainwindow.cpp" line="3255"/> <source>Really enable all visible mods?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3236"/> + <location filename="mainwindow.cpp" line="3263"/> <source>Really disable all visible mods?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3301"/> + <location filename="mainwindow.cpp" line="3328"/> <source>Export to csv</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3304"/> + <location filename="mainwindow.cpp" line="3331"/> <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="3307"/> + <location filename="mainwindow.cpp" line="3334"/> <source>Select what mods you want export:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3308"/> + <location filename="mainwindow.cpp" line="3335"/> <source>All installed mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3309"/> + <location filename="mainwindow.cpp" line="3336"/> <source>Only active (checked) mods from your current profile</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3310"/> + <location filename="mainwindow.cpp" line="3337"/> <source>All currently visible mods in the mod list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3331"/> + <location filename="mainwindow.cpp" line="3358"/> <source>Choose what Columns to export:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3334"/> + <location filename="mainwindow.cpp" line="3361"/> <source>Mod_Priority</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3336"/> + <location filename="mainwindow.cpp" line="3363"/> <source>Mod_Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3338"/> + <location filename="mainwindow.cpp" line="3365"/> <source>Mod_Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3339"/> + <location filename="mainwindow.cpp" line="3366"/> <source>Primary_Category</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3340"/> + <location filename="mainwindow.cpp" line="3367"/> <source>Nexus_ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3341"/> + <location filename="mainwindow.cpp" line="3368"/> <source>Mod_Nexus_URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3342"/> + <location filename="mainwindow.cpp" line="3369"/> <source>Mod_Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3343"/> + <location filename="mainwindow.cpp" line="3370"/> <source>Install_Date</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3344"/> + <location filename="mainwindow.cpp" line="3371"/> <source>Download_File_Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3446"/> + <location filename="mainwindow.cpp" line="3473"/> <source>export failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3465"/> + <location filename="mainwindow.cpp" line="3492"/> <source>Open Game folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3467"/> + <location filename="mainwindow.cpp" line="3494"/> <source>Open MyGames folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3471"/> + <location filename="mainwindow.cpp" line="3498"/> <source>Open Instance folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3473"/> + <location filename="mainwindow.cpp" line="3500"/> <source>Open Mods folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3475"/> + <location filename="mainwindow.cpp" line="3502"/> <source>Open Profile folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3477"/> + <location filename="mainwindow.cpp" line="3504"/> <source>Open Downloads folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3481"/> + <location filename="mainwindow.cpp" line="3508"/> <source>Open MO2 Install folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3483"/> + <location filename="mainwindow.cpp" line="3510"/> <source>Open MO2 Plugins folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3485"/> + <location filename="mainwindow.cpp" line="3512"/> <source>Open MO2 Logs folder</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3494"/> + <location filename="mainwindow.cpp" line="3521"/> <source>Install Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3496"/> + <location filename="mainwindow.cpp" line="3523"/> <source>Create empty mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3500"/> + <location filename="mainwindow.cpp" line="3527"/> <source>Enable all visible</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3501"/> + <location filename="mainwindow.cpp" line="3528"/> <source>Disable all visible</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3503"/> + <location filename="mainwindow.cpp" line="3530"/> <source>Check all for update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3507"/> + <location filename="mainwindow.cpp" line="3534"/> <source>Export to csv...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3528"/> + <location filename="mainwindow.cpp" line="3555"/> <source>All Mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3534"/> + <location filename="mainwindow.cpp" line="3561"/> <source>Sync to Mods...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3536"/> + <location filename="mainwindow.cpp" line="3563"/> <source>Clear Overwrite...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3538"/> - <location filename="mainwindow.cpp" line="3618"/> - <source>Open in explorer</source> + <location filename="mainwindow.cpp" line="3565"/> + <location filename="mainwindow.cpp" line="3651"/> + <source>Open in Explorer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3540"/> + <location filename="mainwindow.cpp" line="3567"/> <source>Restore Backup</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3541"/> + <location filename="mainwindow.cpp" line="3568"/> <source>Remove Backup...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3545"/> + <location filename="mainwindow.cpp" line="3572"/> <source>Change Categories</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3558"/> + <location filename="mainwindow.cpp" line="3585"/> <source>Primary Category</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3564"/> + <location filename="mainwindow.cpp" line="3591"/> <source>Change versioning scheme</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3568"/> + <location filename="mainwindow.cpp" line="3595"/> <source>Un-ignore update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3570"/> + <location filename="mainwindow.cpp" line="3597"/> <source>Ignore update</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3575"/> + <location filename="mainwindow.cpp" line="3603"/> + <location filename="mainwindow.cpp" line="4795"/> + <source>Enable selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="3604"/> + <location filename="mainwindow.cpp" line="4796"/> + <source>Disable selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="mainwindow.cpp" line="3608"/> <source>Rename Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3576"/> + <location filename="mainwindow.cpp" line="3609"/> <source>Reinstall Mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3577"/> + <location filename="mainwindow.cpp" line="3610"/> <source>Remove Mod...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3584"/> + <location filename="mainwindow.cpp" line="3617"/> <source>Un-Endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3587"/> - <location filename="mainwindow.cpp" line="3591"/> + <location filename="mainwindow.cpp" line="3620"/> + <location filename="mainwindow.cpp" line="3624"/> <source>Endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3588"/> + <location filename="mainwindow.cpp" line="3621"/> <source>Won't endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3594"/> + <location filename="mainwindow.cpp" line="3627"/> <source>Endorsement state unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3605"/> + <location filename="mainwindow.cpp" line="3638"/> <source>Ignore missing data</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3609"/> + <location filename="mainwindow.cpp" line="3642"/> <source>Mark as converted/working</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3613"/> + <location filename="mainwindow.cpp" line="3646"/> <source>Visit on Nexus</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3615"/> + <location filename="mainwindow.cpp" line="3648"/> <source>Visit web page</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3622"/> + <location filename="mainwindow.cpp" line="3655"/> <source>Information...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3629"/> - <location filename="mainwindow.cpp" line="4767"/> + <location filename="mainwindow.cpp" line="3662"/> + <location filename="mainwindow.cpp" line="4829"/> <source>Exception: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3631"/> - <location filename="mainwindow.cpp" line="4769"/> + <location filename="mainwindow.cpp" line="3664"/> + <location filename="mainwindow.cpp" line="4831"/> <source>Unknown exception</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3662"/> + <location filename="mainwindow.cpp" line="3695"/> <source><All></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3664"/> + <location filename="mainwindow.cpp" line="3697"/> <source><Multiple></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3699"/> + <location filename="mainwindow.cpp" line="3732"/> <source>%1 more</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="mainwindow.cpp" line="3703"/> + <location filename="mainwindow.cpp" line="3736"/> <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> @@ -2687,12 +2713,12 @@ You can also use online editors and converters instead.</source> </translation> </message> <message> - <location filename="mainwindow.cpp" line="3748"/> + <location filename="mainwindow.cpp" line="3781"/> <source>Enable Mods...</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="mainwindow.cpp" line="3763"/> + <location filename="mainwindow.cpp" line="3796"/> <source>Delete %n save(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -2700,319 +2726,319 @@ You can also use online editors and converters instead.</source> </translation> </message> <message> - <location filename="mainwindow.cpp" line="3805"/> + <location filename="mainwindow.cpp" line="3838"/> <source>failed to remove %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3827"/> + <location filename="mainwindow.cpp" line="3860"/> <source>failed to create %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3869"/> + <location filename="mainwindow.cpp" line="3902"/> <source>Can't change download directory while downloads are in progress!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3990"/> + <location filename="mainwindow.cpp" line="4023"/> <source>failed to write to file %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3996"/> + <location filename="mainwindow.cpp" line="4029"/> <source>%1 written</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4037"/> + <location filename="mainwindow.cpp" line="4070"/> <source>Select binary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4037"/> + <location filename="mainwindow.cpp" line="4070"/> <source>Binary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4063"/> + <location filename="mainwindow.cpp" line="4096"/> <source>Enter Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4064"/> + <location filename="mainwindow.cpp" line="4097"/> <source>Please enter a name for the executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4078"/> + <location filename="mainwindow.cpp" line="4111"/> <source>Not an executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4078"/> + <location filename="mainwindow.cpp" line="4111"/> <source>This is not a recognized executable.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4103"/> - <location filename="mainwindow.cpp" line="4128"/> + <location filename="mainwindow.cpp" line="4136"/> + <location filename="mainwindow.cpp" line="4161"/> <source>Replace file?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4103"/> + <location filename="mainwindow.cpp" line="4136"/> <source>There already is a hidden version of this file. Replace it?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4106"/> - <location filename="mainwindow.cpp" line="4131"/> + <location filename="mainwindow.cpp" line="4139"/> + <location filename="mainwindow.cpp" line="4164"/> <source>File operation failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4106"/> - <location filename="mainwindow.cpp" line="4131"/> + <location filename="mainwindow.cpp" line="4139"/> + <location filename="mainwindow.cpp" line="4164"/> <source>Failed to remove "%1". Maybe you lack the required file permissions?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4128"/> + <location filename="mainwindow.cpp" line="4161"/> <source>There already is a visible version of this file. Replace it?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4175"/> + <location filename="mainwindow.cpp" line="4233"/> <source>file not found: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4188"/> + <location filename="mainwindow.cpp" line="4246"/> <source>failed to generate preview for %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4202"/> + <location filename="mainwindow.cpp" line="4260"/> <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="4236"/> + <location filename="mainwindow.cpp" line="4294"/> <source>Update available</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4273"/> + <location filename="mainwindow.cpp" line="4331"/> <source>Open/Execute</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4274"/> + <location filename="mainwindow.cpp" line="4332"/> <source>Add as Executable</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4278"/> + <location filename="mainwindow.cpp" line="4336"/> <source>Preview</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4284"/> + <location filename="mainwindow.cpp" line="4342"/> <source>Un-Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4286"/> + <location filename="mainwindow.cpp" line="4344"/> <source>Hide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4292"/> + <location filename="mainwindow.cpp" line="4350"/> <source>Write To File...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4317"/> + <location filename="mainwindow.cpp" line="4375"/> <source>Do you want to endorse Mod Organizer on %1 now?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4443"/> + <location filename="mainwindow.cpp" line="4500"/> <source>Thank you!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4443"/> + <location filename="mainwindow.cpp" line="4500"/> <source>Thank you for your endorsement!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4478"/> + <location filename="mainwindow.cpp" line="4535"/> <source>Request to Nexus failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4493"/> - <location filename="mainwindow.cpp" line="4555"/> + <location filename="mainwindow.cpp" line="4550"/> + <location filename="mainwindow.cpp" line="4612"/> <source>failed to read %1: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4505"/> - <location filename="mainwindow.cpp" line="4954"/> + <location filename="mainwindow.cpp" line="4562"/> + <location filename="mainwindow.cpp" line="5019"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4505"/> + <location filename="mainwindow.cpp" line="4562"/> <source>failed to extract %1 (errorcode %2)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4537"/> + <location filename="mainwindow.cpp" line="4594"/> <source>Extract BSA</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4566"/> + <location filename="mainwindow.cpp" line="4623"/> <source>This archive contains invalid hashes. Some files may be broken.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4612"/> + <location filename="mainwindow.cpp" line="4669"/> <source>Extract...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4635"/> + <location filename="mainwindow.cpp" line="4692"/> <source>This will restart MO, continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4675"/> + <location filename="mainwindow.cpp" line="4732"/> <source>Edit Categories...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4676"/> + <location filename="mainwindow.cpp" line="4733"/> <source>Deselect filter</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4727"/> + <location filename="mainwindow.cpp" line="4784"/> <source>Remove</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4738"/> + <location filename="mainwindow.cpp" line="4800"/> <source>Enable all</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4739"/> + <location filename="mainwindow.cpp" line="4801"/> <source>Disable all</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4758"/> + <location filename="mainwindow.cpp" line="4820"/> <source>Unlock load order</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4761"/> + <location filename="mainwindow.cpp" line="4823"/> <source>Lock load order</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4903"/> + <location filename="mainwindow.cpp" line="4965"/> <source>depends on missing "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4907"/> + <location filename="mainwindow.cpp" line="4969"/> <source>incompatible with "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="4933"/> + <location filename="mainwindow.cpp" line="4995"/> <source>Please wait while LOOT is running</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5027"/> + <location filename="mainwindow.cpp" line="5092"/> <source>loot failed. Exit code was: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5049"/> + <location filename="mainwindow.cpp" line="5114"/> <source>failed to start loot</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5052"/> + <location filename="mainwindow.cpp" line="5117"/> <source>failed to run loot: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5056"/> + <location filename="mainwindow.cpp" line="5121"/> <source>Errors occured</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5103"/> + <location filename="mainwindow.cpp" line="5168"/> <source>Backup of load order created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5113"/> + <location filename="mainwindow.cpp" line="5178"/> <source>Choose backup to restore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5126"/> + <location filename="mainwindow.cpp" line="5191"/> <source>No Backups</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5126"/> + <location filename="mainwindow.cpp" line="5191"/> <source>There are no backups to restore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5147"/> - <location filename="mainwindow.cpp" line="5169"/> + <location filename="mainwindow.cpp" line="5212"/> + <location filename="mainwindow.cpp" line="5234"/> <source>Restore failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5148"/> - <location filename="mainwindow.cpp" line="5170"/> + <location filename="mainwindow.cpp" line="5213"/> + <location filename="mainwindow.cpp" line="5235"/> <source>Failed to restore the backup. Errorcode: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5159"/> + <location filename="mainwindow.cpp" line="5224"/> <source>Backup of modlist created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5265"/> + <location filename="mainwindow.cpp" line="5330"/> <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="5267"/> + <location filename="mainwindow.cpp" line="5332"/> <source>Overwrite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5268"/> + <location filename="mainwindow.cpp" line="5333"/> <source>Rename new file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="5269"/> + <location filename="mainwindow.cpp" line="5334"/> <source>Ignore file</source> <translation type="unfinished"></translation> </message> @@ -3853,138 +3879,138 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="399"/> + <location filename="modlist.cpp" line="398"/> <source>installed version: "%1", newest version: "%2"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="401"/> + <location filename="modlist.cpp" line="400"/> <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="409"/> + <location filename="modlist.cpp" line="408"/> <source>Categories: <br></source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="438"/> + <location filename="modlist.cpp" line="437"/> <source>Invalid name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="443"/> + <location filename="modlist.cpp" line="442"/> <source>Name is already in use by another mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="940"/> + <location filename="modlist.cpp" line="939"/> <source>drag&drop failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1019"/> + <location filename="modlist.cpp" line="1018"/> <source>Confirm</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1020"/> + <location filename="modlist.cpp" line="1019"/> <source>Are you sure you want to remove "%1"?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1083"/> + <location filename="modlist.cpp" line="1082"/> <source>Flags</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1084"/> + <location filename="modlist.cpp" line="1083"/> <source>Content</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1085"/> + <location filename="modlist.cpp" line="1084"/> <source>Mod Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1086"/> + <location filename="modlist.cpp" line="1085"/> <source>Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1087"/> + <location filename="modlist.cpp" line="1086"/> <source>Priority</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1088"/> + <location filename="modlist.cpp" line="1087"/> <source>Category</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1089"/> + <location filename="modlist.cpp" line="1088"/> <source>Source Game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1090"/> + <location filename="modlist.cpp" line="1089"/> <source>Nexus ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1091"/> + <location filename="modlist.cpp" line="1090"/> <source>Installation</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1092"/> - <location filename="modlist.cpp" line="1125"/> + <location filename="modlist.cpp" line="1091"/> + <location filename="modlist.cpp" line="1124"/> <source>unknown</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1100"/> + <location filename="modlist.cpp" line="1099"/> <source>Name of your mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1101"/> + <location filename="modlist.cpp" line="1100"/> <source>Version of the mod (if available)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1102"/> + <location filename="modlist.cpp" line="1101"/> <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="1104"/> + <location filename="modlist.cpp" line="1103"/> <source>Category of the mod.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1105"/> + <location filename="modlist.cpp" line="1104"/> <source>The source game which was the origin of this mod.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1106"/> + <location filename="modlist.cpp" line="1105"/> <source>Id of the mod as used on Nexus.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1107"/> + <location filename="modlist.cpp" line="1106"/> <source>Emblemes to highlight things that might require attention.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1108"/> + <location filename="modlist.cpp" line="1107"/> <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></table></source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlist.cpp" line="1124"/> + <location filename="modlist.cpp" line="1123"/> <source>Time this mod was installed</source> <translation type="unfinished"></translation> </message> @@ -4173,108 +4199,108 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1315"/> + <location filename="organizercore.cpp" line="1318"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1323"/> + <location filename="organizercore.cpp" line="1326"/> <source>Windows Event Log Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1324"/> + <location filename="organizercore.cpp" line="1327"/> <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="1412"/> + <location filename="organizercore.cpp" line="1415"/> <source>No profile set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1698"/> + <location filename="organizercore.cpp" line="1701"/> <source>Failed to refresh list of esps: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1782"/> + <location filename="organizercore.cpp" line="1785"/> <source>Multiple esps/esls activated, please check that they don't conflict.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1857"/> + <location filename="organizercore.cpp" line="1860"/> <source>Download?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1858"/> + <location filename="organizercore.cpp" line="1861"/> <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="1992"/> + <location filename="organizercore.cpp" line="1995"/> <source>failed to update mod list: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="1999"/> - <location filename="organizercore.cpp" line="2016"/> + <location filename="organizercore.cpp" line="2002"/> + <location filename="organizercore.cpp" line="2019"/> <source>login successful</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2023"/> + <location filename="organizercore.cpp" line="2026"/> <source>Login failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2024"/> + <location filename="organizercore.cpp" line="2027"/> <source>Login failed, try again?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2033"/> + <location filename="organizercore.cpp" line="2036"/> <source>login failed: %1. Download will not be associated with an account</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2041"/> + <location filename="organizercore.cpp" line="2044"/> <source>login failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2051"/> + <location filename="organizercore.cpp" line="2054"/> <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="2104"/> + <location filename="organizercore.cpp" line="2107"/> <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="2107"/> - <location filename="organizercore.cpp" line="2123"/> + <location filename="organizercore.cpp" line="2110"/> + <location filename="organizercore.cpp" line="2126"/> <source>Description missing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2116"/> + <location filename="organizercore.cpp" line="2119"/> <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="2150"/> + <location filename="organizercore.cpp" line="2153"/> <source>failed to save load order: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="organizercore.cpp" line="2222"/> + <location filename="organizercore.cpp" line="2225"/> <source>The designated write target "%1" is not enabled.</source> <translation type="unfinished"></translation> </message> @@ -4431,84 +4457,84 @@ Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="295"/> - <location filename="pluginlist.cpp" line="307"/> + <location filename="pluginlist.cpp" line="336"/> + <location filename="pluginlist.cpp" line="348"/> <source>Confirm</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="295"/> + <location filename="pluginlist.cpp" line="336"/> <source>Really enable all plugins?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="307"/> + <location filename="pluginlist.cpp" line="348"/> <source>Really disable all plugins?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="397"/> + <location filename="pluginlist.cpp" line="438"/> <source>The file containing locked plugin indices is broken</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="893"/> - <location filename="pluginlist.cpp" line="897"/> + <location filename="pluginlist.cpp" line="934"/> + <location filename="pluginlist.cpp" line="938"/> <source><b>Origin</b>: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="894"/> + <location filename="pluginlist.cpp" line="935"/> <source><br><b><i>This plugin can't be disabled (enforced by the game).</i></b></source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="899"/> + <location filename="pluginlist.cpp" line="940"/> <source>Author</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="902"/> + <location filename="pluginlist.cpp" line="943"/> <source>Description</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="905"/> + <location filename="pluginlist.cpp" line="946"/> <source>Missing Masters</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="912"/> + <location filename="pluginlist.cpp" line="953"/> <source>Enabled Masters</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="915"/> + <location filename="pluginlist.cpp" line="956"/> <source>Loads Archives</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="916"/> + <location filename="pluginlist.cpp" line="957"/> <source>There are Archives connected to this plugin. Their assets will be added to your game, overwriting in case of conflicts following the plugin order. Loose files will always overwrite assets from Archives. (This flag only checks for Archives from the same mod as the plugin)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="921"/> + <location filename="pluginlist.cpp" line="962"/> <source>Loads INI settings</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="922"/> + <location filename="pluginlist.cpp" line="963"/> <source>There is an ini file connected to this plugin. Its settings will be added to your game settings, overwriting in case of conflicts.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="926"/> + <location filename="pluginlist.cpp" line="967"/> <source>This ESP is flagged as an ESL. It will adhere to the ESP load order but the records will be loaded in ESL space.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="1101"/> + <location filename="pluginlist.cpp" line="1142"/> <source>failed to restore load order for %1</source> <translation type="unfinished"></translation> </message> @@ -5240,18 +5266,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="863"/> + <location filename="mainwindow.cpp" line="869"/> <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="1265"/> - <location filename="mainwindow.cpp" line="3947"/> + <location filename="mainwindow.cpp" line="1271"/> + <location filename="mainwindow.cpp" line="3980"/> <source><Manage...></source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="1277"/> + <location filename="mainwindow.cpp" line="1283"/> <source>failed to parse profile %1: %2</source> <translation type="unfinished"></translation> </message> @@ -5287,12 +5313,12 @@ If the folder was still in use, restart MO and try again.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="473"/> + <location filename="pluginlist.cpp" line="514"/> <source>failed to access %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="pluginlist.cpp" line="487"/> + <location filename="pluginlist.cpp" line="528"/> <source>failed to set file time %1</source> <translation type="unfinished"></translation> </message> @@ -5659,11 +5685,6 @@ If you use pre-releases, never contact me directly by e-mail or via private mess <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="334"/> - <source>Base Directory</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="settingsdialog.ui" line="176"/> <location filename="settingsdialog.ui" line="193"/> <location filename="settingsdialog.ui" line="290"/> @@ -5671,13 +5692,19 @@ If you use pre-releases, never contact me directly by e-mail or via private mess <translation type="unfinished"></translation> </message> <message> + <location filename="settingsdialog.ui" line="203"/> + <source>Caches</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="settingsdialog.ui" line="210"/> <source>Overwrite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="203"/> - <source>Caches</source> + <location filename="settingsdialog.ui" line="217"/> + <location filename="settingsdialog.ui" line="220"/> + <source>Directory where downloads are stored.</source> <translation type="unfinished"></translation> </message> <message> @@ -5686,6 +5713,11 @@ If you use pre-releases, never contact me directly by e-mail or via private mess <translation type="unfinished"></translation> </message> <message> + <location filename="settingsdialog.ui" line="257"/> + <source>Profiles</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="settingsdialog.ui" line="280"/> <source>Directory where mods are stored.</source> <translation type="unfinished"></translation> @@ -5696,24 +5728,18 @@ If you use pre-releases, never contact me directly by e-mail or via private mess <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="217"/> - <location filename="settingsdialog.ui" line="220"/> - <source>Directory where downloads are stored.</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="settingsdialog.ui" line="307"/> <source>Mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="257"/> - <source>Profiles</source> + <location filename="settingsdialog.ui" line="327"/> + <source>Managed Game</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="327"/> - <source>Managed Game</source> + <location filename="settingsdialog.ui" line="334"/> + <source>Base Directory</source> <translation type="unfinished"></translation> </message> <message> @@ -6109,6 +6135,11 @@ For the other games this is not a sufficient replacement for AI!</source> <translation type="unfinished"></translation> </message> <message> + <location filename="settingsdialog.ui" line="1167"/> + <source>Hint: right click link and copy link location</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="settingsdialog.ui" line="1170"/> <source> Logs and crash dumps are stored under your current instance in the <a href="LOGS_FULL_PATH">LOGS_DIR</a> @@ -6119,11 +6150,6 @@ For the other games this is not a sufficient replacement for AI!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="settingsdialog.ui" line="1167"/> - <source>Hint: right click link and copy link location</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="settingsdialog.cpp" line="70"/> <source>Confirm</source> <translation type="unfinished"></translation> diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 74ec752e..5c85e323 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -1311,6 +1311,9 @@ HANDLE OrganizerCore::spawnBinaryProcess(const QFileInfo &binary, if (m_AboutToRun(binary.absoluteFilePath())) {
try {
m_USVFS.updateMapping(fileMapping(profileName, customOverwrite));
+ } catch (const UsvfsConnectorException &e) {
+ qDebug(e.what());
+ return INVALID_HANDLE_VALUE;
} catch (const std::exception &e) {
QMessageBox::warning(window, tr("Error"), e.what());
return INVALID_HANDLE_VALUE;
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 323cd98f..18e40a6e 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -289,6 +289,47 @@ void PluginList::enableESP(const QString &name, bool enable) }
}
+void PluginList::enableSelected(const QItemSelectionModel *selectionModel)
+{
+ if (selectionModel->hasSelection()){
+ bool dirty = false;
+ for (auto row : selectionModel->selectedRows(COL_PRIORITY)) {
+ int rowPriority = row.data().toInt();
+ for (int i = 0; i < m_ESPs.size(); i++) {
+ if (m_ESPs[i].m_Priority == rowPriority) {
+ if (!m_ESPs[i].m_Enabled) {
+ m_ESPs[i].m_Enabled = true;
+ dirty = true;
+ }
+
+ break;
+ }
+ }
+ }
+ if (dirty) emit writePluginsList();
+ }
+}
+
+void PluginList::disableSelected(const QItemSelectionModel *selectionModel)
+{
+ if (selectionModel->hasSelection()){
+ bool dirty = false;
+ for (auto row : selectionModel->selectedRows(COL_PRIORITY)) {
+ int rowPriority = row.data().toInt();
+ for (int i = 0; i < m_ESPs.size(); i++) {
+ if (m_ESPs[i].m_Priority == rowPriority) {
+ if (!m_ESPs[i].m_ForceEnabled && m_ESPs[i].m_Enabled) {
+ m_ESPs[i].m_Enabled = false;
+ dirty = true;
+ }
+ break;
+ }
+ }
+ }
+ if (dirty) emit writePluginsList();
+ }
+}
+
void PluginList::enableAll()
{
diff --git a/src/pluginlist.h b/src/pluginlist.h index b8e35c32..03d6426a 100644 --- a/src/pluginlist.h +++ b/src/pluginlist.h @@ -245,6 +245,16 @@ public: // implementation of the QAbstractTableModel interface public slots:
/**
+ * @brief enables selected plugins
+ **/
+ void enableSelected(const QItemSelectionModel *selectionModel);
+
+ /**
+ * @brief disables selected plugins
+ **/
+ void disableSelected(const QItemSelectionModel *selectionModel);
+
+ /**
* @brief enables ALL plugins
**/
void enableAll();
diff --git a/src/profilesdialog.cpp b/src/profilesdialog.cpp index 04c1876d..ed54f33c 100644 --- a/src/profilesdialog.cpp +++ b/src/profilesdialog.cpp @@ -53,6 +53,7 @@ ProfilesDialog::ProfilesDialog(const QString &profileName, MOBase::IPluginGame c , ui(new Ui::ProfilesDialog)
, m_FailState(false)
, m_Game(game)
+ , m_ActiveProfileName("")
{
ui->setupUi(this);
@@ -66,6 +67,7 @@ ProfilesDialog::ProfilesDialog(const QString &profileName, MOBase::IPluginGame c QListWidgetItem *item = addItem(profileIter.filePath());
if (profileName == profileIter.fileName()) {
ui->profilesList->setCurrentItem(item);
+ m_ActiveProfileName = profileName;
}
}
@@ -182,13 +184,19 @@ void ProfilesDialog::on_copyProfileButton_clicked() void ProfilesDialog::on_removeProfileButton_clicked()
{
+ Profile::Ptr profileToDelete = ui->profilesList->currentItem()->data(Qt::UserRole).value<Profile::Ptr>();
+ if (profileToDelete->name() == m_ActiveProfileName) {
+ QMessageBox::warning(this, tr("Deleting active profile"),
+ tr("Unable to delete active profile. Please change to a different profile first."));
+ return;
+ }
+
QMessageBox confirmBox(QMessageBox::Question, tr("Confirm"), tr("Are you sure you want to remove this profile (including local savegames if any)?"),
- QMessageBox::Yes | QMessageBox::No);
+ QMessageBox::Yes | QMessageBox::No, this);
if (confirmBox.exec() == QMessageBox::Yes) {
- Profile::Ptr currentProfile = ui->profilesList->currentItem()->data(Qt::UserRole).value<Profile::Ptr>();
QString profilePath;
- if (currentProfile.get() == nullptr) {
+ if (profileToDelete.get() == nullptr) {
profilePath = Settings::instance().getProfileDirectory()
+ "/" + ui->profilesList->currentItem()->text();
if (QMessageBox::question(this, tr("Profile broken"),
@@ -199,7 +207,7 @@ void ProfilesDialog::on_removeProfileButton_clicked() } else {
// on destruction, the profile object would write the profile.ini file again, so
// we have to get rid of the it before deleting the directory
- profilePath = currentProfile->absolutePath();
+ profilePath = profileToDelete->absolutePath();
}
QListWidgetItem* item = ui->profilesList->takeItem(ui->profilesList->currentRow());
if (item != nullptr) {
diff --git a/src/profilesdialog.h b/src/profilesdialog.h index cab25f6a..a328ce40 100644 --- a/src/profilesdialog.h +++ b/src/profilesdialog.h @@ -95,6 +95,7 @@ private: QListWidget *m_ProfilesList;
bool m_FailState;
MOBase::IPluginGame const *m_Game;
+ QString m_ActiveProfileName;
};
#endif // PROFILESDIALOG_H
diff --git a/src/stylesheets/Paper Dark by 6788-00.qss b/src/stylesheets/Paper Dark by 6788-00.qss index ea36e675..11f5b922 100644 --- a/src/stylesheets/Paper Dark by 6788-00.qss +++ b/src/stylesheets/Paper Dark by 6788-00.qss @@ -1,4 +1,4 @@ -/* v3.0 Paper Dark by 6788-00 */ +/* v3.0.1 Paper Dark by 6788-00 */ /* https://6788-00.tumblr.com/ */ /* Main Window */ @@ -54,7 +54,6 @@ QToolBar::separator { } QToolButton { - background: #1A1A1A; padding: 4px 6px; border-radius: 6px; margin: 4px 4px 0px 4px; @@ -381,8 +380,8 @@ QMenu::item:selected { } QMenu::item:disabled { - background: #FFFFFF; - color: #6C6C6C; + background: #242424; + color: #808080; } QMenu::separator { @@ -413,6 +412,8 @@ QProgressBar { QProgressBar::chunk { background: #007E7E; + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; } /* Right Pane and Tab Bars */ @@ -448,7 +449,8 @@ QTabBar::tab:disabled { } QTabBar::tab:selected { - color: #007272; + background: #007272; + color: #FFFFFF; } @@ -504,4 +506,45 @@ QSlider::handle:horizontal:hover { QTableView { gridline-color: #222222; border: 0px; +} + +QListWidget::item#executablesListBox { + /* fixes the black text problem on the Modify Executables window */ + color: #D3D3D3; +} + +/* downloads tab */ + +QWidget#downloadTab QAbstractScrollArea { + /* background of the entire downloads tab */ + background: #242424; +} + +DownloadListWidget QFrame, +DownloadListWidgetCompact, +DownloadListWidgetCompact QLabel { + /* an entry on the Downloads tab */ + background: #141414; +} + +DownloadListWidget QFrame#frame { + /* outer box of an entry on the Downloads tab */ + border: 2px solid #141414; +} + +DownloadListWidget QLabel#installLabel { + color: none; +} + +DownloadListWidget QFrame:clicked { + background: #007E7E; +} + +/* compact downloads view */ + +DownloadListWidgetCompact, +DownloadListWidgetCompact QLabel { + /* an entry on the Downloads tab */ + background: #141414; + padding: 4px; }
\ No newline at end of file diff --git a/src/stylesheets/Paper Light by 6788-00.qss b/src/stylesheets/Paper Light by 6788-00.qss index a75831f8..5f6e2867 100644 --- a/src/stylesheets/Paper Light by 6788-00.qss +++ b/src/stylesheets/Paper Light by 6788-00.qss @@ -1,4 +1,4 @@ -/* v3.0 Paper Light by 6788-00 */ +/* v3.0.1 Paper Light by 6788-00 */ /* https://6788-00.tumblr.com/ */ /* Main Window */ @@ -54,7 +54,6 @@ QToolBar::separator { } QToolButton { - background: #FFFFFF; padding: 4px 6px; border-radius: 6px; margin: 4px 4px 0px 4px; @@ -413,6 +412,8 @@ QProgressBar { QProgressBar::chunk { background: #008F8F; + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; } /* Right Pane and Tab Bars */ @@ -448,7 +449,8 @@ QTabBar::tab:disabled { } QTabBar::tab:selected { - color: #008484; + background: #008484; + color: #FFFFFF; } @@ -504,4 +506,36 @@ QSlider::handle:horizontal:hover { QTableView { gridline-color: #EFEFEF; border: 0px; +} + +/* downloads tab */ + +QWidget#downloadTab QAbstractScrollArea { + /* background of the entire downloads tab */ + background: #EFEFEF; +} + +DownloadListWidget QFrame, +DownloadListWidgetCompact, +DownloadListWidgetCompact QLabel { + /* an entry on the Downloads tab */ + background: #FFFFFF; +} + +DownloadListWidget QFrame#frame { + /* outer box of an entry on the Downloads tab */ + border: 2px solid #FFFFFF; +} + +DownloadListWidget QLabel#installLabel { + color: none; +} + +/* compact downloads view */ + +DownloadListWidgetCompact, +DownloadListWidgetCompact QLabel { + /* an entry on the Downloads tab */ + background: #FFFFFF; + padding: 4px; }
\ No newline at end of file diff --git a/src/stylesheets/dark.qss b/src/stylesheets/dark.qss index bcf445a2..d5a7aedf 100644 --- a/src/stylesheets/dark.qss +++ b/src/stylesheets/dark.qss @@ -363,3 +363,7 @@ QTreeView::branch:open:has-children:has-siblings border-image: none;
image: url(:/stylesheet/branch-open.png);
}
+
+DownloadListWidget QLabel#installLabel {
+ color: none;
+}
\ No newline at end of file diff --git a/src/stylesheets/dracula.qss b/src/stylesheets/dracula.qss index 9d0b4861..99cf918d 100644 --- a/src/stylesheets/dracula.qss +++ b/src/stylesheets/dracula.qss @@ -2,12 +2,16 @@ * Drop background color of most widgets */ -QWidget, QStackedWidget, +QWidget, QStackedWidget, QScrollArea, QAbstractScrollArea { background-color: transparent; color: #bbbbbb; } +QWidget:disabled { + color: #808080; +} + QApplication, QMainWindow, QFrame, QDockWidget, QDialog, QFileDialog, QMessageBox, QRadioButton, @@ -383,3 +387,11 @@ QToolTip, QTipLabel { SaveGameInfoWidget { background-color: qlineargradient(x1: 0, y1: 0.6, x2: 0, y2: 1, stop: 0 rgba(52,74,100,100%), stop: 1.0 rgba(38,53,73,10%)); } + +/* + * Downloads + */ + + DownloadListWidget QLabel#installLabel { + color: none; +}
\ No newline at end of file diff --git a/src/usvfsconnector.cpp b/src/usvfsconnector.cpp index ffbdf3aa..4ffc81c0 100644 --- a/src/usvfsconnector.cpp +++ b/src/usvfsconnector.cpp @@ -166,6 +166,10 @@ void UsvfsConnector::updateMapping(const MappingType &mapping) ClearVirtualMappings(); for (auto map : mapping) { + if (progress.wasCanceled()) { + ClearVirtualMappings(); + throw UsvfsConnectorException("VFS mapping canceled by user"); + } progress.setValue(value++); if (value % 10 == 0) { QCoreApplication::processEvents(); diff --git a/src/usvfsconnector.h b/src/usvfsconnector.h index 0935bac1..40f8857b 100644 --- a/src/usvfsconnector.h +++ b/src/usvfsconnector.h @@ -21,7 +21,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. #ifndef USVFSCONNECTOR_H #define USVFSCONNECTOR_H - +#include <exception> #include <filemapping.h> #include <QString> #include <QThread> @@ -58,6 +58,20 @@ private: }; +class UsvfsConnectorException : public std::exception { + +public: + UsvfsConnectorException(const QString &text) + : std::exception(), m_Message(text.toLocal8Bit()) {} + + virtual const char* what() const throw() + { return m_Message.constData(); } +private: + QByteArray m_Message; + +}; + + class UsvfsConnector : public QObject { Q_OBJECT diff --git a/src/version.rc b/src/version.rc index de1d9c8c..23635a79 100644 --- a/src/version.rc +++ b/src/version.rc @@ -3,8 +3,8 @@ // If VS_FF_PRERELEASE is not set, MO labels the build as a release and uses VER_FILEVERSION to determine version number.
// Otherwise, if letters are used in VER_FILEVERSION_STR, uses the full MOBase::VersionInfo parser
// Otherwise, uses the numbers from VER_FILEVERSION and sets the release type as pre-alpha
-#define VER_FILEVERSION 2,1,4
-#define VER_FILEVERSION_STR "2.1.4\0"
+#define VER_FILEVERSION 2,1,5
+#define VER_FILEVERSION_STR "2.1.5\0"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
|
