Skip to content

Commit 06699c6

Browse files
committed
Add option to disable opening a browser window when double-clicking the "URL" column (#11332)
1 parent 0731a64 commit 06699c6

File tree

6 files changed

+26
-5
lines changed

6 files changed

+26
-5
lines changed

share/translations/keepassxc_en.ts

+4
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,10 @@
533533
<source>Export settings…</source>
534534
<translation type="unfinished"></translation>
535535
</message>
536+
<message>
537+
<source>Open browser on double clicking URL field in entry view</source>
538+
<translation type="unfinished"></translation>
539+
</message>
536540
<message>
537541
<source> recent files</source>
538542
<translation type="unfinished"></translation>

src/core/Config.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ static const QHash<Config::ConfigKey, ConfigDirective> configStrings = {
6666
{Config::UseDirectWriteSaves,{QS("UseDirectWriteSaves"), Local, false}},
6767
{Config::SearchLimitGroup,{QS("SearchLimitGroup"), Roaming, false}},
6868
{Config::MinimizeOnOpenUrl,{QS("MinimizeOnOpenUrl"), Roaming, false}},
69+
{Config::OpenURLOnDoubleClick, {QS("OpenURLOnDoubleClick"), Roaming, true}},
6970
{Config::HideWindowOnCopy,{QS("HideWindowOnCopy"), Roaming, false}},
7071
{Config::MinimizeOnCopy,{QS("MinimizeOnCopy"), Roaming, true}},
7172
{Config::MinimizeAfterUnlock,{QS("MinimizeAfterUnlock"), Roaming, false}},

src/core/Config.h

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class Config : public QObject
4848
UseDirectWriteSaves,
4949
SearchLimitGroup,
5050
MinimizeOnOpenUrl,
51+
OpenURLOnDoubleClick,
5152
HideWindowOnCopy,
5253
MinimizeOnCopy,
5354
MinimizeAfterUnlock,

src/gui/ApplicationSettingsWidget.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ void ApplicationSettingsWidget::loadSettings()
209209
m_generalUi->autoReloadOnChangeCheckBox->setChecked(config()->get(Config::AutoReloadOnChange).toBool());
210210
m_generalUi->minimizeAfterUnlockCheckBox->setChecked(config()->get(Config::MinimizeAfterUnlock).toBool());
211211
m_generalUi->minimizeOnOpenUrlCheckBox->setChecked(config()->get(Config::MinimizeOnOpenUrl).toBool());
212+
m_generalUi->openUrlOnDoubleClick->setChecked(config()->get(Config::OpenURLOnDoubleClick).toBool());
212213
m_generalUi->hideWindowOnCopyCheckBox->setChecked(config()->get(Config::HideWindowOnCopy).toBool());
213214
hideWindowOnCopyCheckBoxToggled(m_generalUi->hideWindowOnCopyCheckBox->isChecked());
214215
m_generalUi->minimizeOnCopyRadioButton->setChecked(config()->get(Config::MinimizeOnCopy).toBool());
@@ -373,6 +374,7 @@ void ApplicationSettingsWidget::saveSettings()
373374
config()->set(Config::AutoReloadOnChange, m_generalUi->autoReloadOnChangeCheckBox->isChecked());
374375
config()->set(Config::MinimizeAfterUnlock, m_generalUi->minimizeAfterUnlockCheckBox->isChecked());
375376
config()->set(Config::MinimizeOnOpenUrl, m_generalUi->minimizeOnOpenUrlCheckBox->isChecked());
377+
config()->set(Config::OpenURLOnDoubleClick, m_generalUi->openUrlOnDoubleClick->isChecked());
376378
config()->set(Config::HideWindowOnCopy, m_generalUi->hideWindowOnCopyCheckBox->isChecked());
377379
config()->set(Config::MinimizeOnCopy, m_generalUi->minimizeOnCopyRadioButton->isChecked());
378380
config()->set(Config::DropToBackgroundOnCopy, m_generalUi->dropToBackgroundOnCopyRadioButton->isChecked());

src/gui/ApplicationSettingsWidgetGeneral.ui

+11
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,16 @@
543543
</property>
544544
</widget>
545545
</item>
546+
<item>
547+
<widget class="QCheckBox" name="openUrlOnDoubleClick">
548+
<property name="text">
549+
<string>Open browser on double clicking URL field in entry view</string>
550+
</property>
551+
<property name="checked">
552+
<bool>true</bool>
553+
</property>
554+
</widget>
555+
</item>
546556
<item>
547557
<widget class="QCheckBox" name="useGroupIconOnEntryCreationCheckBox">
548558
<property name="text">
@@ -1351,6 +1361,7 @@
13511361
<tabstop>alternativeSaveComboBox</tabstop>
13521362
<tabstop>ConfirmMoveEntryToRecycleBinCheckBox</tabstop>
13531363
<tabstop>EnableCopyOnDoubleClickCheckBox</tabstop>
1364+
<tabstop>openUrlOnDoubleClick</tabstop>
13541365
<tabstop>useGroupIconOnEntryCreationCheckBox</tabstop>
13551366
<tabstop>minimizeOnOpenUrlCheckBox</tabstop>
13561367
<tabstop>hideWindowOnCopyCheckBox</tabstop>

src/gui/DatabaseWidget.cpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -1336,11 +1336,6 @@ void DatabaseWidget::entryActivationSignalReceived(Entry* entry, EntryModel::Mod
13361336
switchToEntryEdit(entry);
13371337
}
13381338
break;
1339-
case EntryModel::Url:
1340-
if (!entry->url().isEmpty()) {
1341-
openUrlForEntry(entry);
1342-
}
1343-
break;
13441339
case EntryModel::Totp:
13451340
if (entry->hasTotp()) {
13461341
setClipboardTextAndMinimize(entry->totp());
@@ -1361,6 +1356,13 @@ void DatabaseWidget::entryActivationSignalReceived(Entry* entry, EntryModel::Mod
13611356
// TODO: switch to 'Attachments' tab in details view/pane
13621357
// case EntryModel::Attachments:
13631358
// break;
1359+
case EntryModel::Url:
1360+
if (!entry->url().isEmpty() && config()->get(Config::OpenURLOnDoubleClick).toBool()) {
1361+
openUrlForEntry(entry);
1362+
break;
1363+
}
1364+
// Note, order matters here. We want to fall into the default case.
1365+
[[fallthrough]];
13641366
default:
13651367
switchToEntryEdit(entry);
13661368
}

0 commit comments

Comments
 (0)