mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-18 05:18:33 +08:00
Add support for hiding column headers to all lists, via a) context menu + b) via dragging out headers.
This commit is contained in:
@ -525,6 +525,7 @@ object MainForm: TMainForm
|
|||||||
Header.DefaultHeight = 17
|
Header.DefaultHeight = 17
|
||||||
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||||
Header.ParentFont = True
|
Header.ParentFont = True
|
||||||
|
Header.PopupMenu = popupListHeader
|
||||||
Header.SortColumn = 0
|
Header.SortColumn = 0
|
||||||
Images = ImageListMain
|
Images = ImageListMain
|
||||||
PopupMenu = popupHost
|
PopupMenu = popupHost
|
||||||
@ -542,6 +543,7 @@ object MainForm: TMainForm
|
|||||||
OnGetHint = vstGetHint
|
OnGetHint = vstGetHint
|
||||||
OnGetNodeDataSize = ListDatabasesGetNodeDataSize
|
OnGetNodeDataSize = ListDatabasesGetNodeDataSize
|
||||||
OnHeaderClick = vstHeaderClick
|
OnHeaderClick = vstHeaderClick
|
||||||
|
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||||
OnInitNode = ListDatabasesInitNode
|
OnInitNode = ListDatabasesInitNode
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
@ -607,6 +609,7 @@ object MainForm: TMainForm
|
|||||||
Header.Height = 20
|
Header.Height = 20
|
||||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||||
Header.ParentFont = True
|
Header.ParentFont = True
|
||||||
|
Header.PopupMenu = popupListHeader
|
||||||
Header.SortColumn = 0
|
Header.SortColumn = 0
|
||||||
HintMode = hmTooltip
|
HintMode = hmTooltip
|
||||||
Images = ImageListMain
|
Images = ImageListMain
|
||||||
@ -629,6 +632,7 @@ object MainForm: TMainForm
|
|||||||
OnGetHint = vstGetHint
|
OnGetHint = vstGetHint
|
||||||
OnGetNodeDataSize = vstGetNodeDataSize
|
OnGetNodeDataSize = vstGetNodeDataSize
|
||||||
OnHeaderClick = vstHeaderClick
|
OnHeaderClick = vstHeaderClick
|
||||||
|
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||||
OnInitNode = vstInitNode
|
OnInitNode = vstInitNode
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
@ -657,6 +661,7 @@ object MainForm: TMainForm
|
|||||||
Header.Height = 20
|
Header.Height = 20
|
||||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||||
Header.ParentFont = True
|
Header.ParentFont = True
|
||||||
|
Header.PopupMenu = popupListHeader
|
||||||
Header.SortColumn = 0
|
Header.SortColumn = 0
|
||||||
HintMode = hmTooltip
|
HintMode = hmTooltip
|
||||||
Images = ImageListMain
|
Images = ImageListMain
|
||||||
@ -678,6 +683,7 @@ object MainForm: TMainForm
|
|||||||
OnGetHint = vstGetHint
|
OnGetHint = vstGetHint
|
||||||
OnGetNodeDataSize = vstGetNodeDataSize
|
OnGetNodeDataSize = vstGetNodeDataSize
|
||||||
OnHeaderClick = vstHeaderClick
|
OnHeaderClick = vstHeaderClick
|
||||||
|
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||||
OnInitNode = vstInitNode
|
OnInitNode = vstInitNode
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
@ -728,6 +734,7 @@ object MainForm: TMainForm
|
|||||||
Header.Height = 20
|
Header.Height = 20
|
||||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||||
Header.ParentFont = True
|
Header.ParentFont = True
|
||||||
|
Header.PopupMenu = popupListHeader
|
||||||
Header.SortColumn = 0
|
Header.SortColumn = 0
|
||||||
Header.SortDirection = sdDescending
|
Header.SortDirection = sdDescending
|
||||||
HintMode = hmTooltip
|
HintMode = hmTooltip
|
||||||
@ -752,6 +759,7 @@ object MainForm: TMainForm
|
|||||||
OnGetHint = vstGetHint
|
OnGetHint = vstGetHint
|
||||||
OnGetNodeDataSize = vstGetNodeDataSize
|
OnGetNodeDataSize = vstGetNodeDataSize
|
||||||
OnHeaderClick = vstHeaderClick
|
OnHeaderClick = vstHeaderClick
|
||||||
|
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||||
OnInitNode = vstInitNode
|
OnInitNode = vstInitNode
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
@ -873,6 +881,7 @@ object MainForm: TMainForm
|
|||||||
Header.Height = 20
|
Header.Height = 20
|
||||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||||
Header.ParentFont = True
|
Header.ParentFont = True
|
||||||
|
Header.PopupMenu = popupListHeader
|
||||||
Header.SortColumn = 1
|
Header.SortColumn = 1
|
||||||
Header.SortDirection = sdDescending
|
Header.SortDirection = sdDescending
|
||||||
HintMode = hmTooltip
|
HintMode = hmTooltip
|
||||||
@ -896,6 +905,7 @@ object MainForm: TMainForm
|
|||||||
OnGetHint = vstGetHint
|
OnGetHint = vstGetHint
|
||||||
OnGetNodeDataSize = vstGetNodeDataSize
|
OnGetNodeDataSize = vstGetNodeDataSize
|
||||||
OnHeaderClick = vstHeaderClick
|
OnHeaderClick = vstHeaderClick
|
||||||
|
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||||
OnInitNode = vstInitNode
|
OnInitNode = vstInitNode
|
||||||
Columns = <
|
Columns = <
|
||||||
item
|
item
|
||||||
@ -945,7 +955,7 @@ object MainForm: TMainForm
|
|||||||
Header.Height = 20
|
Header.Height = 20
|
||||||
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||||
Header.ParentFont = True
|
Header.ParentFont = True
|
||||||
Header.PopupMenu = popupDbGridHeader
|
Header.PopupMenu = popupListHeader
|
||||||
Header.SortColumn = 0
|
Header.SortColumn = 0
|
||||||
HintMode = hmTooltip
|
HintMode = hmTooltip
|
||||||
Images = ImageListMain
|
Images = ImageListMain
|
||||||
@ -8032,9 +8042,7 @@ object MainForm: TMainForm
|
|||||||
Left = 40
|
Left = 40
|
||||||
Top = 200
|
Top = 200
|
||||||
end
|
end
|
||||||
object popupDbGridHeader: TPopupMenu
|
object popupListHeader: TVTHeaderPopupMenu
|
||||||
AutoHotkeys = maManual
|
|
||||||
AutoLineReduction = maManual
|
|
||||||
Images = ImageListMain
|
Images = ImageListMain
|
||||||
Left = 40
|
Left = 40
|
||||||
Top = 128
|
Top = 128
|
||||||
|
@ -18,7 +18,7 @@ uses
|
|||||||
CommCtrl, Contnrs, Generics.Collections, SynEditExport, SynExportHTML, Math,
|
CommCtrl, Contnrs, Generics.Collections, SynEditExport, SynExportHTML, Math,
|
||||||
routine_editor, trigger_editor, event_editor, options, EditVar, helpers, createdatabase, table_editor,
|
routine_editor, trigger_editor, event_editor, options, EditVar, helpers, createdatabase, table_editor,
|
||||||
TableTools, View, Usermanager, SelectDBObject, connections, sqlhelp, mysql_connection,
|
TableTools, View, Usermanager, SelectDBObject, connections, sqlhelp, mysql_connection,
|
||||||
mysql_api, insertfiles, searchreplace, loaddata, copytable;
|
mysql_api, insertfiles, searchreplace, loaddata, copytable, VTHeaderPopup;
|
||||||
|
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -293,7 +293,7 @@ type
|
|||||||
N19: TMenuItem;
|
N19: TMenuItem;
|
||||||
setNULL1: TMenuItem;
|
setNULL1: TMenuItem;
|
||||||
menuExporttables: TMenuItem;
|
menuExporttables: TMenuItem;
|
||||||
popupDbGridHeader: TPopupMenu;
|
popupListHeader: TVTHeaderPopupMenu;
|
||||||
SynCompletionProposal: TSynCompletionProposal;
|
SynCompletionProposal: TSynCompletionProposal;
|
||||||
OpenDialogSQLFile: TOpenDialog;
|
OpenDialogSQLFile: TOpenDialog;
|
||||||
SaveDialogSQLFile: TSaveDialog;
|
SaveDialogSQLFile: TSaveDialog;
|
||||||
@ -580,7 +580,6 @@ type
|
|||||||
procedure QFvaluesClick(Sender: TObject);
|
procedure QFvaluesClick(Sender: TObject);
|
||||||
procedure InsertDate(Sender: TObject);
|
procedure InsertDate(Sender: TObject);
|
||||||
procedure setNULL1Click(Sender: TObject);
|
procedure setNULL1Click(Sender: TObject);
|
||||||
procedure MenuTablelistColumnsClick(Sender: TObject);
|
|
||||||
function QueryLoad( filename: String; ReplaceContent: Boolean = true ): Boolean;
|
function QueryLoad( filename: String; ReplaceContent: Boolean = true ): Boolean;
|
||||||
procedure DataGridChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
procedure DataGridChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||||
procedure DataGridCreateEditor(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
procedure DataGridCreateEditor(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||||
@ -794,7 +793,6 @@ type
|
|||||||
function GetActiveDatabase: String;
|
function GetActiveDatabase: String;
|
||||||
function GetSelectedTable: TDBObject;
|
function GetSelectedTable: TDBObject;
|
||||||
procedure SetSelectedDatabase(db: String);
|
procedure SetSelectedDatabase(db: String);
|
||||||
procedure SetVisibleListColumns( List: TVirtualStringTree; Columns: TStringList );
|
|
||||||
procedure ToggleFilterPanel(ForceVisible: Boolean = False);
|
procedure ToggleFilterPanel(ForceVisible: Boolean = False);
|
||||||
procedure AutoCalcColWidth(Tree: TVirtualStringTree; Column: TColumnIndex);
|
procedure AutoCalcColWidth(Tree: TVirtualStringTree; Column: TColumnIndex);
|
||||||
procedure PlaceObjectEditor(Obj: TDBObject);
|
procedure PlaceObjectEditor(Obj: TDBObject);
|
||||||
@ -1124,7 +1122,6 @@ end;
|
|||||||
procedure TMainForm.FormCreate(Sender: TObject);
|
procedure TMainForm.FormCreate(Sender: TObject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
menuitem : TMenuItem;
|
|
||||||
datafontname, WinState: String;
|
datafontname, WinState: String;
|
||||||
datafontsize : Integer;
|
datafontsize : Integer;
|
||||||
DisableProcessWindowsGhostingProc: procedure;
|
DisableProcessWindowsGhostingProc: procedure;
|
||||||
@ -1308,19 +1305,6 @@ begin
|
|||||||
Action.ShortCut := GetRegValue(REGPREFIX_SHORTCUT1+Action.Name, Action.ShortCut);
|
Action.ShortCut := GetRegValue(REGPREFIX_SHORTCUT1+Action.Name, Action.ShortCut);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Generate menuitems for popupDbGridHeader (column selection for ListTables)
|
|
||||||
popupDBGridHeader.Items.Clear;
|
|
||||||
for i:=0 to ListTables.Header.Columns.Count-1 do
|
|
||||||
begin
|
|
||||||
menuitem := TMenuItem.Create( popupDBGridHeader );
|
|
||||||
menuitem.Caption := ListTables.Header.Columns[i].Text;
|
|
||||||
menuitem.OnClick := MenuTablelistColumnsClick;
|
|
||||||
// Disable hiding first column
|
|
||||||
menuitem.Enabled := i>0;
|
|
||||||
menuitem.Checked := coVisible in ListTables.Header.Columns[i].Options;
|
|
||||||
popupDbGridHeader.Items.Add( menuitem );
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Place progressbar on the statusbar
|
// Place progressbar on the statusbar
|
||||||
ProgressBarStatus.Parent := StatusBar;
|
ProgressBarStatus.Parent := StatusBar;
|
||||||
ProgressBarStatus.Visible := False;
|
ProgressBarStatus.Visible := False;
|
||||||
@ -5641,27 +5625,6 @@ begin
|
|||||||
raise Exception.Create('Assertion failed: Invalid global VT array.');
|
raise Exception.Create('Assertion failed: Invalid global VT array.');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{**
|
|
||||||
Click on popupDBGridHeader
|
|
||||||
}
|
|
||||||
procedure TMainForm.MenuTablelistColumnsClick(Sender: TObject);
|
|
||||||
var
|
|
||||||
menuitem : TMenuItem;
|
|
||||||
VisibleColumns : TStringList;
|
|
||||||
i : Integer;
|
|
||||||
begin
|
|
||||||
VisibleColumns := TStringList.Create;
|
|
||||||
menuitem := TMenuItem( Sender );
|
|
||||||
menuitem.Checked := not menuitem.Checked;
|
|
||||||
for i := 0 to ListTables.Header.Columns.Count - 1 do
|
|
||||||
begin
|
|
||||||
menuitem := popupDbGridHeader.Items[i];
|
|
||||||
if menuitem.Checked then
|
|
||||||
VisibleColumns.Add(IntToStr(i));
|
|
||||||
end;
|
|
||||||
SetVisibleListColumns( ListTables, VisibleColumns );
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
{**
|
{**
|
||||||
Save setup of a VirtualStringTree to registry
|
Save setup of a VirtualStringTree to registry
|
||||||
@ -5747,7 +5710,12 @@ begin
|
|||||||
Value := GetRegValue(REGPREFIX_COLSVISIBLE + Regname, '');
|
Value := GetRegValue(REGPREFIX_COLSVISIBLE + Regname, '');
|
||||||
if Value <> '' then begin
|
if Value <> '' then begin
|
||||||
ValueList := Explode( ',', Value );
|
ValueList := Explode( ',', Value );
|
||||||
SetVisibleListColumns( List, ValueList );
|
for i:=0 to List.Header.Columns.Count-1 do begin
|
||||||
|
if ValueList.IndexOf( IntToStr(i) ) > -1 then
|
||||||
|
List.Header.Columns[i].Options := List.Header.Columns[i].Options + [coVisible]
|
||||||
|
else
|
||||||
|
List.Header.Columns[i].Options := List.Header.Columns[i].Options - [coVisible];
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Column position
|
// Column position
|
||||||
@ -5767,25 +5735,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{**
|
|
||||||
(Un)hide columns in a VirtualStringTree.
|
|
||||||
}
|
|
||||||
procedure TMainForm.SetVisibleListColumns( List: TVirtualStringTree; Columns: TStringList );
|
|
||||||
var
|
|
||||||
i : Integer;
|
|
||||||
begin
|
|
||||||
for i := 0 to List.Header.Columns.Count - 1 do
|
|
||||||
begin
|
|
||||||
// Only ListTables' column visibility is currently customizable
|
|
||||||
// so, make sure to unhide the newer "Comment" column in ListColumns for some users
|
|
||||||
if (Columns.IndexOf( IntToStr(i) ) > -1) or (List <> ListTables) then
|
|
||||||
List.Header.Columns[i].Options := List.Header.Columns[i].Options + [coVisible]
|
|
||||||
else
|
|
||||||
List.Header.Columns[i].Options := List.Header.Columns[i].Options - [coVisible];
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
{**
|
{**
|
||||||
Start writing logfile.
|
Start writing logfile.
|
||||||
Called either in FormShow or after closing preferences dialog
|
Called either in FormShow or after closing preferences dialog
|
||||||
@ -5915,14 +5864,6 @@ end;
|
|||||||
procedure TMainForm.vstHeaderDraggedOut(Sender: TVTHeader; Column:
|
procedure TMainForm.vstHeaderDraggedOut(Sender: TVTHeader; Column:
|
||||||
TColumnIndex; DropPosition: TPoint);
|
TColumnIndex; DropPosition: TPoint);
|
||||||
begin
|
begin
|
||||||
if Sender.Treeview = ListTables then
|
|
||||||
begin
|
|
||||||
// Keep "Tables" column
|
|
||||||
if Column = 0 then
|
|
||||||
Exit;
|
|
||||||
// Uncheck menuitem in header's contextmenu
|
|
||||||
popupDBGridHeader.Items[Column].Checked := False;
|
|
||||||
end;
|
|
||||||
// Hide the draggedout column
|
// Hide the draggedout column
|
||||||
Sender.Columns[Column].Options := Sender.Columns[Column].Options - [coVisible];
|
Sender.Columns[Column].Options := Sender.Columns[Column].Options - [coVisible];
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user