Skip to content

Commit cf61d7c

Browse files
committed
Add option to toggle closing search tabs with middle-click
1 parent a900866 commit cf61d7c

5 files changed

Lines changed: 57 additions & 26 deletions

File tree

src/base/preferences.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,19 @@ void Preferences::setStoreOpenedSearchTabResults(const bool enabled)
753753
setValue(u"Search/StoreOpenedSearchTabResults"_s, enabled);
754754
}
755755

756+
bool Preferences::closeSearchTabWithMiddleClick() const
757+
{
758+
return value(u"Search/CloseSearchTabWithMiddleClick"_s, true);
759+
}
760+
761+
void Preferences::setCloseSearchTabWithMiddleClick(const bool enabled)
762+
{
763+
if (enabled == closeSearchTabWithMiddleClick())
764+
return;
765+
766+
setValue(u"Search/CloseSearchTabWithMiddleClick"_s, enabled);
767+
}
768+
756769
bool Preferences::isWebUIEnabled() const
757770
{
758771
#ifdef DISABLE_GUI

src/base/preferences.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,8 @@ class Preferences final : public QObject
175175
void setStoreOpenedSearchTabs(bool enabled);
176176
bool storeOpenedSearchTabResults() const;
177177
void setStoreOpenedSearchTabResults(bool enabled);
178+
bool closeSearchTabWithMiddleClick() const;
179+
void setCloseSearchTabWithMiddleClick(bool enabled);
178180

179181
// HTTP Server
180182
bool isWebUIEnabled() const;

src/gui/optionsdialog.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,10 +1387,12 @@ void OptionsDialog::loadSearchTabOptions()
13871387
m_ui->groupStoreOpenedTabs->setChecked(pref->storeOpenedSearchTabs());
13881388
m_ui->checkStoreTabsSearchResults->setChecked(pref->storeOpenedSearchTabResults());
13891389
m_ui->searchHistoryLengthSpinBox->setValue(pref->searchHistoryLength());
1390+
m_ui->checkCloseSearchTabWithMiddleClick->setChecked(pref->closeSearchTabWithMiddleClick());
13901391

13911392
connect(m_ui->groupStoreOpenedTabs, &QGroupBox::toggled, this, &OptionsDialog::enableApplyButton);
13921393
connect(m_ui->checkStoreTabsSearchResults, &QCheckBox::toggled, this, &OptionsDialog::enableApplyButton);
13931394
connect(m_ui->searchHistoryLengthSpinBox, qSpinBoxValueChanged, this, &OptionsDialog::enableApplyButton);
1395+
connect(m_ui->checkCloseSearchTabWithMiddleClick, &QCheckBox::toggled, this, &OptionsDialog::enableApplyButton);
13941396
}
13951397

13961398
void OptionsDialog::saveSearchTabOptions() const
@@ -1400,6 +1402,7 @@ void OptionsDialog::saveSearchTabOptions() const
14001402
pref->setStoreOpenedSearchTabs(m_ui->groupStoreOpenedTabs->isChecked());
14011403
pref->setStoreOpenedSearchTabResults(m_ui->checkStoreTabsSearchResults->isChecked());
14021404
pref->setSearchHistoryLength(m_ui->searchHistoryLengthSpinBox->value());
1405+
pref->setCloseSearchTabWithMiddleClick(m_ui->checkCloseSearchTabWithMiddleClick->isChecked());
14031406
}
14041407

14051408
#ifndef DISABLE_WEBUI

src/gui/optionsdialog.ui

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3449,34 +3449,45 @@ Disable encryption: Only connect to peers without protocol encryption</string>
34493449
</widget>
34503450
</item>
34513451
<item>
3452-
<layout class="QHBoxLayout" name="searchHistoryLayout">
3453-
<item>
3454-
<widget class="QLabel" name="searchHistoryLengthLabel">
3455-
<property name="text">
3456-
<string>History length</string>
3457-
</property>
3458-
</widget>
3452+
<layout class="QGridLayout" name="gridLayout_8">
3453+
<item row="0" column="0">
3454+
<layout class="QHBoxLayout" name="searchHistoryLayout">
3455+
<item>
3456+
<widget class="QLabel" name="searchHistoryLengthLabel">
3457+
<property name="text">
3458+
<string>History length</string>
3459+
</property>
3460+
</widget>
3461+
</item>
3462+
<item>
3463+
<widget class="QSpinBox" name="searchHistoryLengthSpinBox">
3464+
<property name="maximum">
3465+
<number>99</number>
3466+
</property>
3467+
</widget>
3468+
</item>
3469+
<item>
3470+
<spacer name="searchHistoryLengthSpacer">
3471+
<property name="orientation">
3472+
<enum>Qt::Orientation::Horizontal</enum>
3473+
</property>
3474+
<property name="sizeHint" stdset="0">
3475+
<size>
3476+
<width>40</width>
3477+
<height>20</height>
3478+
</size>
3479+
</property>
3480+
</spacer>
3481+
</item>
3482+
</layout>
34593483
</item>
3460-
<item>
3461-
<widget class="QSpinBox" name="searchHistoryLengthSpinBox">
3462-
<property name="maximum">
3463-
<number>99</number>
3484+
<item row="1" column="0">
3485+
<widget class="QCheckBox" name="checkCloseSearchTabWithMiddleClick">
3486+
<property name="text">
3487+
<string>Allow closing tabs with middle-click</string>
34643488
</property>
34653489
</widget>
34663490
</item>
3467-
<item>
3468-
<spacer name="searchHistoryLengthSpacer">
3469-
<property name="orientation">
3470-
<enum>Qt::Orientation::Horizontal</enum>
3471-
</property>
3472-
<property name="sizeHint" stdset="0">
3473-
<size>
3474-
<width>40</width>
3475-
<height>20</height>
3476-
</size>
3477-
</property>
3478-
</spacer>
3479-
</item>
34803491
</layout>
34813492
</item>
34823493
</layout>

src/gui/search/searchwidget.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@
6363
#include "base/utils/bytearray.h"
6464
#include "base/utils/compare.h"
6565
#include "base/utils/datetime.h"
66-
#include "base/utils/fs.h"
6766
#include "base/utils/foreignapps.h"
67+
#include "base/utils/fs.h"
6868
#include "base/utils/io.h"
6969
#include "gui/desktopintegration.h"
7070
#include "gui/interfaces/iguiapplication.h"
@@ -467,7 +467,9 @@ bool SearchWidget::eventFilter(QObject *object, QEvent *event)
467467
{
468468
if (mouseEvent->button() == Qt::MiddleButton)
469469
{
470-
closeTab(tabIndex);
470+
if (Preferences::instance()->closeSearchTabWithMiddleClick())
471+
closeTab(tabIndex);
472+
471473
return true;
472474
}
473475

0 commit comments

Comments
 (0)