summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/configdialog.cpp26
-rw-r--r--src/configdialog.h3
-rw-r--r--src/configdialog.ui7
-rw-r--r--src/mainwindow.cpp8
-rw-r--r--src/qtpasssettings.cpp8
-rw-r--r--src/qtpasssettings.h3
-rw-r--r--src/settingsconstants.cpp1
-rw-r--r--src/settingsconstants.h1
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;