diff --git a/src/mirall/application.cpp b/src/mirall/application.cpp index 1099b5edbd..8052e442f0 100644 --- a/src/mirall/application.cpp +++ b/src/mirall/application.cpp @@ -23,7 +23,6 @@ #include "mirall/folder.h" #include "mirall/folderman.h" #include "mirall/folderwatcher.h" -#include "mirall/folderwizard.h" #include "mirall/networklocation.h" #include "mirall/folder.h" #include "mirall/owncloudsetupwizard.h" @@ -228,11 +227,14 @@ void Application::slotCleanup() { // explicitly close windows. This is somewhat of a hack to ensure // that saving the geometries happens ASAP during a OS shutdown - if (!_logBrowser.isNull()) _logBrowser->close(); + + // those do delete on close if (!_settingsDialog.isNull()) _settingsDialog->close(); if (!_progressDialog.isNull()) _progressDialog->close(); - if (!_folderWizard.isNull()) _folderWizard->close(); + + // those need an extra invitation if (!_tray.isNull()) _tray->deleteLater(); + if (!_logBrowser.isNull()) _logBrowser->deleteLater(); } void Application::runValidator() diff --git a/src/mirall/application.h b/src/mirall/application.h index cd4b90ec92..f05a433855 100644 --- a/src/mirall/application.h +++ b/src/mirall/application.h @@ -40,7 +40,6 @@ namespace Mirall { class Theme; class Folder; class FolderWatcher; -class FolderWizard; class ownCloudInfo; class SslErrorDialog; class SettingsDialog; @@ -134,7 +133,6 @@ private: Theme *_theme; QSignalMapper *_folderOpenActionMapper; - QPointer _folderWizard; QPointer_logBrowser; QPointer _settingsDialog; QPointer _progressDialog; diff --git a/src/mirall/logbrowser.cpp b/src/mirall/logbrowser.cpp index 8f11839122..bae7ef07c5 100644 --- a/src/mirall/logbrowser.cpp +++ b/src/mirall/logbrowser.cpp @@ -127,11 +127,16 @@ LogBrowser::LogBrowser(QWidget *parent) : } LogBrowser::~LogBrowser() +{ +} + +void LogBrowser::closeEvent(QCloseEvent *) { MirallConfigFile cfg; cfg.saveGeometry(this); } + void LogBrowser::slotNewLog( const QString& msg ) { if( _logWidget->isVisible() ) { diff --git a/src/mirall/logbrowser.h b/src/mirall/logbrowser.h index 786feffd6a..e052fd7d53 100644 --- a/src/mirall/logbrowser.h +++ b/src/mirall/logbrowser.h @@ -47,6 +47,9 @@ public: void setLogFile(const QString& , bool ); +protected: + void closeEvent(QCloseEvent *); + protected slots: void slotNewLog( const QString &msg ); void slotFind(); diff --git a/src/mirall/settingsdialog.cpp b/src/mirall/settingsdialog.cpp index 88bbd19ca3..2887a967e6 100644 --- a/src/mirall/settingsdialog.cpp +++ b/src/mirall/settingsdialog.cpp @@ -118,9 +118,6 @@ SettingsDialog::SettingsDialog(Application *app, QWidget *parent) : SettingsDialog::~SettingsDialog() { - MirallConfigFile cfg; - cfg.saveGeometry(this); - delete _ui; } @@ -145,4 +142,18 @@ void SettingsDialog::setGeneralErrors(const QStringList &errors) _accountSettings->setGeneralErrors(errors); } + +// close event is not being called here +void SettingsDialog::reject() { + MirallConfigFile cfg; + cfg.saveGeometry(this); + QDialog::reject(); +} + +void SettingsDialog::accept() { + MirallConfigFile cfg; + cfg.saveGeometry(this); + QDialog::accept(); +} + } // namespace Mirall diff --git a/src/mirall/settingsdialog.h b/src/mirall/settingsdialog.h index 04fd761c65..a86835e431 100644 --- a/src/mirall/settingsdialog.h +++ b/src/mirall/settingsdialog.h @@ -42,6 +42,10 @@ public: void addAccount(const QString &title, QWidget *widget); void setGeneralErrors( const QStringList& errors ); +protected: + void reject(); + void accept(); + protected slots: void slotUpdateAccountState();