commit 4d4e7b88152760c76fd7941932e5f9865be7d4d0
parent 49c8a5c272c9db4a59fa7c14adebdde520298889
Author: cfillion <cfillion@users.noreply.github.com>
Date: Mon, 7 Dec 2015 22:12:04 -0500
don't display errors when the user cancels a transaction
Diffstat:
4 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/progress.cpp b/src/progress.cpp
@@ -44,7 +44,12 @@ void Progress::onCommand(WPARAM wParam, LPARAM)
switch(commandId) {
case IDCANCEL:
- m_transaction->cancel();
+ if(m_transaction)
+ m_transaction->cancel();
+
+ // don't wait until the current downloads are finished
+ // before getting out of the user way
+ hide();
break;
}
}
diff --git a/src/reapack.cpp b/src/reapack.cpp
@@ -138,6 +138,9 @@ Transaction *ReaPack::createTransaction()
});
m_transaction->onFinish([=] {
+ if(m_transaction->isCancelled())
+ return;
+
m_progress->setEnabled(false);
if(m_transaction->packages().empty())
@@ -146,8 +149,11 @@ Transaction *ReaPack::createTransaction()
Dialog::Show<Report>(m_instance, m_mainWindow, m_transaction);
m_progress->setEnabled(true);
- m_progress->setTransaction(nullptr);
m_progress->hide();
+ });
+
+ m_transaction->onFinish([=] {
+ m_progress->setTransaction(nullptr);
delete m_transaction;
m_transaction = nullptr;
diff --git a/src/transaction.cpp b/src/transaction.cpp
@@ -9,7 +9,7 @@
using namespace std;
Transaction::Transaction(Registry *reg, const Path &root)
- : m_registry(reg), m_root(root), m_new(0), m_updates(0)
+ : m_registry(reg), m_root(root), m_isCancelled(false)
{
m_dbPath = m_root + "ReaPack";
RecursiveCreateDirectory(m_dbPath.join().c_str(), 0);
@@ -102,6 +102,7 @@ void Transaction::run()
void Transaction::cancel()
{
+ m_isCancelled = true;
m_queue.abort();
}
diff --git a/src/transaction.hpp b/src/transaction.hpp
@@ -33,12 +33,11 @@ public:
void fetch(const RemoteMap &);
void fetch(const Remote &);
-
void run();
void cancel();
+ bool isCancelled() const { return m_isCancelled; }
DownloadQueue *downloadQueue() { return &m_queue; }
-
const PackageEntryList &packages() const { return m_packages; }
const PackageEntryList &newPackages() const { return m_new; }
const PackageEntryList &updates() const { return m_updates; }
@@ -56,6 +55,7 @@ private:
Path m_root;
Path m_dbPath;
+ bool m_isCancelled;
DatabaseList m_databases;
DownloadQueue m_queue;