summaryrefslogtreecommitdiff
path: root/src/downloadmanager.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-10-11 21:15:12 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2020-10-11 21:15:12 +0200
commit149328dcb2ff716f56937bd9ca705ad79c5d1f81 (patch)
tree5e9c23e7091795b517162135e6ffb081f49cf12f /src/downloadmanager.cpp
parent35b4aa1024bb6904846c36cdbbb638b3e6031cda (diff)
Switch from Qt signals to boost::signals for DownloadManager.
Diffstat (limited to 'src/downloadmanager.cpp')
-rw-r--r--src/downloadmanager.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index 3e6010db..5db0cbdf 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -694,6 +694,7 @@ void DownloadManager::removeFile(int index, bool deleteFile)
if(!download->m_Hidden)
metaSettings.setValue("removed", true);
}
+ m_DownloadRemoved(index);
endDisableDirWatcher();
}
@@ -1453,13 +1454,19 @@ void DownloadManager::setState(DownloadManager::DownloadInfo *info, DownloadMana
}
info->m_State = state;
switch (state) {
- case STATE_PAUSED:
+ case STATE_PAUSED: {
+ info->m_Reply->abort();
+ info->m_Output.close();
+ m_DownloadPaused(row);
+ } break;
case STATE_ERROR: {
info->m_Reply->abort();
info->m_Output.close();
+ m_DownloadFailed(row);
} break;
case STATE_CANCELED: {
info->m_Reply->abort();
+ m_DownloadFailed(row);
} break;
case STATE_FETCHINGMODINFO: {
m_RequestIDs.insert(m_NexusInterface->requestDescription(info->m_FileInfo->gameName, info->m_FileInfo->modID, this, info->m_DownloadID, QString()));
@@ -1473,7 +1480,7 @@ void DownloadManager::setState(DownloadManager::DownloadInfo *info, DownloadMana
} break;
case STATE_READY: {
createMetaFile(info);
- emit downloadComplete(row);
+ m_DownloadComplete(row);
} break;
default: /* NOP */ break;
}
@@ -1792,6 +1799,26 @@ QString DownloadManager::downloadPath(int id)
return getFilePath(id);
}
+bool DownloadManager::onDownloadComplete(const std::function<void(int)>& callback)
+{
+ return m_DownloadComplete.connect(callback).connected();
+}
+
+bool DownloadManager::onDownloadPaused(const std::function<void(int)>& callback)
+{
+ return m_DownloadPaused.connect(callback).connected();
+}
+
+bool DownloadManager::onDownloadFailed(const std::function<void(int)>& callback)
+{
+ return m_DownloadFailed.connect(callback).connected();
+}
+
+bool DownloadManager::onDownloadRemoved(const std::function<void(int)>& callback)
+{
+ return m_DownloadRemoved.connect(callback).connected();
+}
+
int DownloadManager::indexByName(const QString &fileName) const
{
for (int i = 0; i < m_ActiveDownloads.size(); ++i) {