mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-17 21:01: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.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.PopupMenu = popupListHeader
|
||||
Header.SortColumn = 0
|
||||
Images = ImageListMain
|
||||
PopupMenu = popupHost
|
||||
@ -542,6 +543,7 @@ object MainForm: TMainForm
|
||||
OnGetHint = vstGetHint
|
||||
OnGetNodeDataSize = ListDatabasesGetNodeDataSize
|
||||
OnHeaderClick = vstHeaderClick
|
||||
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||
OnInitNode = ListDatabasesInitNode
|
||||
Columns = <
|
||||
item
|
||||
@ -607,6 +609,7 @@ object MainForm: TMainForm
|
||||
Header.Height = 20
|
||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.PopupMenu = popupListHeader
|
||||
Header.SortColumn = 0
|
||||
HintMode = hmTooltip
|
||||
Images = ImageListMain
|
||||
@ -629,6 +632,7 @@ object MainForm: TMainForm
|
||||
OnGetHint = vstGetHint
|
||||
OnGetNodeDataSize = vstGetNodeDataSize
|
||||
OnHeaderClick = vstHeaderClick
|
||||
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||
OnInitNode = vstInitNode
|
||||
Columns = <
|
||||
item
|
||||
@ -657,6 +661,7 @@ object MainForm: TMainForm
|
||||
Header.Height = 20
|
||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.PopupMenu = popupListHeader
|
||||
Header.SortColumn = 0
|
||||
HintMode = hmTooltip
|
||||
Images = ImageListMain
|
||||
@ -678,6 +683,7 @@ object MainForm: TMainForm
|
||||
OnGetHint = vstGetHint
|
||||
OnGetNodeDataSize = vstGetNodeDataSize
|
||||
OnHeaderClick = vstHeaderClick
|
||||
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||
OnInitNode = vstInitNode
|
||||
Columns = <
|
||||
item
|
||||
@ -728,6 +734,7 @@ object MainForm: TMainForm
|
||||
Header.Height = 20
|
||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.PopupMenu = popupListHeader
|
||||
Header.SortColumn = 0
|
||||
Header.SortDirection = sdDescending
|
||||
HintMode = hmTooltip
|
||||
@ -752,6 +759,7 @@ object MainForm: TMainForm
|
||||
OnGetHint = vstGetHint
|
||||
OnGetNodeDataSize = vstGetNodeDataSize
|
||||
OnHeaderClick = vstHeaderClick
|
||||
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||
OnInitNode = vstInitNode
|
||||
Columns = <
|
||||
item
|
||||
@ -873,6 +881,7 @@ object MainForm: TMainForm
|
||||
Header.Height = 20
|
||||
Header.Options = [hoAutoResize, hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.PopupMenu = popupListHeader
|
||||
Header.SortColumn = 1
|
||||
Header.SortDirection = sdDescending
|
||||
HintMode = hmTooltip
|
||||
@ -896,6 +905,7 @@ object MainForm: TMainForm
|
||||
OnGetHint = vstGetHint
|
||||
OnGetNodeDataSize = vstGetNodeDataSize
|
||||
OnHeaderClick = vstHeaderClick
|
||||
OnHeaderDraggedOut = vstHeaderDraggedOut
|
||||
OnInitNode = vstInitNode
|
||||
Columns = <
|
||||
item
|
||||
@ -945,7 +955,7 @@ object MainForm: TMainForm
|
||||
Header.Height = 20
|
||||
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoHotTrack, hoShowSortGlyphs, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.PopupMenu = popupDbGridHeader
|
||||
Header.PopupMenu = popupListHeader
|
||||
Header.SortColumn = 0
|
||||
HintMode = hmTooltip
|
||||
Images = ImageListMain
|
||||
@ -8032,9 +8042,7 @@ object MainForm: TMainForm
|
||||
Left = 40
|
||||
Top = 200
|
||||
end
|
||||
object popupDbGridHeader: TPopupMenu
|
||||
AutoHotkeys = maManual
|
||||
AutoLineReduction = maManual
|
||||
object popupListHeader: TVTHeaderPopupMenu
|
||||
Images = ImageListMain
|
||||
Left = 40
|
||||
Top = 128
|
||||
|
@ -18,7 +18,7 @@ uses
|
||||
CommCtrl, Contnrs, Generics.Collections, SynEditExport, SynExportHTML, Math,
|
||||
routine_editor, trigger_editor, event_editor, options, EditVar, helpers, createdatabase, table_editor,
|
||||
TableTools, View, Usermanager, SelectDBObject, connections, sqlhelp, mysql_connection,
|
||||
mysql_api, insertfiles, searchreplace, loaddata, copytable;
|
||||
mysql_api, insertfiles, searchreplace, loaddata, copytable, VTHeaderPopup;
|
||||
|
||||
|
||||
type
|
||||
@ -293,7 +293,7 @@ type
|
||||
N19: TMenuItem;
|
||||
setNULL1: TMenuItem;
|
||||
menuExporttables: TMenuItem;
|
||||
popupDbGridHeader: TPopupMenu;
|
||||
popupListHeader: TVTHeaderPopupMenu;
|
||||
SynCompletionProposal: TSynCompletionProposal;
|
||||
OpenDialogSQLFile: TOpenDialog;
|
||||
SaveDialogSQLFile: TSaveDialog;
|
||||
@ -580,7 +580,6 @@ type
|
||||
procedure QFvaluesClick(Sender: TObject);
|
||||
procedure InsertDate(Sender: TObject);
|
||||
procedure setNULL1Click(Sender: TObject);
|
||||
procedure MenuTablelistColumnsClick(Sender: TObject);
|
||||
function QueryLoad( filename: String; ReplaceContent: Boolean = true ): Boolean;
|
||||
procedure DataGridChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
|
||||
procedure DataGridCreateEditor(Sender: TBaseVirtualTree; Node: PVirtualNode;
|
||||
@ -794,7 +793,6 @@ type
|
||||
function GetActiveDatabase: String;
|
||||
function GetSelectedTable: TDBObject;
|
||||
procedure SetSelectedDatabase(db: String);
|
||||
procedure SetVisibleListColumns( List: TVirtualStringTree; Columns: TStringList );
|
||||
procedure ToggleFilterPanel(ForceVisible: Boolean = False);
|
||||
procedure AutoCalcColWidth(Tree: TVirtualStringTree; Column: TColumnIndex);
|
||||
procedure PlaceObjectEditor(Obj: TDBObject);
|
||||
@ -1124,7 +1122,6 @@ end;
|
||||
procedure TMainForm.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
menuitem : TMenuItem;
|
||||
datafontname, WinState: String;
|
||||
datafontsize : Integer;
|
||||
DisableProcessWindowsGhostingProc: procedure;
|
||||
@ -1308,19 +1305,6 @@ begin
|
||||
Action.ShortCut := GetRegValue(REGPREFIX_SHORTCUT1+Action.Name, Action.ShortCut);
|
||||
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
|
||||
ProgressBarStatus.Parent := StatusBar;
|
||||
ProgressBarStatus.Visible := False;
|
||||
@ -5641,27 +5625,6 @@ begin
|
||||
raise Exception.Create('Assertion failed: Invalid global VT array.');
|
||||
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
|
||||
@ -5747,7 +5710,12 @@ begin
|
||||
Value := GetRegValue(REGPREFIX_COLSVISIBLE + Regname, '');
|
||||
if Value <> '' then begin
|
||||
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;
|
||||
|
||||
// Column position
|
||||
@ -5767,25 +5735,6 @@ begin
|
||||
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.
|
||||
Called either in FormShow or after closing preferences dialog
|
||||
@ -5915,14 +5864,6 @@ end;
|
||||
procedure TMainForm.vstHeaderDraggedOut(Sender: TVTHeader; Column:
|
||||
TColumnIndex; DropPosition: TPoint);
|
||||
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
|
||||
Sender.Columns[Column].Options := Sender.Columns[Column].Options - [coVisible];
|
||||
end;
|
||||
|
Reference in New Issue
Block a user