Skip to content

Commit c0fbcff

Browse files
committed
feat: add "Display" main menu, move some spread items there, and add two items for toggling log panel and tree filters
Refs #1891
1 parent 0ccb1ac commit c0fbcff

File tree

4 files changed

+111
-27
lines changed

4 files changed

+111
-27
lines changed

extra/locale/heidisql.po

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ msgid ""
77
msgstr ""
88
"Project-Id-Version: HeidiSQL\n"
99
"POT-Creation-Date: 2012-11-05 21:40\n"
10-
"PO-Revision-Date: 2026-02-22 16:29+0100\n"
10+
"PO-Revision-Date: 2026-02-22 16:55+0100\n"
1111
"Last-Translator: Ansgar Becker <anse@heidisql.com>\n"
1212
"Language-Team: English (http://www.transifex.com/projects/p/heidisql/language/en/)\n"
1313
"Language: en\n"
@@ -6779,3 +6779,12 @@ msgstr "Make sure sshpass is available when using a password"
67796779

67806780
msgid "Copy column names"
67816781
msgstr "Copy column names"
6782+
6783+
msgid "Display"
6784+
msgstr "Display"
6785+
6786+
msgid "Tree filters"
6787+
msgstr "Tree filters"
6788+
6789+
msgid "Log panel"
6790+
msgstr "Log panel"

source/apphelpers.pas

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ TWinControlHelper = class helper for TWinControl
234234
asCreateDbCollation, asRealTrailingZeros,
235235
asSequalSuggestWindowWidth, asSequalSuggestWindowHeight, asSequalSuggestPrompt, asSequalSuggestRecentPrompts,
236236
asReformatter, asReformatterNoDialog, asAlwaysGenerateFilter,
237-
asGenerateDataNumRows, asGenerateDataNullAmount, asWebOnceAction,
237+
asGenerateDataNumRows, asGenerateDataNullAmount, asWebOnceAction, asDisplayLogPanel, asDisplayTreeFilters,
238238
asUnused);
239239
TAppSetting = record
240240
Name: String;
@@ -3840,6 +3840,8 @@ constructor TAppSettings.Create;
38403840
InitSetting(asRowBackgroundOdd, 'RowBackgroundOdd', clNone);
38413841
InitSetting(asGroupTreeObjects, 'GroupTreeObjects', 0, False);
38423842
InitSetting(asDisplayObjectSizeColumn, 'DisplayObjectSizeColumn', 0, True);
3843+
InitSetting(asDisplayLogPanel, 'DisplayLogPanel', 0, True);
3844+
InitSetting(asDisplayTreeFilters, 'DisplayTreeFilters', 0, True);
38433845
InitSetting(asActionShortcut1, 'Shortcut1_%s', 0);
38443846
InitSetting(asActionShortcut2, 'Shortcut2_%s', 0);
38453847
InitSetting(asHighlighterForeground, 'SQL Attr %s Foreground', 0);

source/main.lfm

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3677,10 +3677,35 @@ object MainForm: TMainForm
36773677
object Inverseselection1: TMenuItem
36783678
Action = actSelectInverse
36793679
end
3680-
object actFindInVT1: TMenuItem
3680+
end
3681+
object MainMenuDisplay: TMenuItem
3682+
Caption = 'Display'
3683+
object menuDisplaysizeofobjects1: TMenuItem
3684+
Action = actDisplayObjectSize
3685+
AutoCheck = True
3686+
end
3687+
object menuShowonlyfavorites1: TMenuItem
3688+
Action = actFavoriteObjectsOnly
3689+
AutoCheck = True
3690+
end
3691+
object menuFilterpanel1: TMenuItem
36813692
Action = actFilterPanel
36823693
AutoCheck = True
36833694
end
3695+
object menuDisplayLogPanel1: TMenuItem
3696+
Action = actDisplayLogPanel
3697+
AutoCheck = True
3698+
end
3699+
object menuTreefilters1: TMenuItem
3700+
Action = actDisplayTreeFilters
3701+
AutoCheck = True
3702+
end
3703+
object Separator1: TMenuItem
3704+
Caption = '-'
3705+
end
3706+
object menuResetpaneldimensions1: TMenuItem
3707+
Action = actResetPanelDimensions
3708+
end
36843709
end
36853710
object MainMenuSearch: TMenuItem
36863711
Caption = 'Search'
@@ -3847,9 +3872,6 @@ object MainForm: TMainForm
38473872
object N4: TMenuItem
38483873
Caption = '-'
38493874
end
3850-
object Resetpaneldimensions1: TMenuItem
3851-
Action = actResetPanelDimensions
3852-
end
38533875
object menuColorScheme: TMenuItem
38543876
Caption = 'Color scheme'
38553877
ImageIndex = 115
@@ -4553,7 +4575,6 @@ object MainForm: TMainForm
45534575
AutoCheck = True
45544576
Caption = 'Filter panel'
45554577
Hint = 'Activates the filter panel'
4556-
ImageIndex = 30
45574578
ShortCut = 49222
45584579
OnExecute = actFilterPanelExecute
45594580
end
@@ -5066,6 +5087,24 @@ object MainForm: TMainForm
50665087
Caption = 'SQL editor preferences'
50675088
DisableIfNoHandler = False
50685089
end
5090+
object actDisplayObjectSize: TAction
5091+
Category = 'Various'
5092+
AutoCheck = True
5093+
Caption = 'Display size of objects'
5094+
OnExecute = actDisplayObjectSizeExecute
5095+
end
5096+
object actDisplayLogPanel: TAction
5097+
Category = 'Various'
5098+
AutoCheck = True
5099+
Caption = 'Log panel'
5100+
OnExecute = actDisplayLogPanelExecute
5101+
end
5102+
object actDisplayTreeFilters: TAction
5103+
Category = 'Various'
5104+
AutoCheck = True
5105+
Caption = 'Tree filters'
5106+
OnExecute = actDisplayTreeFiltersExecute
5107+
end
50695108
end
50705109
object ImageListMain: TImageList
50715110
Scaled = True
@@ -20475,9 +20514,8 @@ object MainForm: TMainForm
2047520514
AutoCheck = True
2047620515
end
2047720516
object menuShowSizeColumn: TMenuItem
20517+
Action = actDisplayObjectSize
2047820518
AutoCheck = True
20479-
Caption = 'Display size of objects'
20480-
OnClick = menuShowSizeColumnClick
2048120519
end
2048220520
object menuAutoExpand: TMenuItem
2048320521
Caption = 'Auto expand on click'

source/main.pas

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,6 @@ TMainForm = class(TExtForm)
524524
pnlRight: TPanel;
525525
btnCloseFilterPanel: TSpeedButton;
526526
actFilterPanel: TAction;
527-
actFindInVT1: TMenuItem;
528527
TimerFilterVT: TTimer;
529528
actFindTextOnServer: TAction;
530529
actFindTextOnServer1: TMenuItem;
@@ -806,7 +805,6 @@ TMainForm = class(TExtForm)
806805
btnDonate: TToolButton;
807806
ToolButton2: TToolButton;
808807
actResetPanelDimensions: TAction;
809-
Resetpaneldimensions1: TMenuItem;
810808
popupApplyFilter: TPopupMenu;
811809
menuAlwaysGenerateFilter: TMenuItem;
812810
actGenerateData: TAction;
@@ -816,6 +814,17 @@ TMainForm = class(TExtForm)
816814
actCopyGridNodes1: TMenuItem;
817815
actQueryTable: TAction;
818816
Selecttop1000rows1: TMenuItem;
817+
MainMenuDisplay: TMenuItem;
818+
actDisplayObjectSize: TAction;
819+
menuDisplaysizeofobjects1: TMenuItem;
820+
menuShowonlyfavorites1: TMenuItem;
821+
menuFilterpanel1: TMenuItem;
822+
menuResetpaneldimensions1: TMenuItem;
823+
actDisplayLogPanel: TAction;
824+
actDisplayTreeFilters: TAction;
825+
menuDisplayLogPanel1: TMenuItem;
826+
menuTreefilters1: TMenuItem;
827+
Separator1: TMenuItem;
819828
procedure actCreateDBObjectExecute(Sender: TObject);
820829
procedure actNextTabExecute(Sender: TObject);
821830
procedure actPreviousTabExecute(Sender: TObject);
@@ -981,7 +990,7 @@ TMainForm = class(TExtForm)
981990
procedure AnyGridAfterCellPaint(Sender: TBaseVirtualTree;
982991
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
983992
CellRect: TRect);
984-
procedure menuShowSizeColumnClick(Sender: TObject);
993+
procedure actDisplayObjectSizeExecute(Sender: TObject);
985994
procedure AnyGridBeforeCellPaint(Sender: TBaseVirtualTree;
986995
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
987996
CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
@@ -1217,6 +1226,8 @@ TMainForm = class(TExtForm)
12171226
procedure actCopyGridNodesExecute(Sender: TObject);
12181227
procedure ApplicationException(Sender: TObject; E: Exception);
12191228
procedure actQueryTableExecute(Sender: TObject);
1229+
procedure actDisplayLogPanelExecute(Sender: TObject);
1230+
procedure actDisplayTreeFiltersExecute(Sender: TObject);
12201231
private
12211232
// Executable file details
12221233
FAppVerMajor: Integer;
@@ -1993,10 +2004,14 @@ procedure TMainForm.FormCreate(Sender: TObject);
19932004
DataGridTable := nil;
19942005
FActiveDbObj := nil;
19952006

1996-
// Database tree options
2007+
// Display options, and database tree options
19972008
actGroupObjects.Checked := AppSettings.ReadBool(asGroupTreeObjects);
1998-
if AppSettings.ReadBool(asDisplayObjectSizeColumn) then
1999-
menuShowSizeColumn.Click;
2009+
actDisplayObjectSize.Checked := AppSettings.ReadBool(asDisplayObjectSizeColumn);
2010+
actDisplayObjectSizeExecute(nil);
2011+
actDisplayLogPanel.Checked := AppSettings.ReadBool(asDisplayLogPanel);
2012+
actDisplayLogPanelExecute(nil);
2013+
actDisplayTreeFilters.Checked := AppSettings.ReadBool(asDisplayTreeFilters);
2014+
actDisplayTreeFiltersExecute(nil);
20002015
if AppSettings.ReadBool(asAutoExpand) then
20012016
menuAutoExpand.Click;
20022017
if AppSettings.ReadBool(asDoubleClickInsertsNodeText) then
@@ -10883,20 +10898,43 @@ procedure TMainForm.AnyGridCreateEditor(Sender: TBaseVirtualTree; Node:
1088310898
end;
1088410899

1088510900

10886-
procedure TMainForm.menuShowSizeColumnClick(Sender: TObject);
10901+
procedure TMainForm.actDisplayLogPanelExecute(Sender: TObject);
10902+
begin
10903+
if actDisplayLogPanel.Checked then begin
10904+
SynMemoSQLLog.Visible := True;
10905+
spltTopBottom.Visible := True;
10906+
// ensure z-order: top panel, splitter, memo
10907+
spltTopBottom.BringToFront;
10908+
SynMemoSQLLog.BringToFront;
10909+
end
10910+
else begin
10911+
spltTopBottom.Visible := False;
10912+
SynMemoSQLLog.Visible := False;
10913+
end;
10914+
AppSettings.ResetPath;
10915+
AppSettings.WriteBool(asDisplayLogPanel, actDisplayLogPanel.Checked);
10916+
end;
10917+
10918+
procedure TMainForm.actDisplayObjectSizeExecute(Sender: TObject);
1088710919
var
10888-
Item: TMenuItem;
10920+
ColOptions: TVTColumnOptions;
1088910921
begin
10890-
if coVisible in DBtree.Header.Columns[1].Options then
10891-
DBtree.Header.Columns[1].Options := DBtree.Header.Columns[1].Options - [coVisible]
10922+
ColOptions := DBtree.Header.Columns[1].Options;
10923+
if actDisplayObjectSize.Checked then
10924+
ColOptions := ColOptions + [coVisible]
1089210925
else
10893-
DBtree.Header.Columns[1].Options := DBtree.Header.Columns[1].Options + [coVisible];
10894-
Item := Sender as TMenuItem;
10895-
Item.Checked := coVisible in DBtree.Header.Columns[1].Options;
10926+
ColOptions := ColOptions - [coVisible];
10927+
DBtree.Header.Columns[1].Options := ColOptions;
1089610928
AppSettings.ResetPath;
10897-
AppSettings.WriteBool(asDisplayObjectSizeColumn, Item.Checked);
10929+
AppSettings.WriteBool(asDisplayObjectSizeColumn, actDisplayObjectSize.Checked);
1089810930
end;
1089910931

10932+
procedure TMainForm.actDisplayTreeFiltersExecute(Sender: TObject);
10933+
begin
10934+
ToolBarTree.Visible := actDisplayTreeFilters.Checked;
10935+
AppSettings.ResetPath;
10936+
AppSettings.WriteBool(asDisplayTreeFilters, actDisplayTreeFilters.Checked);
10937+
end;
1090010938

1090110939
procedure TMainForm.menuAlwaysGenerateFilterClick(Sender: TObject);
1090210940
begin
@@ -12540,10 +12578,7 @@ procedure TMainForm.actFavoriteObjectsOnlyExecute(Sender: TObject);
1254012578
// Click on "tree favorites" main button
1254112579
// Note: a TSpeedButton connected to an auto-checked TAction needs AllowAllUp + GroupIndex>0
1254212580
editDatabaseTableFilterChange(Sender);
12543-
if actFavoriteObjectsOnly.Checked then
12544-
actFavoriteObjectsOnly.ImageIndex := 112
12545-
else
12546-
actFavoriteObjectsOnly.ImageIndex := 113;
12581+
actFavoriteObjectsOnly.ImageIndex := IfThen(actFavoriteObjectsOnly.Checked, 112, 113);
1254712582
end;
1254812583

1254912584

0 commit comments

Comments
 (0)