From 28c5df0df7ad8520ba03a98490d80877899fb22e Mon Sep 17 00:00:00 2001 From: Anne Jan Brouwer Date: Sun, 3 Jan 2016 14:02:01 +0100 Subject: Always on top, fixes https://github.com/IJHack/qtpass/issues/118 --- configdialog.cpp | 16 ++++++++++++++++ configdialog.h | 2 ++ configdialog.ui | 7 +++++++ mainwindow.cpp | 21 ++++++++++++++++++++- mainwindow.h | 1 + qtpass.iss | 2 +- qtpass.pro | 2 +- 7 files changed, 48 insertions(+), 3 deletions(-) diff --git a/configdialog.cpp b/configdialog.cpp index 4d6b3d4c..0a914a4a 100644 --- a/configdialog.cpp +++ b/configdialog.cpp @@ -834,3 +834,19 @@ bool ConfigDialog::templateAllFields() { void ConfigDialog::templateAllFields(bool templateAll) { ui->checkBoxTemplateAllFields->setChecked(templateAll); } + +/** + * @brief ConfigDialog::alwaysOnTop + * @param alwaysOnTop + */ +void ConfigDialog::alwaysOnTop(bool alwaysOnTop) { + ui->checkBoxAlwaysOnTop->setChecked(alwaysOnTop); +} + +/** + * @brief ConfigDialog::alwaysOnTop + * @return + */ +bool ConfigDialog::alwaysOnTop() { + return ui->checkBoxAlwaysOnTop->isChecked(); +} diff --git a/configdialog.h b/configdialog.h index f24b6949..72929e07 100644 --- a/configdialog.h +++ b/configdialog.h @@ -77,6 +77,8 @@ class ConfigDialog : public QDialog { void autoPull(bool autoPull); bool autoPush(); void autoPush(bool autoPush); + bool alwaysOnTop(); + void alwaysOnTop(bool alwaysOnTop); protected: void closeEvent(QCloseEvent *event); diff --git a/configdialog.ui b/configdialog.ui index 8ed49843..678d386b 100644 --- a/configdialog.ui +++ b/configdialog.ui @@ -400,6 +400,13 @@ + + + + Always on top + + + diff --git a/mainwindow.cpp b/mainwindow.cpp index 8ba97701..8a4950f2 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -237,6 +237,13 @@ bool MainWindow::checkConfig() { useTrayIcon = settings.value("useTrayIcon").toBool(); hideOnClose = settings.value("hideOnClose").toBool(); startMinimized = settings.value("startMinimized").toBool(); + alwaysOnTop = settings.value("alwaysOnTop").toBool(); + + if (alwaysOnTop) { + Qt::WindowFlags flags = windowFlags(); + this->setWindowFlags(flags | Qt::WindowStaysOnTopHint); + this->show(); + } autoPull = settings.value("autoPull").toBool(); autoPush = settings.value("autoPush").toBool(); @@ -400,6 +407,7 @@ void MainWindow::config() { d->templateAllFields(templateAllFields); d->autoPull(autoPull); d->autoPush(autoPush); + d->alwaysOnTop(alwaysOnTop); if (startupPhase) d->wizard(); // does shit if (d->exec()) { @@ -432,6 +440,7 @@ void MainWindow::config() { templateAllFields = d->templateAllFields(); autoPush = d->autoPush(); autoPull = d->autoPull(); + alwaysOnTop = d->alwaysOnTop(); QSettings &settings(getSettings()); @@ -473,7 +482,17 @@ void MainWindow::config() { settings.setValue("passTemplate", passTemplate); settings.setValue("templateAllFields", templateAllFields); settings.setValue("autoPull", autoPull ? "true" : "false"); - settings.setValue("autoPush", autoPush ? "true" : "false"); + settings.setValue("autoPush", autoPush ? "true" : "false"); + settings.setValue("alwaysOnTop", alwaysOnTop ? "true" : "false"); + + if (alwaysOnTop) { + Qt::WindowFlags flags = windowFlags(); + this->setWindowFlags(flags | Qt::WindowStaysOnTopHint); + this->show(); + } else { + this->setWindowFlags(Qt::Window); + this->show(); + } if (!profiles.isEmpty()) { settings.beginGroup("profiles"); diff --git a/mainwindow.h b/mainwindow.h index 8afb9ff9..56acd4bc 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -142,6 +142,7 @@ class MainWindow : public QMainWindow { bool templateAllFields; bool autoPull; bool autoPush; + bool alwaysOnTop; void updateText(); void executePass(QString, QString = QString()); void executeWrapper(QString, QString, QString = QString()); diff --git a/qtpass.iss b/qtpass.iss index 61fc4725..c7c50055 100644 --- a/qtpass.iss +++ b/qtpass.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "QtPass" -#define MyAppVersion "1.0.5.1" +#define MyAppVersion "1.0.6" #define MyAppPublisher "IJhack" #define MyAppURL "https://qtpass.org/" #define MyAppExeName "qtpass.exe" diff --git a/qtpass.pro b/qtpass.pro index 152815ed..56431318 100644 --- a/qtpass.pro +++ b/qtpass.pro @@ -7,7 +7,7 @@ # # #---------------------------------------------------------- -VERSION = 1.0.5.1 +VERSION = 1.0.6 TEMPLATE = app QT += core gui -- cgit v1.2.3