Moved Fossil operation abortion logic to UICallback

FossilOrigin-Name: eaec54a0320c199d5e1133b38acfafa3da82228e
This commit is contained in:
Kostas 2015-08-27 11:26:04 +00:00
parent 89b2db4277
commit 2541fc79f8
7 changed files with 21 additions and 29 deletions

View File

@ -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

View File

@ -1 +1 @@
ef3e63fb4f82a4a6224f6616f0f70e5546a39243
eaec54a0320c199d5e1133b38acfafa3da82228e

View File

@ -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

View File

@ -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

View File

@ -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("<br><b>* "+tr("Terminated")+" *</b><br>", true);
uiCallback.abortProcess();
log("<br><b>* "+tr("Operation Aborted")+" *</b><br>", 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);

View File

@ -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;

View File

@ -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;
};