From 6c7700c2e7f6431e656d9b6ebb930db8da23191e Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Mon, 8 Jul 2013 04:01:26 +0200 Subject: [PATCH] Save size of settings dialog Fixes #541 --- src/mirall/application.cpp | 1 - src/mirall/mirallconfigfile.h | 1 + src/mirall/settingsdialog.cpp | 20 +++++++++++++++++++- src/mirall/settingsdialog.h | 7 ++++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/mirall/application.cpp b/src/mirall/application.cpp index fc1c6f5d13..a9b1c314a2 100644 --- a/src/mirall/application.cpp +++ b/src/mirall/application.cpp @@ -564,7 +564,6 @@ void Application::slotSettings() { if (_settingsDialog.isNull()) { _settingsDialog = new SettingsDialog(this); - connect(_settingsDialog, SIGNAL(accepted()), _settingsDialog, SLOT(deleteLater())); _settingsDialog->open(); } else { Utility::raiseDialog(_settingsDialog); diff --git a/src/mirall/mirallconfigfile.h b/src/mirall/mirallconfigfile.h index 9179d2b859..202c982e31 100644 --- a/src/mirall/mirallconfigfile.h +++ b/src/mirall/mirallconfigfile.h @@ -102,6 +102,7 @@ public: QString seenVersion() const; void setSeenVersion(const QString &version); + protected: // these classes can only be access from CredentialStore as a friend class. QString ownCloudPasswd( const QString& connection = QString() ) const; diff --git a/src/mirall/settingsdialog.cpp b/src/mirall/settingsdialog.cpp index 4a5f78bd0d..4f3510c6ed 100644 --- a/src/mirall/settingsdialog.cpp +++ b/src/mirall/settingsdialog.cpp @@ -19,11 +19,13 @@ #include "mirall/accountsettings.h" #include "mirall/application.h" #include "mirall/ignorelisteditor.h" +#include "mirall/mirallconfigfile.h" #include #include #include #include +#include namespace Mirall { @@ -75,8 +77,11 @@ SettingsDialog::SettingsDialog(Application *app, QWidget *parent) : _ui->stack, SLOT(setCurrentIndex(int))); QPushButton *closeButton = _ui->buttonBox->button(QDialogButtonBox::Close); - connect(closeButton, SIGNAL(pressed()), SLOT(accept())); + connect(closeButton, SIGNAL(pressed()), SLOT(done())); + MirallConfigFile cfg; + QSettings settings(cfg.configFile(), QSettings::IniFormat); + restoreGeometry(settings.value("Settings/geometry").toByteArray()); } SettingsDialog::~SettingsDialog() @@ -99,4 +104,17 @@ void SettingsDialog::slotFolderUploadProgress( const QString& folderAlias, const _accountSettings->slotSetProgress(folderAlias, file, p1, p2); } +void SettingsDialog::closeEvent(QCloseEvent *event) +{ + MirallConfigFile cfg; + QSettings settings(cfg.configFile(), QSettings::IniFormat); + settings.setValue("Settings/geometry", saveGeometry()); + QWidget::closeEvent(event); +} + +void SettingsDialog::done() +{ + QDialog::done(0); +} + } // namespace Mirall diff --git a/src/mirall/settingsdialog.h b/src/mirall/settingsdialog.h index ce28fb274c..6f0f4478b8 100644 --- a/src/mirall/settingsdialog.h +++ b/src/mirall/settingsdialog.h @@ -37,13 +37,18 @@ public: ~SettingsDialog(); void addAccount(const QString &title, QWidget *widget); - public slots: // Progress, parameter is // - filename // - progress bytes, overall size. void slotFolderUploadProgress( const QString&, const QString&, long, long ); +protected: + void closeEvent(QCloseEvent *event); + +private slots: + void done(); + private: Ui::SettingsDialog *_ui; QListWidgetItem *_addItem;