Skip to content

Commit

Permalink
Create a separate option to enable/disable middle-click for tab closi…
Browse files Browse the repository at this point in the history
  • Loading branch information
ansgarbecker committed Oct 12, 2023
1 parent 0444ebb commit 2f44c9a
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 7 deletions.
9 changes: 6 additions & 3 deletions out/locale/en/LC_MESSAGES/default.po
Expand Up @@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: HeidiSQL\n"
"POT-Creation-Date: 2012-11-05 21:40\n"
"PO-Revision-Date: 2023-10-12 07:21+0200\n"
"PO-Revision-Date: 2023-10-12 19:16+0200\n"
"Last-Translator: Ansgar Becker <anse@heidisql.com>\n"
"Language-Team: English (http://www.transifex.com/projects/p/heidisql/language/en/)\n"
"Language: en\n"
Expand Down Expand Up @@ -2764,8 +2764,11 @@ msgstr "Tabs to spaces"
msgid "Prompt to save modified files on tab close"
msgstr "Prompt to save modified files on tab close"

msgid "Close tab on doubleclick and middleclick"
msgstr "Close tab on doubleclick and middleclick"
msgid "Close tab on doubleclick"
msgstr "Close tab on doubleclick"

msgid "Close tab on middleclick"
msgstr "Close tab on middleclick"

msgid "Show query warnings dialog"
msgstr "Show query warnings dialog"
Expand Down
3 changes: 2 additions & 1 deletion source/apphelpers.pas
Expand Up @@ -207,7 +207,7 @@ TClipboardHelper = class helper for TClipboard
asCopyTableData, asCopyTableRecentFilter, asServerVersion, asServerVersionFull, asLastConnect,
asConnectCount, asRefusedCount, asSessionCreated, asDoUsageStatistics,
asLastUsageStatisticCall, asWheelZoom, asDisplayBars, asMySQLBinaries, asCustomSnippetsDirectory,
asPromptSaveFileOnTabClose, asRestoreTabs, asTabCloseOnDoubleClick, asWarnUnsafeUpdates, asQueryWarningsMessage, asQueryGridLongSortRowNum,
asPromptSaveFileOnTabClose, asRestoreTabs, asTabCloseOnDoubleClick, asTabCloseOnMiddleClick, asWarnUnsafeUpdates, asQueryWarningsMessage, asQueryGridLongSortRowNum,
asCompletionProposal, asCompletionProposalInterval, asCompletionProposalSearchOnMid, asCompletionProposalWidth, asCompletionProposalNbLinesInWindow, asAutoUppercase,
asTabsToSpaces, asFilterPanel, asAllowMultipleInstances, asFindDialogSearchHistory, asGUIFontName, asGUIFontSize,
asTheme, asIconPack, asWebSearchBaseUrl,
Expand Down Expand Up @@ -3856,6 +3856,7 @@ constructor TAppSettings.Create;
// Restore tabs feature crashes often on old XP systems, see https://www.heidisql.com/forum.php?t=34044
InitSetting(asRestoreTabs, 'RestoreTabs', 0, Win32MajorVersion >= 6);
InitSetting(asTabCloseOnDoubleClick, 'TabCloseOnDoubleClick', 0, True);
InitSetting(asTabCloseOnMiddleClick, 'TabCloseOnMiddleClick', 0, True);
InitSetting(asWarnUnsafeUpdates, 'WarnUnsafeUpdates', 0, True);
InitSetting(asQueryWarningsMessage, 'QueryWarningsMessage', 0, True);
InitSetting(asQueryGridLongSortRowNum, 'QueryGridLongSortRowNum', 10000);
Expand Down
7 changes: 6 additions & 1 deletion source/main.dfm
Expand Up @@ -4396,9 +4396,14 @@ object MainForm: TMainForm
end
object menuCloseTabOnDblClick: TMenuItem
AutoCheck = True
Caption = 'Close tab on doubleclick and middleclick'
Caption = 'Close tab on doubleclick'
OnClick = menuCloseTabOnDblClickClick
end
object menuCloseTabOnMiddleClick: TMenuItem
AutoCheck = True
Caption = 'Close tab on middleclick'
OnClick = menuCloseTabOnMiddleClickClick
end
end
object TimerFilterVT: TTimer
Enabled = False
Expand Down
10 changes: 9 additions & 1 deletion source/main.pas
Expand Up @@ -778,6 +778,7 @@ TMainForm = class(TExtForm)
SequalSuggest2: TMenuItem;
popupDataTop: TPopupMenu;
menuQueryExactRowCount: TMenuItem;
menuCloseTabOnMiddleClick: TMenuItem;
procedure actCreateDBObjectExecute(Sender: TObject);
procedure menuConnectionsPopup(Sender: TObject);
procedure actExitApplicationExecute(Sender: TObject);
Expand Down Expand Up @@ -1178,6 +1179,7 @@ TMainForm = class(TExtForm)
var Special: Boolean; var FG, BG: TColor);
procedure actSequalSuggestExecute(Sender: TObject);
procedure menuQueryExactRowCountClick(Sender: TObject);
procedure menuCloseTabOnMiddleClickClick(Sender: TObject);
private
// Executable file details
FAppVerMajor: Integer;
Expand Down Expand Up @@ -12193,6 +12195,11 @@ procedure TMainForm.menuCloseTabOnDblClickClick(Sender: TObject);
end;


procedure TMainForm.menuCloseTabOnMiddleClickClick(Sender: TObject);
begin
AppSettings.WriteBool(asTabCloseOnMiddleClick, menuCloseTabOnMiddleClick.Checked);
end;

procedure TMainForm.actCloseAllQueryTabsExecute(Sender: TObject);
var
i: Integer;
Expand Down Expand Up @@ -12254,6 +12261,7 @@ procedure TMainForm.popupMainTabsPopup(Sender: TObject);
menuRenameQueryTab.Caption := actRenameQueryTab.Caption;
menuRenameQueryTab.Enabled := IsQueryTab(PageIndexClick, True);
menuCloseTabOnDblClick.Checked := AppSettings.ReadBool(asTabCloseOnDoubleClick);
menuCloseTabOnMiddleClick.Checked := AppSettings.ReadBool(asTabCloseOnMiddleClick);
end;


Expand Down Expand Up @@ -12537,7 +12545,7 @@ procedure TMainForm.PageControlMainMouseUp(Sender: TObject;

mbMiddle: begin
// Middle click on tab
if AppSettings.ReadBool(asTabCloseOnDoubleClick) then begin
if AppSettings.ReadBool(asTabCloseOnMiddleClick) then begin
TabNumber := GetMainTabAt(X, Y);
CloseQueryTab(TabNumber);
end;
Expand Down
13 changes: 12 additions & 1 deletion source/preferences.dfm
Expand Up @@ -1393,8 +1393,19 @@ object frmPreferences: TfrmPreferences
Top = 54
Width = 477
Height = 17
Caption = 'Close tab on doubleclick and middleclick'
Caption = 'Close tab on doubleclick'
TabOrder = 2
OnClick = Modified
end
object chkTabCloseOnMiddleClick: TCheckBox
Left = 220
Top = 77
Width = 457
Height = 17
Anchors = [akLeft, akTop, akRight]
Caption = 'Close tab on middleclick'
TabOrder = 3
OnClick = Modified
end
end
end
Expand Down
3 changes: 3 additions & 0 deletions source/preferences.pas
Expand Up @@ -185,6 +185,7 @@ TfrmPreferences = class(TExtForm)
chkColumnHeaderClick: TCheckBox;
chkIncrementalSearch: TCheckBox;
chkShowRowId: TCheckBox;
chkTabCloseOnMiddleClick: TCheckBox;
procedure FormShow(Sender: TObject);
procedure Modified(Sender: TObject);
procedure Apply(Sender: TObject);
Expand Down Expand Up @@ -437,6 +438,7 @@ procedure TfrmPreferences.Apply(Sender: TObject);
AppSettings.WriteBool(asPromptSaveFileOnTabClose, chkAskFileSave.Checked);
AppSettings.WriteBool(asRestoreTabs, chkRestoreTabs.Checked);
AppSettings.WriteBool(asTabCloseOnDoubleClick, chkTabCloseOnDoubleClick.Checked);
AppSettings.WriteBool(asTabCloseOnMiddleClick, chkTabCloseOnMiddleClick.Checked);

// Set relevant properties in mainform
MainForm.ApplyFontToGrids;
Expand Down Expand Up @@ -800,6 +802,7 @@ procedure TfrmPreferences.FormShow(Sender: TObject);
chkAskFileSave.Checked := AppSettings.ReadBool(asPromptSaveFileOnTabClose);
chkRestoreTabs.Checked := AppSettings.ReadBool(asRestoreTabs);
chkTabCloseOnDoubleClick.Checked := AppSettings.ReadBool(asTabCloseOnDoubleClick);
chkTabCloseOnMiddleClick.Checked := AppSettings.ReadBool(asTabCloseOnMiddleClick);

// Disable global shortcuts
MainForm.ActionList1.State := asSuspended;
Expand Down

0 comments on commit 2f44c9a

Please sign in to comment.