diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index 6fb88c3b9..d289f4306 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -429,6 +429,26 @@ void DownloadManager::refreshList()
}
}
+void DownloadManager::queryDownloadListInfo()
+{
+ TimeThis tt("DownloadManager::queryDownloadListInfos()");
+
+ startDisableDirWatcher();
+
+ log::info("Retrieving infos from every download (if possible)...");
+
+ // Just go through all active downloads to query infos
+ for (size_t i = 0; i < m_ActiveDownloads.size(); i++) {
+ if (isInfoIncomplete(i)) {
+ queryInfoMd5(i);
+ }
+ }
+
+ log::info("Files infos have been retrived successfully!");
+
+ endDisableDirWatcher();
+}
+
bool DownloadManager::addDownload(const QStringList& URLs, QString gameName, int modID,
int fileID, const ModRepositoryFileInfo* fileInfo)
{
diff --git a/src/downloadmanager.h b/src/downloadmanager.h
index 305c10e3e..7a612c6b0 100644
--- a/src/downloadmanager.h
+++ b/src/downloadmanager.h
@@ -402,6 +402,11 @@ class DownloadManager : public QObject
*/
void refreshList();
+ /**
+ * @brief Query infos for every download in the list
+ */
+ void queryDownloadListInfo();
+
public: // IDownloadManager interface:
int startDownloadURLs(const QStringList& urls);
int startDownloadNexusFile(int modID, int fileID);
diff --git a/src/downloadstab.cpp b/src/downloadstab.cpp
index bf3ea9ad0..d7aa74372 100644
--- a/src/downloadstab.cpp
+++ b/src/downloadstab.cpp
@@ -5,7 +5,7 @@
#include "ui_mainwindow.h"
DownloadsTab::DownloadsTab(OrganizerCore& core, Ui::MainWindow* mwui)
- : m_core(core), ui{mwui->btnRefreshDownloads, mwui->downloadView,
+ : m_core(core), ui{mwui->btnRefreshDownloads, mwui->btnQueryDownloadsInfo, mwui->downloadView,
mwui->showHiddenBox, mwui->downloadFilterEdit}
{
DownloadList* sourceModel = new DownloadList(m_core, ui.list);
@@ -26,6 +26,9 @@ DownloadsTab::DownloadsTab(OrganizerCore& core, Ui::MainWindow* mwui)
connect(ui.refresh, &QPushButton::clicked, [&] {
refresh();
});
+ connect(ui.queryInfos, &QPushButton::clicked, [&] {
+ queryInfos();
+ });
connect(ui.list, SIGNAL(installDownload(int)), &m_core, SLOT(installDownload(int)));
connect(ui.list, SIGNAL(queryInfo(int)), m_core.downloadManager(),
SLOT(queryInfo(int)));
@@ -80,6 +83,11 @@ void DownloadsTab::refresh()
m_core.downloadManager()->refreshList();
}
+void DownloadsTab::queryInfos()
+{
+ m_core.downloadManager()->queryDownloadListInfo();
+}
+
void DownloadsTab::resumeDownload(int downloadIndex)
{
m_core.loggedInAction(ui.list, [this, downloadIndex] {
diff --git a/src/downloadstab.h b/src/downloadstab.h
index f0b85d918..1676ec761 100644
--- a/src/downloadstab.h
+++ b/src/downloadstab.h
@@ -23,6 +23,7 @@ class DownloadsTab : public QObject
struct DownloadsTabUi
{
QPushButton* refresh;
+ QPushButton* queryInfos;
DownloadListView* list;
QCheckBox* showHidden;
QLineEdit* filter;
@@ -33,6 +34,12 @@ class DownloadsTab : public QObject
MOBase::FilterWidget m_filter;
void refresh();
+
+ /**
+ * @brief Handle click on the "Query infos" button
+ **/
+ void queryInfos();
+
void resumeDownload(int downloadIndex);
};
diff --git a/src/organizer_en.ts b/src/organizer_en.ts
index 909187f78..8de45a883 100644
--- a/src/organizer_en.ts
+++ b/src/organizer_en.ts
@@ -170,7 +170,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -178,17 +178,17 @@ p, li { white-space: pre-wrap; }
AdvancedConflictListModel
-
+
-
+
-
+
@@ -206,12 +206,12 @@ p, li { white-space: pre-wrap; }
-
+
-
+
@@ -281,12 +281,12 @@ p, li { white-space: pre-wrap; }
-
+
-
+
@@ -294,47 +294,47 @@ p, li { white-space: pre-wrap; }
ConflictsTab
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -588,42 +588,42 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -664,7 +664,7 @@ p, li { white-space: pre-wrap; }
DirectoryRefresher
-
+
@@ -710,17 +710,17 @@ p, li { white-space: pre-wrap; }
DownloadList
-
+
-
+
-
+
@@ -730,99 +730,99 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
@@ -830,161 +830,161 @@ p, li { white-space: pre-wrap; }
DownloadListView
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
@@ -992,42 +992,42 @@ Are you absolutely sure you want to proceed?
DownloadManager
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1632,194 +1632,194 @@ Right now the only case I know of where this needs to be overwritten is for the
FileTree
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
-
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1827,54 +1827,54 @@ Right now the only case I know of where this needs to be overwritten is for the
FileTreeModel
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
@@ -1893,7 +1893,7 @@ Right now the only case I know of where this needs to be overwritten is for the
-
+
@@ -1928,48 +1928,48 @@ Right now the only case I know of where this needs to be overwritten is for the
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1977,22 +1977,22 @@ Right now the only case I know of where this needs to be overwritten is for the
FilterList
-
+
-
+
-
+
-
+
@@ -2116,77 +2116,77 @@ Right now the only case I know of where this needs to be overwritten is for the
GamebryoModDataContent
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2219,23 +2219,23 @@ Right now the only case I know of where this needs to be overwritten is for the
-
+
-
+
-
-
+
+
-
+
@@ -2243,12 +2243,12 @@ Right now the only case I know of where this needs to be overwritten is for the
GeneralConflictsTab
-
+
-
+
@@ -2266,119 +2266,119 @@ Right now the only case I know of where this needs to be overwritten is for the
InstallationManager
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2473,96 +2473,96 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2583,47 +2583,47 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
LogList
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2631,33 +2631,33 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
Loot
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2690,12 +2690,12 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
-
+
-
+
@@ -2703,37 +2703,37 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
MOApplication
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2741,7 +2741,7 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
MOBase::FilterWidget
-
+
@@ -2756,34 +2756,34 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
-
+
-
+
leave "(/i)" verbatim
-
+
-
+
leave "(/x)" verbatim
-
+
-
+
@@ -2791,27 +2791,27 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
MOBase::TextViewer
-
+
-
+
-
+
-
+
-
+
@@ -2819,7 +2819,7 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
MOBase::TutorialControl
-
+
@@ -2827,7 +2827,7 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
MOBase::TutorialManager
-
+
@@ -2840,17 +2840,17 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
-
+
-
+
-
+
@@ -3188,7 +3188,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -3446,7 +3446,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -3530,429 +3530,429 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -3969,32 +3969,32 @@ You will have to visit the mod page on the %1 Nexus site to change your mind.
ModInfo
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4002,7 +4002,7 @@ You will have to visit the mod page on the %1 Nexus site to change your mind.
ModInfoBackup
-
+
@@ -4408,7 +4408,7 @@ p, li { white-space: pre-wrap; }
ModInfoOverwrite
-
+
@@ -4416,12 +4416,12 @@ p, li { white-space: pre-wrap; }
ModInfoRegular
-
+
-
+
@@ -4437,32 +4437,32 @@ p, li { white-space: pre-wrap; }
ModList
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4472,228 +4472,228 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4701,7 +4701,7 @@ p, li { white-space: pre-wrap; }
ModListChangeCategoryMenu
-
+
@@ -4709,236 +4709,236 @@ p, li { white-space: pre-wrap; }
ModListContextMenu
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -4946,97 +4946,97 @@ p, li { white-space: pre-wrap; }
ModListGlobalContextMenu
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5044,7 +5044,7 @@ p, li { white-space: pre-wrap; }
ModListPrimaryCategoryMenu
-
+
@@ -5052,7 +5052,7 @@ p, li { white-space: pre-wrap; }
ModListSortProxy
-
+
@@ -5060,38 +5060,38 @@ p, li { white-space: pre-wrap; }
ModListView
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5099,313 +5099,313 @@ Please enter the name:
ModListViewActions
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5427,42 +5427,42 @@ Please enter a name:
NexusConnectionUI
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5470,32 +5470,32 @@ Please enter a name:
NexusInterface
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5546,27 +5546,27 @@ Please enter a name:
NexusTab
-
+
-
+
-
+
-
+
-
+
NoConflictListModel
-
+
@@ -5586,215 +5586,207 @@ Please enter a name:
OrganizerCore
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -5802,12 +5794,12 @@ Continue?
OverwriteConflictListModel
-
+
-
+
@@ -5815,12 +5807,12 @@ Continue?
OverwriteFileSystemModel
-
+
-
+
@@ -5863,43 +5855,43 @@ Continue?
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -5907,12 +5899,12 @@ Continue?
OverwrittenConflictListModel
-
+
-
+
@@ -5920,48 +5912,48 @@ Continue?
PluginContainer
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -5969,28 +5961,28 @@ Continue?
PluginList
-
+
-
+
-
+
-
+
-
+
@@ -6000,107 +5992,107 @@ Continue?
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6108,7 +6100,7 @@ Continue?
PluginListContextMenu
-
+
@@ -6118,78 +6110,78 @@ Continue?
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6197,7 +6189,7 @@ Continue?
PluginListSortProxy
-
+
@@ -6205,34 +6197,34 @@ Continue?
PluginListView
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -6240,42 +6232,42 @@ Continue?
PluginTypeName
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6321,12 +6313,12 @@ p, li { white-space: pre-wrap; }
-
+
-
+
@@ -6334,22 +6326,22 @@ p, li { white-space: pre-wrap; }
Profile
-
+
-
+
-
+
-
+
@@ -6359,46 +6351,46 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6581,103 +6573,103 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6685,51 +6677,51 @@ p, li { white-space: pre-wrap; }
QObject
-
+
-
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
@@ -6739,317 +6731,317 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7057,43 +7049,43 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7250,208 +7242,208 @@ Destination:
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
@@ -7461,205 +7453,205 @@ Destination:
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -7697,292 +7689,292 @@ Example:
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -7992,22 +7984,22 @@ You can restart Mod Organizer as administrator and try launching the program aga
-
+
-
+
-
+
-
+
@@ -8017,152 +8009,152 @@ You can restart Mod Organizer as administrator and try launching the program aga
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8248,17 +8240,17 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
@@ -8266,17 +8258,17 @@ p, li { white-space: pre-wrap; }
SavesTab
-
+
-
+
-
+
@@ -8284,12 +8276,12 @@ p, li { white-space: pre-wrap; }
-
+
-
+
@@ -8297,7 +8289,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -8323,42 +8315,42 @@ p, li { white-space: pre-wrap; }
SelfUpdater
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9237,12 +9229,12 @@ For the other games this is not a sufficient replacement for AI!
-
+
-
+
@@ -9250,7 +9242,7 @@ For the other games this is not a sufficient replacement for AI!
StatusBar
-
+
@@ -9273,17 +9265,17 @@ For the other games this is not a sufficient replacement for AI!
-
+
-
+
-
+
@@ -9291,7 +9283,7 @@ For the other games this is not a sufficient replacement for AI!
T
-
+
@@ -9420,22 +9412,22 @@ On Windows XP:
-
+
-
+
-
+
-
+
@@ -9463,7 +9455,7 @@ On Windows XP:
-
+
@@ -9471,7 +9463,7 @@ On Windows XP:
UsvfsConnector
-
+
@@ -9485,7 +9477,7 @@ On Windows XP:
-
+
@@ -9500,7 +9492,7 @@ On Windows XP:
-
+
@@ -10062,19 +10054,19 @@ Please open the "Nexus"-tab
uibase
-
+
Time remaining hours
-
+
Time remaining minutes
-
+
Time remaining seconds