From fde5c86ac077622d2f1a13e8b8ef896ba98eb7ff Mon Sep 17 00:00:00 2001 From: nils Date: Wed, 7 Apr 2010 23:45:10 +0000 Subject: added window size save on exit in settings git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@291 34ebc366-c3a9-4b3c-9f84-69acf7962910 --- gpgwin.cpp | 35 +++++++++++++++++++---------------- settingsdialog.cpp | 33 ++++++++++++++++++++++++--------- settingsdialog.h | 5 +++++ 3 files changed, 48 insertions(+), 25 deletions(-) diff --git a/gpgwin.cpp b/gpgwin.cpp index 477f566..2962e7b 100644 --- a/gpgwin.cpp +++ b/gpgwin.cpp @@ -63,29 +63,33 @@ GpgWin::GpgWin() void GpgWin::restoreSettings() { - // Restore window size & location - // TODO: is this a good idea for a portable app? screen size & resolution may vary QSettings settings; //restoreGeometry(settings.value("window/geometry").toByteArray()); - QPoint pos = settings.value("window/pos", QPoint(100, 100)).toPoint(); - QSize size = settings.value("window/size", QSize(800, 450)).toSize(); + + // Restore window size & location + Qt::CheckState windowSave = static_cast(settings.value("window/windowSave", Qt::Unchecked).toUInt()); + if (windowSave == Qt::Checked) { + QPoint pos = settings.value("window/pos", QPoint(100, 100)).toPoint(); + QSize size = settings.value("window/size", QSize(800, 450)).toSize(); + this->resize(size); + this->move(pos); + } else { + this->resize(QSize(800,450)); + this->move(QPoint(100, 100)); + } + + // Iconsize QSize iconSize = settings.value("toolbar/iconsize", QSize(32, 32)).toSize(); - Qt::ToolButtonStyle buttonStyle = static_cast(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt()); - - this->resize(size); - this->move(pos); this->setIconSize(iconSize); + + // Iconstyle + Qt::ToolButtonStyle buttonStyle = static_cast(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt()); this->setToolButtonStyle(buttonStyle); // state sets pos & size of dock-widgets this->restoreState(settings.value("window/windowState").toByteArray()); } -/* void GpgWin::dropEvent(QDropEvent *event) - { - edit->setPlainText(event->mimeData()->text()); - event->acceptProposedAction(); - } -*/ + void GpgWin::createActions() { /** Main Menu @@ -147,8 +151,7 @@ void GpgWin::restoreSettings() selectallAct->setToolTip(tr("Select the whole text")); connect(selectallAct, SIGNAL(triggered()), edit, SLOT(selectAll())); - openSettingsAct = new QAction(tr("Settings"), this); -// openSettingsAct->setIcon(QIcon(iconPath + "fileencrytion.png")); + openSettingsAct = new QAction(tr("Se&ttings"), this); openSettingsAct->setToolTip(tr("Open settings dialog")); connect(openSettingsAct, SIGNAL(triggered()), this, SLOT(openSettingsDialog())); diff --git a/settingsdialog.cpp b/settingsdialog.cpp index 2301a45..6c9c8c6 100755 --- a/settingsdialog.cpp +++ b/settingsdialog.cpp @@ -41,17 +41,11 @@ SettingsDialog::SettingsDialog() resize(500, 200); setModal(true); - buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); - connect(buttonBox, SIGNAL(accepted()), this, SLOT(applySettings())); - connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); - - iconStyleBox = new QGroupBox(tr("Iconstyle")); - iconSizeBox = new QGroupBox(tr("Iconsize")); - - + /***************************************** * Icon-Size-Box *****************************************/ + iconSizeBox = new QGroupBox(tr("Iconsize")); iconSizeGroup = new QButtonGroup(); iconSizeSmall = new QRadioButton(tr("small")); iconSizeMedium =new QRadioButton(tr("medium")); @@ -71,6 +65,7 @@ SettingsDialog::SettingsDialog() /***************************************** * Icon-Style-Box *****************************************/ + iconStyleBox = new QGroupBox(tr("Iconstyle")); iconStyleGroup = new QButtonGroup(); iconTextButton = new QRadioButton(tr("just text")); iconIconsButton =new QRadioButton(tr("just icons")); @@ -87,7 +82,15 @@ SettingsDialog::SettingsDialog() iconStyleBox->setLayout(iconStyleBoxLayout); - + /***************************************** + * Window-Size-Box + *****************************************/ + windowSizeBox = new QGroupBox(tr("Windowstate")); + windowSizeBoxLayout = new QHBoxLayout(); + windowSizeCheckBox =new QCheckBox(tr("save window size and position on exit"),this); + windowSizeBoxLayout->addWidget(windowSizeCheckBox); + windowSizeBox->setLayout(windowSizeBoxLayout); + /***************************************** * Language Select Box *****************************************/ @@ -105,12 +108,20 @@ SettingsDialog::SettingsDialog() hbox2->addWidget(langSelectBox); langBox->setLayout(hbox2); + /***************************************** + * Button-Box + *****************************************/ + buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + connect(buttonBox, SIGNAL(accepted()), this, SLOT(applySettings())); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + /***************************************** * Main V-Box *****************************************/ vbox = new QVBoxLayout(); vbox->addWidget(iconSizeBox); vbox->addWidget(iconStyleBox); + vbox->addWidget(windowSizeBox); vbox->addWidget(langBox); vbox->addWidget(buttonBox); setLayout(vbox); @@ -152,6 +163,8 @@ void SettingsDialog::setSettings() break; } + Qt::CheckState windowSave = static_cast(settings.value("window/windowSave", Qt::Unchecked).toUInt()); + windowSizeCheckBox->setCheckState(windowSave); } /*********************************** @@ -180,6 +193,8 @@ void SettingsDialog::applySettings() case 3:settings.setValue("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon); break; } + + settings.setValue("window/windowSave", windowSizeCheckBox->checkState()); accept(); } diff --git a/settingsdialog.h b/settingsdialog.h index 86bb05e..429637c 100755 --- a/settingsdialog.h +++ b/settingsdialog.h @@ -27,6 +27,8 @@ #include #include #include +#include + class SettingsDialog : public QDialog { @@ -38,6 +40,7 @@ public: private: QGroupBox *iconSizeBox; QGroupBox *iconStyleBox; + QGroupBox *windowSizeBox; QDialogButtonBox *buttonBox; QButtonGroup *iconSizeGroup; @@ -49,9 +52,11 @@ private: QRadioButton *iconTextButton; QRadioButton *iconIconsButton; QRadioButton *iconAllButton; + QCheckBox *windowSizeCheckBox; QHBoxLayout *iconSizeBoxLayout; QHBoxLayout *iconStyleBoxLayout; + QHBoxLayout *windowSizeBoxLayout; QVBoxLayout *vbox; void setSettings(); -- cgit v1.2.3