diff --git a/src/gui/DatabaseOpenWidget.cpp b/src/gui/DatabaseOpenWidget.cpp index a4b22074..6e24de5e 100644 --- a/src/gui/DatabaseOpenWidget.cpp +++ b/src/gui/DatabaseOpenWidget.cpp @@ -113,12 +113,6 @@ void DatabaseOpenWidget::openDatabase() if (m_db) { Q_EMIT editFinished(true); - // this is a c++11 equivalent foreach construct - // if c++11 is not available another iteration loop style is needed! - for (auto widget : qApp->topLevelWidgets()) { - if(widget->inherits("QMainWindow")) - static_cast(widget)->configuredMinimizeWindow(); - } } else { MessageBox::warning(this, tr("Error"), tr("Unable to open the database.").append("\n") diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 54725a52..110bd413 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -329,14 +329,12 @@ void MainWindow::openDatabase(const QString& fileName, const QString& pw, const m_ui->tabWidget->openDatabase(fileName, pw, keyFile); } -void MainWindow::configuredMinimizeWindow() +void MainWindow::minimizeWindow() { - bool minimize = isTrayIconEnabled() && - config()->get("GUI/MinimizeToTray").toBool() && - config()->get("GUI/MinimizeOnClose").toBool() && - config()->get("GUI/MinimizeOnStartup").toBool(); - if (minimize) { + if (isTrayIconEnabled() && config()->get("GUI/MinimizeToTray").toBool()) { hide(); + } else { + setWindowState(Qt::WindowMinimized); } } @@ -523,7 +521,6 @@ void MainWindow::databaseTabChanged(int tabIndex) void MainWindow::closeEvent(QCloseEvent* event) { bool minimizeOnClose = isTrayIconEnabled() && - config()->get("GUI/MinimizeToTray").toBool() && config()->get("GUI/MinimizeOnClose").toBool(); if (minimizeOnClose && !appExitCalled) { diff --git a/src/gui/MainWindow.h b/src/gui/MainWindow.h index 82eb1a3a..2f6d2665 100644 --- a/src/gui/MainWindow.h +++ b/src/gui/MainWindow.h @@ -38,7 +38,7 @@ class MainWindow : public QMainWindow public: MainWindow(); ~MainWindow(); - void configuredMinimizeWindow(); + void minimizeWindow(); public Q_SLOTS: void openDatabase(const QString& fileName, const QString& pw = QString(), diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index 254a7ebd..b495f01e 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -74,11 +74,7 @@ SettingsWidget::SettingsWidget(QWidget* parent) connect(m_generalUi->autoSaveAfterEveryChangeCheckBox, SIGNAL(toggled(bool)), this, SLOT(enableAutoSaveOnExit(bool))); connect(m_generalUi->systrayShowCheckBox, SIGNAL(toggled(bool)), - this, SLOT(enableSystrayMinimizeToTray(bool))); - connect(m_generalUi->systrayMinimizeToTrayCheckBox, SIGNAL(toggled(bool)), - this, SLOT(enableSystrayMinimizeToTray2(bool))); - connect(m_generalUi->systrayMinimizeOnCloseCheckBox, SIGNAL(toggled(bool)), - m_generalUi->systrayMinimizeOnStartup, SLOT(setEnabled(bool))); + this, SLOT(enableSystray(bool))); connect(m_secUi->clearClipboardCheckBox, SIGNAL(toggled(bool)), m_secUi->clearClipboardSpinBox, SLOT(setEnabled(bool))); @@ -209,18 +205,8 @@ void SettingsWidget::enableAutoSaveOnExit(bool checked) m_generalUi->autoSaveOnExitCheckBox->setEnabled(!checked); } -void SettingsWidget::enableSystrayMinimizeToTray(bool checked) +void SettingsWidget::enableSystray(bool checked) { m_generalUi->systrayMinimizeToTrayCheckBox->setEnabled(checked); - bool checked2 = m_generalUi->systrayMinimizeToTrayCheckBox->checkState(); - m_generalUi->systrayMinimizeOnCloseCheckBox->setEnabled(checked && checked2); - bool checked3 = m_generalUi->systrayMinimizeOnCloseCheckBox->checkState(); - m_generalUi->systrayMinimizeOnStartup->setEnabled(checked && checked2 && checked3); -} - -void SettingsWidget::enableSystrayMinimizeToTray2(bool checked) -{ m_generalUi->systrayMinimizeOnCloseCheckBox->setEnabled(checked); - bool checked2 = m_generalUi->systrayMinimizeOnCloseCheckBox->checkState(); - m_generalUi->systrayMinimizeOnStartup->setEnabled(checked && checked2); } diff --git a/src/gui/SettingsWidget.h b/src/gui/SettingsWidget.h index 23b444d0..23620629 100644 --- a/src/gui/SettingsWidget.h +++ b/src/gui/SettingsWidget.h @@ -51,8 +51,7 @@ private Q_SLOTS: void saveSettings(); void reject(); void enableAutoSaveOnExit(bool checked); - void enableSystrayMinimizeToTray(bool checked); - void enableSystrayMinimizeToTray2(bool checked); + void enableSystray(bool checked); private: QWidget* const m_secWidget; diff --git a/src/gui/SettingsWidgetGeneral.ui b/src/gui/SettingsWidgetGeneral.ui index 007cb771..4969c59f 100644 --- a/src/gui/SettingsWidgetGeneral.ui +++ b/src/gui/SettingsWidgetGeneral.ui @@ -7,7 +7,7 @@ 0 0 684 - 394 + 452 @@ -37,7 +37,7 @@ - Open previous databases on startup + Load previous databases on startup @@ -113,12 +113,9 @@ Qt::Horizontal - - QSizePolicy::Fixed - - 20 + 40 20 @@ -166,7 +163,7 @@ false - Hide window to system tray instead of App Exit + Hide window to system tray instead of app exit @@ -177,26 +174,10 @@ QLayout::SetMaximumSize - - - - Qt::Horizontal - - - - 60 - 20 - - - - - - false - - Hide window to system tray on App start + Minimize window at application startup diff --git a/src/main.cpp b/src/main.cpp index 2329713e..f9f2b1f9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -86,11 +86,11 @@ int main(int argc, char** argv) #endif MainWindow mainWindow; - mainWindow.show(); app.setMainWindow(&mainWindow); - + mainWindow.show(); + QObject::connect(&app, SIGNAL(openFile(QString)), &mainWindow, SLOT(openDatabase(QString))); - + for (int ii=0; ii < args.length(); ii++) { QString filename = args[ii]; if (!filename.isEmpty() && QFile::exists(filename)) { @@ -111,6 +111,11 @@ int main(int argc, char** argv) } } } - + + // start minimized if configured + if (config()->get("GUI/MinimizeOnStartup").toBool()) { + mainWindow.minimizeWindow(); + } + return app.exec(); }