From 2541fc79f8a3342fbc4ecdb94f6911caebca3c8d Mon Sep 17 00:00:00 2001 From: Kostas Date: Thu, 27 Aug 2015 11:26:04 +0000 Subject: [PATCH] Moved Fossil operation abortion logic to UICallback FossilOrigin-Name: eaec54a0320c199d5e1133b38acfafa3da82228e --- manifest | 20 ++++++++++---------- manifest.uuid | 2 +- src/Fossil.cpp | 12 ++---------- src/Fossil.h | 3 --- src/MainWindow.cpp | 6 +++--- src/MainWindow.h | 6 ++++-- src/Utils.h | 1 + 7 files changed, 21 insertions(+), 29 deletions(-) diff --git a/manifest b/manifest index ed621e0..09c4ea2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fossil\sinternal\sAPI\scleanup -D 2015-08-27T11:05:58.941 +C Moved\sFossil\soperation\sabortion\slogic\sto\sUICallback +D 2015-08-27T11:26:04.935 F .fossil-settings/manifest a09a968bf05a50058f3ad50132730b719bc39e76 F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35 F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b @@ -226,14 +226,14 @@ F src/FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8 F src/FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df -F src/Fossil.cpp b5da32dd0e273e4ad7935eee3838f04c48bbb249 -F src/Fossil.h 4cfb517eaa7ef5b4791e3184bc4bf69a5fabbe01 +F src/Fossil.cpp 298629ba4435906cc3dc261be66be9d4256e7791 +F src/Fossil.h d89f5fa775a8294763bc29b814b8e4fcf06c3bc9 F src/FslSettingsDialog.cpp e00907d493fba469e48a008aecda88426350b5ac F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7 F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 -F src/MainWindow.cpp f4dc8ec160b51853ecd6de639c04cb1a5be80395 -F src/MainWindow.h b01b04325edb926dfb289c2701e6c52e056f9708 +F src/MainWindow.cpp 290557fca82bbe3e005a0343617c9c8a3501ae11 +F src/MainWindow.h b358227a96adb3afdf10566367478d76283acc91 F src/RemoteDialog.cpp d5d39871f319bb760405736ba0caa9e83ec51ea3 F src/RemoteDialog.h 5e0438c2bd7c79b1bb44bfbd58c2181b544a9e5d F src/RevisionDialog.cpp e58c4f8a704f00addebb15d521b76620fdafda79 @@ -245,7 +245,7 @@ F src/Settings.h 0a10b0b83fe804bdc7dac58eed06b5b6ee422055 F src/SettingsDialog.cpp fa0c70eaf0fa7edb15de302d041cdb552fe523d5 F src/SettingsDialog.h 5eb3ae2cbb00ab5544e1889860f5376f69fe47cd F src/Utils.cpp fb9fe1caeef47dca310079f8f10b41c838defaa5 -F src/Utils.h 4563194b65d0a903ba71b3fec8fc870a8a610f76 +F src/Utils.h c52be757cd0045e34ab14c51f35a61af8f8870a4 F src/Workspace.cpp 0548001c0975f84151dc93989cc03e4adaab48f5 F src/Workspace.h 50970993b6f49c0f4dc55ba5954e7e4c2a723539 F src/main.cpp d8c65ea5e54102e4989fef9fd8cfd4f13ef8a8f0 @@ -261,7 +261,7 @@ F ui/MainWindow.ui e2a18caa7482b3ee0dff477592cdc9574b35fe4f F ui/RemoteDialog.ui 424b2d4a3d0162f84fdccf6af02c1cfce07a06f5 F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd F ui/SettingsDialog.ui 2e1b6ce7a49100088c5649292c1319e62e0302e1 -P 203cc502bcde134935f524fe2dd44a89e228bc62 -R 38747b7d7999456737da84f056a30072 +P ef3e63fb4f82a4a6224f6616f0f70e5546a39243 +R 825fa9244fa3344e32042bcfde4c74e4 U Kostas -Z 98ed98eef89244353213a69a7b31ff7b +Z a0abc935aac2b1476573aba9e97f1b3e diff --git a/manifest.uuid b/manifest.uuid index 3a2ae7c..d39c953 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ef3e63fb4f82a4a6224f6616f0f70e5546a39243 \ No newline at end of file +eaec54a0320c199d5e1133b38acfafa3da82228e \ No newline at end of file diff --git a/src/Fossil.cpp b/src/Fossil.cpp index 239a84d..88bb1a6 100644 --- a/src/Fossil.cpp +++ b/src/Fossil.cpp @@ -12,8 +12,7 @@ static const unsigned char UTF8_BOM[] = { 0xEF, 0xBB, 0xBF }; /////////////////////////////////////////////////////////////////////////////// Fossil::Fossil() - : operationAborted(false) - , uiCallback(0) + : uiCallback(0) { } @@ -732,12 +731,6 @@ bool Fossil::runFossil(const QStringList &args, QStringList *output, int runFlag return exit_code == EXIT_SUCCESS; } -//------------------------------------------------------------------------------ -void Fossil::abortOperation() -{ - operationAborted = true; -} - //------------------------------------------------------------------------------ // Run fossil. Returns true if execution was successful regardless if fossil // issued an error @@ -825,7 +818,6 @@ bool Fossil::runFossilRaw(const QStringList &args, QStringList *output, int *exi QString ans_always = 'a' + EOL_MARK; QString ans_convert = 'c' + EOL_MARK; - operationAborted = false; QString buffer; #ifdef Q_OS_WIN @@ -851,7 +843,7 @@ bool Fossil::runFossilRaw(const QStringList &args, QStringList *output, int *exi if(state!=QProcess::Running && bytes_avail<1) break; - if(operationAborted) + if(uiCallback->processAborted()) { log("\n* "+QObject::tr("Terminated")+" *\n"); #ifdef Q_OS_WIN // Verify this is still true on Qt5 diff --git a/src/Fossil.h b/src/Fossil.h index 99069fc..05b0e4b 100644 --- a/src/Fossil.h +++ b/src/Fossil.h @@ -68,8 +68,6 @@ public: bool stashDrop(const QString& name); bool stashDiff(const QString& name); - void abortOperation(); - // Tags bool tagList(QStringMap& tags); bool tagNew(const QString& name, const QString& revision); @@ -117,7 +115,6 @@ private: QString getFossilPath(); - bool operationAborted; UICallback *uiCallback; QString workspacePath; QString fossilPath; // The value from the settings diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 0553eed..da40cd4 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -2471,9 +2471,8 @@ void MainWindow::setBusy(bool busy) void MainWindow::onAbort() { operationAborted = true; - getWorkspace().fossil().abortOperation(); - // FIXME: Rename this to something better, Operation Aborted - log("
* "+tr("Terminated")+" *
", true); + uiCallback.abortProcess(); + log("
* "+tr("Operation Aborted")+" *
", true); } //------------------------------------------------------------------------------ @@ -2495,6 +2494,7 @@ void MainWindow::MainWinUICallback::logText(const QString& text, bool isHTML) void MainWindow::MainWinUICallback::beginProcess(const QString& text) { Q_ASSERT(mainWindow); + aborted = false; mainWindow->ui->statusBar->showMessage(text); mainWindow->lblTags->setHidden(true); mainWindow->progressBar->setHidden(false); diff --git a/src/MainWindow.h b/src/MainWindow.h index 0fe1d8c..87d3c08 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -140,7 +140,7 @@ private: class MainWinUICallback : public UICallback { public: - MainWinUICallback() : mainWindow(0) + MainWinUICallback() : mainWindow(0), aborted(false) {} void init(class MainWindow *mainWindow) @@ -151,12 +151,14 @@ private: virtual void logText(const QString& text, bool isHTML); virtual void beginProcess(const QString& text); virtual void updateProcess(const QString& text); + virtual bool processAborted() const { return aborted; } virtual void endProcess(); virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons); - + void abortProcess() { aborted = true; } private: class MainWindow *mainWindow; + bool aborted; }; friend class MainWinUICallback; diff --git a/src/Utils.h b/src/Utils.h index d37914d..fad13a5 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -23,6 +23,7 @@ public: virtual void logText(const QString &text, bool isHTML)=0; virtual void beginProcess(const QString &text)=0; virtual void updateProcess(const QString &text)=0; + virtual bool processAborted() const=0; virtual void endProcess()=0; virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons)=0; };