diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/configdialog.cpp | 26 | ||||
-rw-r--r-- | src/configdialog.h | 3 | ||||
-rw-r--r-- | src/configdialog.ui | 7 | ||||
-rw-r--r-- | src/mainwindow.cpp | 8 | ||||
-rw-r--r-- | src/qtpasssettings.cpp | 8 | ||||
-rw-r--r-- | src/qtpasssettings.h | 3 | ||||
-rw-r--r-- | src/settingsconstants.cpp | 1 | ||||
-rw-r--r-- | src/settingsconstants.h | 1 |
8 files changed, 56 insertions, 1 deletions
diff --git a/src/configdialog.cpp b/src/configdialog.cpp index 410a2e27..2334ef63 100644 --- a/src/configdialog.cpp +++ b/src/configdialog.cpp @@ -223,6 +223,7 @@ void ConfigDialog::on_toolButtonStore_clicked() { */ void ConfigDialog::on_comboBoxClipboard_activated(int index) { if (index > 0) { + ui->checkBoxSelection->setEnabled(true); ui->checkBoxAutoclear->setEnabled(true); ui->checkBoxHidePassword->setEnabled(true); ui->checkBoxHideContent->setEnabled(true); @@ -234,6 +235,7 @@ void ConfigDialog::on_comboBoxClipboard_activated(int index) { ui->labelSeconds->setEnabled(false); } } else { + ui->checkBoxSelection->setEnabled(false); ui->checkBoxAutoclear->setEnabled(false); ui->spinBoxAutoclearSeconds->setEnabled(false); ui->labelSeconds->setEnabled(false); @@ -265,6 +267,16 @@ void ConfigDialog::useClipboard(Enums::clipBoardType useClipboard) { } /** + * @brief ConfigDialog::useSelection set the clipboard autoclear use from + * MainWindow. + * @param useSelection + */ +void ConfigDialog::useSelection(bool useSelection) { + ui->checkBoxSelection->setChecked(useSelection); + on_checkBoxSelection_clicked(); +} + +/** * @brief ConfigDialog::useAutoclear set the clipboard autoclear use from * MainWindow. * @param useAutoclear @@ -312,6 +324,20 @@ Enums::clipBoardType ConfigDialog::useClipboard() { } /** + * @brief ConfigDialog::useSelection return the use of clipboard autoclear. + * @return + */ +bool ConfigDialog::useSelection() { return ui->checkBoxSelection->isChecked(); } + +/** + * @brief ConfigDialog::on_checkBoxSelection_clicked checkbox clicked, update + * state via ConfigDialog::on_comboBoxClipboard_activated + */ +void ConfigDialog::on_checkBoxSelection_clicked() { + on_comboBoxClipboard_activated(1); +} + +/** * @brief ConfigDialog::useAutoclear return the use of clipboard autoclear. * @return */ diff --git a/src/configdialog.h b/src/configdialog.h index e9f4a121..cff0a721 100644 --- a/src/configdialog.h +++ b/src/configdialog.h @@ -32,6 +32,7 @@ public: void setProfiles(QHash<QString, QString>, QString); void usePass(bool usePass); void useClipboard(Enums::clipBoardType); + void useSelection(bool useSelection); void useAutoclear(bool useAutoclear); void setAutoclear(int seconds); void useAutoclearPanel(bool useAutoclearPanel); @@ -46,6 +47,7 @@ public: QHash<QString, QString> getProfiles(); bool usePass(); Enums::clipBoardType useClipboard(); + bool useSelection(); bool useAutoclear(); int getAutoclear(); bool useAutoclearPanel(); @@ -108,6 +110,7 @@ private slots: void on_toolButtonStore_clicked(); void on_comboBoxClipboard_activated(int); void on_passwordCharTemplateSelector_activated(int); + void on_checkBoxSelection_clicked(); void on_checkBoxAutoclear_clicked(); void on_checkBoxAutoclearPanel_clicked(); void on_addButton_clicked(); diff --git a/src/configdialog.ui b/src/configdialog.ui index a23de17d..bf70b702 100644 --- a/src/configdialog.ui +++ b/src/configdialog.ui @@ -82,6 +82,13 @@ </widget> </item> <item> + <widget class="QCheckBox" name="checkBoxSelection"> + <property name="text"> + <string>Use primary selection</string> + </property> + </widget> + </item> + <item> <widget class="QCheckBox" name="checkBoxAutoclear"> <property name="text"> <string>Autoclear after:</string> diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e82cda9e..edfa0005 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -407,6 +407,7 @@ void MainWindow::config() { d->setStorePath(QtPassSettings::getPassStore()); d->usePass(QtPassSettings::isUsePass()); d->useClipboard(QtPassSettings::getClipBoardType()); + d->useSelection(QtPassSettings::isUseSelection()); d->useAutoclear(QtPassSettings::isUseAutoclear()); d->setAutoclear(QtPassSettings::getAutoclearSeconds()); d->useAutoclearPanel(QtPassSettings::isUseAutoclearPanel()); @@ -447,6 +448,7 @@ void MainWindow::config() { Util::normalizeFolderPath(d->getStorePath())); QtPassSettings::setUsePass(d->usePass()); QtPassSettings::setClipBoardType(d->useClipboard()); + QtPassSettings::setUseSelection(d->useSelection()); QtPassSettings::setUseAutoclear(d->useAutoclear()); QtPassSettings::setAutoclearSeconds(d->getAutoclear()); QtPassSettings::setUseAutoclearPanel(d->useAutoclearPanel()); @@ -1397,7 +1399,11 @@ void MainWindow::clearTemplateWidgets() { */ void MainWindow::copyTextToClipboard(const QString &text) { QClipboard *clip = QApplication::clipboard(); - clip->setText(text); + if (!QtPassSettings::isUseSelection()) { + clip->setText(text, QClipboard::Clipboard); + } else { + clip->setText(text, QClipboard::Selection); + } clippedText = text; ui->statusBar->showMessage(tr("Copied to clipboard"), 2000); if (QtPassSettings::isUseAutoclear()) { diff --git a/src/qtpasssettings.cpp b/src/qtpasssettings.cpp index 77de445e..915e9892 100644 --- a/src/qtpasssettings.cpp +++ b/src/qtpasssettings.cpp @@ -144,6 +144,14 @@ void QtPassSettings::setClipBoardType( static_cast<int>(clipBoardType)); } +bool QtPassSettings::isUseSelection(const bool &defaultValue) { + return getBoolValue(SettingsConstants::useSelection, defaultValue); +} + +void QtPassSettings::setUseSelection(const bool &useSelection) { + setBoolValue(SettingsConstants::useSelection, useSelection); +} + bool QtPassSettings::isUseAutoclear(const bool &defaultValue) { return getBoolValue(SettingsConstants::useAutoclear, defaultValue); } diff --git a/src/qtpasssettings.h b/src/qtpasssettings.h index ef16480c..bfa3c621 100644 --- a/src/qtpasssettings.h +++ b/src/qtpasssettings.h @@ -57,6 +57,9 @@ public: const Enums::clipBoardType &defaultvalue = Enums::CLIPBOARD_NEVER); static void setClipBoardType(const Enums::clipBoardType &clipBoardType); + static bool isUseSelection(const bool &defaultValue = QVariant().toBool()); + static void setUseSelection(const bool &useSelection); + static bool isUseAutoclear(const bool &defaultValue = QVariant().toBool()); static void setUseAutoclear(const bool &useAutoclear); diff --git a/src/settingsconstants.cpp b/src/settingsconstants.cpp index 6a870f2e..233d3d75 100644 --- a/src/settingsconstants.cpp +++ b/src/settingsconstants.cpp @@ -12,6 +12,7 @@ const QString SettingsConstants::splitterLeft = "splitterLeft"; const QString SettingsConstants::splitterRight = "splitterRight"; const QString SettingsConstants::maximized = "maximized"; const QString SettingsConstants::usePass = "usePass"; +const QString SettingsConstants::useSelection = "useSelection"; const QString SettingsConstants::useAutoclear = "useAutoclear"; const QString SettingsConstants::autoclearSeconds = "autoclearSeconds"; const QString SettingsConstants::useAutoclearPanel = "useAutoclearPanel"; diff --git a/src/settingsconstants.h b/src/settingsconstants.h index b8060b48..656cc4fe 100644 --- a/src/settingsconstants.h +++ b/src/settingsconstants.h @@ -21,6 +21,7 @@ public: const static QString maximized; const static QString usePass; const static QString useAutoclear; + const static QString useSelection; const static QString autoclearSeconds; const static QString useAutoclearPanel; const static QString autoclearPanelSeconds; |