# # # patch "NEWS" # from [dc7505aed37b80042bd8fa54448c6d34f5174936] # to [edafe5bdf2a1facd04e238f22159d3454a6ab7fc] # # patch "src/view/dialogs/Dialog.cpp" # from [de467d48aa140cb218789df1069f24b4eb8550da] # to [05333024603cd0e096134f65cee7e3fca8bb5f20] # # patch "src/view/dialogs/Dialog.h" # from [ae5a57894efa5fe15da18bb165997f5fd0535856] # to [e831ab8449adb07bc810c2bb4b9b10f3f3cf6ccf] # # patch "src/view/dialogs/FileHistory.cpp" # from [4fe062ee0d08f3ccd2fc323efa664208e62f4891] # to [6dec9845328d399def5bae6972acd6f4f69a7a0b] # # patch "src/view/dialogs/Netsync.cpp" # from [5387ae38dae7c533e47c3f5f05b47bf02ac2c4e4] # to [8cad65f0505bc50ecb0acdcf24be36ec2081d18a] # # patch "src/view/dialogs/Netsync.h" # from [12f932590782411645ee08eeaeb86e2dd26e08ac] # to [7e44535efac3ff677517b971814725039aea8dfc] # ============================================================ --- NEWS dc7505aed37b80042bd8fa54448c6d34f5174936 +++ NEWS edafe5bdf2a1facd04e238f22159d3454a6ab7fc @@ -1,6 +1,9 @@ xxxx-xx-xx (1.0rc2) xxxx-xx-xx (1.0rc2) - bugfix: disallow the rename of the workspace root item (there is an extra command for that, pivot_root, which we eventually support sometime) + - bugfix: long-running background processes like f.e. netsync operations + or file history fetching are now properly stopped if the specific + dialog is closed 2010-02-15 (1.0rc1) NOTE: You need monotone 0.46 or later for this version ============================================================ --- src/view/dialogs/Dialog.cpp de467d48aa140cb218789df1069f24b4eb8550da +++ src/view/dialogs/Dialog.cpp 05333024603cd0e096134f65cee7e3fca8bb5f20 @@ -57,9 +57,9 @@ void Dialog::setStayOnTop() setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint); } -void Dialog::closeEvent(QCloseEvent * event) +void Dialog::hideEvent(QHideEvent * event) { - emit dialogClosed(); + emit dialogHidden(); event->accept(); } ============================================================ --- src/view/dialogs/Dialog.h ae5a57894efa5fe15da18bb165997f5fd0535856 +++ src/view/dialogs/Dialog.h e831ab8449adb07bc810c2bb4b9b10f3f3cf6ccf @@ -20,7 +20,7 @@ #define DIALOG_H #include -#include +#include class Dialog : public QDialog { @@ -34,12 +34,14 @@ signals: int execDocumentModal(); signals: - void dialogClosed(); + void dialogHidden(); +protected: + virtual void hideEvent(QHideEvent *); + private: void restoreState(void); void saveState(void); - void closeEvent(QCloseEvent *); }; #endif ============================================================ --- src/view/dialogs/FileHistory.cpp 4fe062ee0d08f3ccd2fc323efa664208e62f4891 +++ src/view/dialogs/FileHistory.cpp 6dec9845328d399def5bae6972acd6f4f69a7a0b @@ -30,7 +30,7 @@ FileHistory::FileHistory(QWidget * paren certsModel = new Certs(this, databaseFile); connect( - this, SIGNAL(dialogClosed()), + this, SIGNAL(dialogHidden()), changeModel, SLOT(stopReading()) ); ============================================================ --- src/view/dialogs/Netsync.cpp 5387ae38dae7c533e47c3f5f05b47bf02ac2c4e4 +++ src/view/dialogs/Netsync.cpp 8cad65f0505bc50ecb0acdcf24be36ec2081d18a @@ -32,6 +32,11 @@ Netsync::Netsync(QWidget * parent, const startStopButton, SIGNAL(clicked()), this, SLOT(startStopClicked()) ); + + connect( + this, SIGNAL(dialogHidden()), + this, SLOT(stop()) + ); } Netsync::~Netsync() {} @@ -115,11 +120,17 @@ void Netsync::start(Action act, running = true; } +void Netsync::stop() +{ + if (running) + AutomateCommand::abortThreads(); +} + void Netsync::startStopClicked() { if (running) { - AutomateCommand::abortThreads(); + stop(); return; } @@ -280,10 +291,3 @@ void Netsync::tickerUpdate(const TickerM progressWidget->show(); } -void Netsync::closeEvent(QCloseEvent *event) -{ - if (running) - AutomateCommand::abortThreads(); - event->accept(); -} - ============================================================ --- src/view/dialogs/Netsync.h 12f932590782411645ee08eeaeb86e2dd26e08ac +++ src/view/dialogs/Netsync.h 7e44535efac3ff677517b971814725039aea8dfc @@ -40,14 +40,13 @@ public slots: const QString &, const QString &, const QString &); + void stop(); protected: void processTaskResult(const MonotoneTaskPtr &); void processTaskAbortion(const MonotoneTaskPtr &); void tickerUpdate(const TickerMap &); - void closeEvent(QCloseEvent *); - protected slots: void startStopClicked();