# # # patch "guitone/src/monotone/Monotone.cpp" # from [fef103088cbd35ac6835793fa551f9cf15981b20] # to [50f518b7e88f7406f1c8b19978fe380c051362f6] # # patch "guitone/src/monotone/Monotone.h" # from [59e9f42d277f3c1df9410ed4472a801e484e1ae8] # to [ac5efd92775a3d1eedefe0853bbf1ea7b4e98462] # ============================================================ --- guitone/src/monotone/Monotone.cpp fef103088cbd35ac6835793fa551f9cf15981b20 +++ guitone/src/monotone/Monotone.cpp 50f518b7e88f7406f1c8b19978fe380c051362f6 @@ -114,6 +114,18 @@ Monotone::Monotone(QObject * parent) : Q databaseFile = ""; } +Monotone::~Monotone() +{ + shutdownCurrentProcess(); +} + +Monotone* Monotone::singleton(QObject * parent) +{ + // create a new instance if there is no instance + if (instance == 0) { instance = new Monotone(parent); } + return instance; +} + bool Monotone::normalizeWorkspacePath(QString & workspace) const { QDir tempDir(workspace); @@ -158,10 +170,8 @@ QString Monotone::getDatabaseFilePath() return databaseFile; } -void Monotone::setupNewProcess() +void Monotone::shutdownCurrentProcess() { - Q_ASSERT(mtnBinaryPath.size() > 0); - // if a previous process is running, exit it cleanly if (process) { @@ -176,6 +186,13 @@ void Monotone::setupNewProcess() delete process; } +} + +void Monotone::setupNewProcess() +{ + Q_ASSERT(mtnBinaryPath.size() > 0); + + shutdownCurrentProcess(); isCleanExit = false; process = new QProcess(this); @@ -232,20 +249,6 @@ bool Monotone::loadDatabase(QString db) return true; } -Monotone::~Monotone() -{ - isCleanExit = true; - delete process; - process = 0; -} - -Monotone* Monotone::singleton(QObject * parent) -{ - // create a new instance if there is no instance - if (instance == 0) { instance = new Monotone(parent); } - return instance; -} - void Monotone::startupError(QProcess::ProcessError error) { if (isCleanExit) return; ============================================================ --- guitone/src/monotone/Monotone.h 59e9f42d277f3c1df9410ed4472a801e484e1ae8 +++ guitone/src/monotone/Monotone.h ac5efd92775a3d1eedefe0853bbf1ea7b4e98462 @@ -63,6 +63,7 @@ class Monotone : public QObject bool normalizeWorkspacePath(QString &) const; bool setupNewCommand(); void setupNewProcess(); + void shutdownCurrentProcess(); void writeStdin(const QStringList &, const QStringList &); bool readAndParseStdout(int &);