mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-02-23 07:59:54 -05:00
Drop to background on copy feature
This commit is contained in:
parent
d49e74c1f4
commit
8e248bbde6
@ -5,6 +5,7 @@
|
|||||||
- Rework the Entry Preview panel [#3306]
|
- Rework the Entry Preview panel [#3306]
|
||||||
- Move notes to General tab on Group Preview Panel [#3336]
|
- Move notes to General tab on Group Preview Panel [#3336]
|
||||||
- Add 'Monospaced font' option to the Notes field [#3321]
|
- Add 'Monospaced font' option to the Notes field [#3321]
|
||||||
|
- Drop to background when copy feature [#3253]
|
||||||
|
|
||||||
2.4.3 (2019-06-12)
|
2.4.3 (2019-06-12)
|
||||||
=========================
|
=========================
|
||||||
|
@ -5,7 +5,9 @@ OpenPreviousDatabasesOnStartup=true
|
|||||||
AutoSaveAfterEveryChange=false
|
AutoSaveAfterEveryChange=false
|
||||||
AutoSaveOnExit=false
|
AutoSaveOnExit=false
|
||||||
AutoReloadOnChange=true
|
AutoReloadOnChange=true
|
||||||
MinimizeOnCopy=false
|
HideWindowOnCopy=false
|
||||||
|
MinimizeOnCopy=true
|
||||||
|
DropToBackgroundOnCopy=false
|
||||||
MinimizeOnOpenUrl=false
|
MinimizeOnOpenUrl=false
|
||||||
UseGroupIconOnEntryCreation=true
|
UseGroupIconOnEntryCreation=true
|
||||||
IgnoreGroupExpansion=false
|
IgnoreGroupExpansion=false
|
||||||
|
@ -106,6 +106,12 @@ void Config::upgrade()
|
|||||||
if (m_settings->value("AutoSaveAfterEveryChange").toBool()) {
|
if (m_settings->value("AutoSaveAfterEveryChange").toBool()) {
|
||||||
m_settings->setValue("AutoSaveOnExit", true);
|
m_settings->setValue("AutoSaveOnExit", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setting defaults for 'hide window on copy' behavior, keeping the user's original setting
|
||||||
|
if (m_settings->value("HideWindowOnCopy").isNull()) {
|
||||||
|
m_settings->setValue("HideWindowOnCopy", m_settings->value("MinimizeOnCopy").toBool());
|
||||||
|
m_settings->setValue("MinimizeOnCopy", true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Config::Config(const QString& fileName, QObject* parent)
|
Config::Config(const QString& fileName, QObject* parent)
|
||||||
@ -177,8 +183,11 @@ void Config::init(const QString& fileName)
|
|||||||
m_defaults.insert("BackupBeforeSave", false);
|
m_defaults.insert("BackupBeforeSave", false);
|
||||||
m_defaults.insert("UseAtomicSaves", true);
|
m_defaults.insert("UseAtomicSaves", true);
|
||||||
m_defaults.insert("SearchLimitGroup", false);
|
m_defaults.insert("SearchLimitGroup", false);
|
||||||
m_defaults.insert("MinimizeOnCopy", false);
|
|
||||||
m_defaults.insert("MinimizeOnOpenUrl", false);
|
m_defaults.insert("MinimizeOnOpenUrl", false);
|
||||||
|
m_defaults.insert("HideWindowOnCopy", false);
|
||||||
|
m_defaults.insert("MinimizeOnCopy", true);
|
||||||
|
m_defaults.insert("DropToBackgroundOnCopy", false);
|
||||||
|
m_defaults.insert("UseGroupIconOnEntryCreation", false);
|
||||||
m_defaults.insert("AutoTypeEntryTitleMatch", true);
|
m_defaults.insert("AutoTypeEntryTitleMatch", true);
|
||||||
m_defaults.insert("AutoTypeEntryURLMatch", true);
|
m_defaults.insert("AutoTypeEntryURLMatch", true);
|
||||||
m_defaults.insert("AutoTypeDelay", 25);
|
m_defaults.insert("AutoTypeDelay", 25);
|
||||||
|
@ -80,6 +80,7 @@ ApplicationSettingsWidget::ApplicationSettingsWidget(QWidget* parent)
|
|||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
connect(m_generalUi->autoSaveAfterEveryChangeCheckBox, SIGNAL(toggled(bool)), SLOT(autoSaveToggled(bool)));
|
connect(m_generalUi->autoSaveAfterEveryChangeCheckBox, SIGNAL(toggled(bool)), SLOT(autoSaveToggled(bool)));
|
||||||
|
connect(m_generalUi->hideWindowOnCopyCheckBox, SIGNAL(toggled(bool)), SLOT(hideWindowOnCopyCheckBoxToggled(bool)));
|
||||||
connect(m_generalUi->systrayShowCheckBox, SIGNAL(toggled(bool)), SLOT(systrayToggled(bool)));
|
connect(m_generalUi->systrayShowCheckBox, SIGNAL(toggled(bool)), SLOT(systrayToggled(bool)));
|
||||||
connect(m_generalUi->toolbarHideCheckBox, SIGNAL(toggled(bool)), SLOT(toolbarSettingsToggled(bool)));
|
connect(m_generalUi->toolbarHideCheckBox, SIGNAL(toggled(bool)), SLOT(toolbarSettingsToggled(bool)));
|
||||||
connect(m_generalUi->rememberLastDatabasesCheckBox, SIGNAL(toggled(bool)), SLOT(rememberDatabasesToggled(bool)));
|
connect(m_generalUi->rememberLastDatabasesCheckBox, SIGNAL(toggled(bool)), SLOT(rememberDatabasesToggled(bool)));
|
||||||
@ -147,13 +148,19 @@ void ApplicationSettingsWidget::loadSettings()
|
|||||||
m_generalUi->backupBeforeSaveCheckBox->setChecked(config()->get("BackupBeforeSave").toBool());
|
m_generalUi->backupBeforeSaveCheckBox->setChecked(config()->get("BackupBeforeSave").toBool());
|
||||||
m_generalUi->useAtomicSavesCheckBox->setChecked(config()->get("UseAtomicSaves").toBool());
|
m_generalUi->useAtomicSavesCheckBox->setChecked(config()->get("UseAtomicSaves").toBool());
|
||||||
m_generalUi->autoReloadOnChangeCheckBox->setChecked(config()->get("AutoReloadOnChange").toBool());
|
m_generalUi->autoReloadOnChangeCheckBox->setChecked(config()->get("AutoReloadOnChange").toBool());
|
||||||
m_generalUi->minimizeOnCopyCheckBox->setChecked(config()->get("MinimizeOnCopy").toBool());
|
|
||||||
m_generalUi->minimizeOnOpenUrlCheckBox->setChecked(config()->get("MinimizeOnOpenUrl").toBool());
|
m_generalUi->minimizeOnOpenUrlCheckBox->setChecked(config()->get("MinimizeOnOpenUrl").toBool());
|
||||||
|
m_generalUi->hideWindowOnCopyCheckBox->setChecked(config()->get("HideWindowOnCopy").toBool());
|
||||||
|
m_generalUi->minimizeOnCopyRadioButton->setChecked(config()->get("MinimizeOnCopy").toBool());
|
||||||
|
m_generalUi->dropToBackgroundOnCopyRadioButton->setChecked(config()->get("DropToBackgroundOnCopy").toBool());
|
||||||
m_generalUi->useGroupIconOnEntryCreationCheckBox->setChecked(config()->get("UseGroupIconOnEntryCreation").toBool());
|
m_generalUi->useGroupIconOnEntryCreationCheckBox->setChecked(config()->get("UseGroupIconOnEntryCreation").toBool());
|
||||||
m_generalUi->autoTypeEntryTitleMatchCheckBox->setChecked(config()->get("AutoTypeEntryTitleMatch").toBool());
|
m_generalUi->autoTypeEntryTitleMatchCheckBox->setChecked(config()->get("AutoTypeEntryTitleMatch").toBool());
|
||||||
m_generalUi->autoTypeEntryURLMatchCheckBox->setChecked(config()->get("AutoTypeEntryURLMatch").toBool());
|
m_generalUi->autoTypeEntryURLMatchCheckBox->setChecked(config()->get("AutoTypeEntryURLMatch").toBool());
|
||||||
m_generalUi->ignoreGroupExpansionCheckBox->setChecked(config()->get("IgnoreGroupExpansion").toBool());
|
m_generalUi->ignoreGroupExpansionCheckBox->setChecked(config()->get("IgnoreGroupExpansion").toBool());
|
||||||
|
|
||||||
|
if (!m_generalUi->hideWindowOnCopyCheckBox->isChecked()) {
|
||||||
|
hideWindowOnCopyCheckBoxToggled(false);
|
||||||
|
}
|
||||||
|
|
||||||
m_generalUi->languageComboBox->clear();
|
m_generalUi->languageComboBox->clear();
|
||||||
QList<QPair<QString, QString>> languages = Translator::availableLanguages();
|
QList<QPair<QString, QString>> languages = Translator::availableLanguages();
|
||||||
for (const auto& language : languages) {
|
for (const auto& language : languages) {
|
||||||
@ -248,8 +255,10 @@ void ApplicationSettingsWidget::saveSettings()
|
|||||||
config()->set("BackupBeforeSave", m_generalUi->backupBeforeSaveCheckBox->isChecked());
|
config()->set("BackupBeforeSave", m_generalUi->backupBeforeSaveCheckBox->isChecked());
|
||||||
config()->set("UseAtomicSaves", m_generalUi->useAtomicSavesCheckBox->isChecked());
|
config()->set("UseAtomicSaves", m_generalUi->useAtomicSavesCheckBox->isChecked());
|
||||||
config()->set("AutoReloadOnChange", m_generalUi->autoReloadOnChangeCheckBox->isChecked());
|
config()->set("AutoReloadOnChange", m_generalUi->autoReloadOnChangeCheckBox->isChecked());
|
||||||
config()->set("MinimizeOnCopy", m_generalUi->minimizeOnCopyCheckBox->isChecked());
|
|
||||||
config()->set("MinimizeOnOpenUrl", m_generalUi->minimizeOnOpenUrlCheckBox->isChecked());
|
config()->set("MinimizeOnOpenUrl", m_generalUi->minimizeOnOpenUrlCheckBox->isChecked());
|
||||||
|
config()->set("HideWindowOnCopy", m_generalUi->hideWindowOnCopyCheckBox->isChecked());
|
||||||
|
config()->set("MinimizeOnCopy", m_generalUi->minimizeOnCopyRadioButton->isChecked());
|
||||||
|
config()->set("DropToBackgroundOnCopy", m_generalUi->dropToBackgroundOnCopyRadioButton->isChecked());
|
||||||
config()->set("UseGroupIconOnEntryCreation", m_generalUi->useGroupIconOnEntryCreationCheckBox->isChecked());
|
config()->set("UseGroupIconOnEntryCreation", m_generalUi->useGroupIconOnEntryCreationCheckBox->isChecked());
|
||||||
config()->set("IgnoreGroupExpansion", m_generalUi->ignoreGroupExpansionCheckBox->isChecked());
|
config()->set("IgnoreGroupExpansion", m_generalUi->ignoreGroupExpansionCheckBox->isChecked());
|
||||||
config()->set("AutoTypeEntryTitleMatch", m_generalUi->autoTypeEntryTitleMatchCheckBox->isChecked());
|
config()->set("AutoTypeEntryTitleMatch", m_generalUi->autoTypeEntryTitleMatchCheckBox->isChecked());
|
||||||
@ -338,6 +347,12 @@ void ApplicationSettingsWidget::autoSaveToggled(bool checked)
|
|||||||
m_generalUi->autoSaveOnExitCheckBox->setEnabled(!checked);
|
m_generalUi->autoSaveOnExitCheckBox->setEnabled(!checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ApplicationSettingsWidget::hideWindowOnCopyCheckBoxToggled(bool checked)
|
||||||
|
{
|
||||||
|
m_generalUi->minimizeOnCopyRadioButton->setEnabled(checked);
|
||||||
|
m_generalUi->dropToBackgroundOnCopyRadioButton->setEnabled(checked);
|
||||||
|
}
|
||||||
|
|
||||||
void ApplicationSettingsWidget::systrayToggled(bool checked)
|
void ApplicationSettingsWidget::systrayToggled(bool checked)
|
||||||
{
|
{
|
||||||
m_generalUi->systrayDarkIconCheckBox->setEnabled(checked);
|
m_generalUi->systrayDarkIconCheckBox->setEnabled(checked);
|
||||||
|
@ -54,6 +54,7 @@ private slots:
|
|||||||
void saveSettings();
|
void saveSettings();
|
||||||
void reject();
|
void reject();
|
||||||
void autoSaveToggled(bool checked);
|
void autoSaveToggled(bool checked);
|
||||||
|
void hideWindowOnCopyCheckBoxToggled(bool checked);
|
||||||
void systrayToggled(bool checked);
|
void systrayToggled(bool checked);
|
||||||
void toolbarSettingsToggled(bool checked);
|
void toolbarSettingsToggled(bool checked);
|
||||||
void rememberDatabasesToggled(bool checked);
|
void rememberDatabasesToggled(bool checked);
|
||||||
|
@ -249,9 +249,9 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="minimizeOnCopyCheckBox">
|
<widget class="QCheckBox" name="previewHideCheckBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Minimize when copying to clipboard</string>
|
<string>Hide the entry preview panel</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -263,12 +263,72 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="previewHideCheckBox">
|
<widget class="QCheckBox" name="hideWindowOnCopyCheckBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Hide the entry preview panel</string>
|
<string>Hide window when copying to clipboard</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="hideWindowLayout_1">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<spacer name="hideWindowSpacer_1">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="minimizeOnCopyRadioButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Minimize</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="hideWindowLayout_2">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<spacer name="hideWindowSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="dropToBackgroundOnCopyRadioButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Drop to background</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -625,8 +625,12 @@ void DatabaseWidget::showTotpKeyQrCode()
|
|||||||
void DatabaseWidget::setClipboardTextAndMinimize(const QString& text)
|
void DatabaseWidget::setClipboardTextAndMinimize(const QString& text)
|
||||||
{
|
{
|
||||||
clipboard()->setText(text);
|
clipboard()->setText(text);
|
||||||
if (config()->get("MinimizeOnCopy").toBool()) {
|
if (config()->get("HideWindowOnCopy").toBool()) {
|
||||||
window()->showMinimized();
|
if (config()->get("MinimizeOnCopy").toBool()) {
|
||||||
|
window()->showMinimized();
|
||||||
|
} else if (config()->get("DropToBackgroundOnCopy").toBool()) {
|
||||||
|
window()->lower();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,8 +59,13 @@ TotpDialog::~TotpDialog()
|
|||||||
void TotpDialog::copyToClipboard()
|
void TotpDialog::copyToClipboard()
|
||||||
{
|
{
|
||||||
clipboard()->setText(m_entry->totp());
|
clipboard()->setText(m_entry->totp());
|
||||||
if (config()->get("MinimizeOnCopy").toBool()) {
|
if (config()->get("HideWindowOnCopy").toBool()) {
|
||||||
qobject_cast<DatabaseWidget*>(parent())->window()->showMinimized();
|
if (config()->get("MinimizeOnCopy").toBool()) {
|
||||||
|
qobject_cast<DatabaseWidget*>(parent())->window()->showMinimized();
|
||||||
|
} else if (config()->get("DropToBackgroundOnCopy").toBool()) {
|
||||||
|
qobject_cast<DatabaseWidget*>(parent())->window()->lower();
|
||||||
|
window()->lower();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,8 +99,13 @@ TotpExportSettingsDialog::TotpExportSettingsDialog(DatabaseWidget* parent, Entry
|
|||||||
void TotpExportSettingsDialog::copyToClipboard()
|
void TotpExportSettingsDialog::copyToClipboard()
|
||||||
{
|
{
|
||||||
clipboard()->setText(m_totpUri);
|
clipboard()->setText(m_totpUri);
|
||||||
if (config()->get("MinimizeOnCopy").toBool()) {
|
if (config()->get("HideWindowOnCopy").toBool()) {
|
||||||
static_cast<DatabaseWidget*>(parent())->window()->showMinimized();
|
if (config()->get("MinimizeOnCopy").toBool()) {
|
||||||
|
static_cast<DatabaseWidget*>(parent())->window()->showMinimized();
|
||||||
|
} else if (config()->get("DropToBackgroundOnCopy").toBool()) {
|
||||||
|
static_cast<DatabaseWidget*>(parent())->window()->lower();
|
||||||
|
window()->lower();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user