mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
Use DBtree's events in a similar tree, to remove redundant code. Fixes wrong node icons for routines and triggers.
This commit is contained in:
@ -68,27 +68,36 @@ object frmSelectDBObject: TfrmSelectDBObject
|
|||||||
Width = 216
|
Width = 216
|
||||||
Height = 184
|
Height = 184
|
||||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||||
Header.AutoSizeIndex = -1
|
Header.AutoSizeIndex = 0
|
||||||
Header.DefaultHeight = 17
|
Header.DefaultHeight = 17
|
||||||
Header.Font.Charset = DEFAULT_CHARSET
|
Header.Font.Charset = DEFAULT_CHARSET
|
||||||
Header.Font.Color = clWindowText
|
Header.Font.Color = clWindowText
|
||||||
Header.Font.Height = -11
|
Header.Font.Height = -11
|
||||||
Header.Font.Name = 'Tahoma'
|
Header.Font.Name = 'Tahoma'
|
||||||
Header.Font.Style = []
|
Header.Font.Style = []
|
||||||
Header.MainColumn = -1
|
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoShowSortGlyphs]
|
||||||
Header.Options = [hoColumnResize, hoDrag]
|
|
||||||
Images = MainForm.PngImageListMain
|
Images = MainForm.PngImageListMain
|
||||||
Indent = 16
|
Indent = 16
|
||||||
Margin = 2
|
Margin = 2
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
TreeOptions.PaintOptions = [toHideFocusRect, toHotTrack, toShowButtons, toShowDropmark, toShowRoot, toShowTreeLines, toThemeAware, toUseBlendedImages, toUseExplorerTheme, toHideTreeLinesIfThemed]
|
TreeOptions.PaintOptions = [toHideFocusRect, toHotTrack, toShowButtons, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages, toUseExplorerTheme, toHideTreeLinesIfThemed]
|
||||||
OnFocusChanged = TreeDBOFocusChanged
|
OnFocusChanged = TreeDBOFocusChanged
|
||||||
OnGetText = TreeDBOGetText
|
OnGetText = TreeDBOGetText
|
||||||
OnGetImageIndex = TreeDBOGetImageIndex
|
OnGetImageIndex = TreeDBOGetImageIndex
|
||||||
OnGetNodeDataSize = TreeDBOGetNodeDataSize
|
OnGetNodeDataSize = TreeDBOGetNodeDataSize
|
||||||
OnInitChildren = TreeDBOInitChildren
|
OnInitChildren = TreeDBOInitChildren
|
||||||
OnInitNode = TreeDBOInitNode
|
OnInitNode = TreeDBOInitNode
|
||||||
Columns = <>
|
Columns = <
|
||||||
|
item
|
||||||
|
Position = 0
|
||||||
|
Width = 212
|
||||||
|
WideText = 'Name'
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coAllowFocus]
|
||||||
|
Position = 1
|
||||||
|
WideText = 'Size'
|
||||||
|
end>
|
||||||
end
|
end
|
||||||
object btnOK: TButton
|
object btnOK: TButton
|
||||||
Left = 68
|
Left = 68
|
||||||
|
@ -106,7 +106,7 @@ end;
|
|||||||
procedure TfrmSelectDBObject.FormShow(Sender: TObject);
|
procedure TfrmSelectDBObject.FormShow(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
TreeDBO.Clear;
|
TreeDBO.Clear;
|
||||||
TreeDBO.RootNodeCount := Mainform.Databases.Count;
|
TreeDBO.RootNodeCount := Mainform.DBtree.RootNodeCount;
|
||||||
SetLength(FColumns, Mainform.Databases.Count);
|
SetLength(FColumns, Mainform.Databases.Count);
|
||||||
// TreeDBO.OnFocusChanged(TreeDBO, TreeDBO.FocusedNode, 0);
|
// TreeDBO.OnFocusChanged(TreeDBO, TreeDBO.FocusedNode, 0);
|
||||||
editDB.Clear;
|
editDB.Clear;
|
||||||
@ -135,12 +135,12 @@ begin
|
|||||||
editTable.Clear;
|
editTable.Clear;
|
||||||
editCol.Clear;
|
editCol.Clear;
|
||||||
if Assigned(Node) then case TreeDBO.GetNodeLevel(Node) of
|
if Assigned(Node) then case TreeDBO.GetNodeLevel(Node) of
|
||||||
0: editDB.Text := TreeDBO.Text[Node, 0];
|
1: editDB.Text := TreeDBO.Text[Node, 0];
|
||||||
1: begin
|
2: begin
|
||||||
editDB.Text := TreeDBO.Text[Node.Parent, 0];
|
editDB.Text := TreeDBO.Text[Node.Parent, 0];
|
||||||
editTable.Text := TreeDBO.Text[Node, 0];
|
editTable.Text := TreeDBO.Text[Node, 0];
|
||||||
end;
|
end;
|
||||||
2: begin
|
3: begin
|
||||||
editDB.Text := TreeDBO.Text[Node.Parent.Parent, 0];
|
editDB.Text := TreeDBO.Text[Node.Parent.Parent, 0];
|
||||||
editTable.Text := TreeDBO.Text[Node.Parent, 0];
|
editTable.Text := TreeDBO.Text[Node.Parent, 0];
|
||||||
editCol.Text := TreeDBO.Text[Node, 0];
|
editCol.Text := TreeDBO.Text[Node, 0];
|
||||||
@ -162,21 +162,10 @@ end;
|
|||||||
procedure TfrmSelectDBObject.TreeDBOGetImageIndex(Sender: TBaseVirtualTree;
|
procedure TfrmSelectDBObject.TreeDBOGetImageIndex(Sender: TBaseVirtualTree;
|
||||||
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted:
|
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; var Ghosted:
|
||||||
Boolean; var ImageIndex: Integer);
|
Boolean; var ImageIndex: Integer);
|
||||||
var
|
|
||||||
DBObjects: TDBObjectList;
|
|
||||||
begin
|
begin
|
||||||
case Sender.GetNodeLevel(Node) of
|
Mainform.DBtreeGetImageIndex(Sender, Node, Kind, Column, Ghosted, ImageIndex);
|
||||||
0: ImageIndex := ICONINDEX_DB;
|
if Sender.GetNodeLevel(Node) = 3 then
|
||||||
1: begin
|
ImageIndex := ICONINDEX_FIELD;
|
||||||
DBObjects := Mainform.Connection.GetDBObjects(Mainform.Databases[Node.Parent.Index]);
|
|
||||||
case DBObjects[Node.Index].NodeType of
|
|
||||||
lntCrashedTable: ImageIndex := ICONINDEX_CRASHED_TABLE;
|
|
||||||
lntTable: ImageIndex := ICONINDEX_TABLE;
|
|
||||||
lntView: ImageIndex := ICONINDEX_VIEW;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
2: ImageIndex := ICONINDEX_FIELD;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -194,13 +183,10 @@ var
|
|||||||
cols: TWideStringList;
|
cols: TWideStringList;
|
||||||
begin
|
begin
|
||||||
// Fetch sub nodes
|
// Fetch sub nodes
|
||||||
|
Mainform.DBtreeInitChildren(Sender, Node, ChildCount);
|
||||||
case Sender.GetNodeLevel(Node) of
|
case Sender.GetNodeLevel(Node) of
|
||||||
0: begin // DB expanding
|
1: SetLength(FColumns[Node.Index], ChildCount);
|
||||||
DBObjects := Mainform.Connection.GetDBObjects(Mainform.Databases[Node.Index]);
|
2: begin // Table expanding
|
||||||
ChildCount := DBObjects.Count;
|
|
||||||
SetLength(FColumns[Node.Index], DBObjects.Count);
|
|
||||||
end;
|
|
||||||
1: begin // Table expanding
|
|
||||||
DBObjects := Mainform.Connection.GetDBObjects(Mainform.Databases[Node.Parent.Index]);
|
DBObjects := Mainform.Connection.GetDBObjects(Mainform.Databases[Node.Parent.Index]);
|
||||||
cols := Mainform.Connection.GetCol('SHOW COLUMNS FROM '
|
cols := Mainform.Connection.GetCol('SHOW COLUMNS FROM '
|
||||||
+ Mainform.mask(Mainform.Databases[Node.Parent.Index])+'.'
|
+ Mainform.mask(Mainform.Databases[Node.Parent.Index])+'.'
|
||||||
@ -216,17 +202,10 @@ end;
|
|||||||
procedure TfrmSelectDBObject.TreeDBOGetText(Sender: TBaseVirtualTree; Node:
|
procedure TfrmSelectDBObject.TreeDBOGetText(Sender: TBaseVirtualTree; Node:
|
||||||
PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText:
|
PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText:
|
||||||
WideString);
|
WideString);
|
||||||
var
|
|
||||||
DBObjects: TDBObjectList;
|
|
||||||
begin
|
begin
|
||||||
case Sender.GetNodeLevel(Node) of
|
Mainform.DBtreeGetText(Sender, Node, Column, TextType, CellText);
|
||||||
0: CellText := Mainform.Databases[Node.Index];
|
if Sender.GetNodeLevel(Node) = 3 then
|
||||||
1: begin
|
CellText := FColumns[Node.Parent.Parent.Index][Node.Parent.Index][Node.Index];
|
||||||
DBObjects := Mainform.Connection.GetDBObjects(Mainform.Databases[Node.Parent.Index]);
|
|
||||||
CellText := DBObjects[Node.Index].Name
|
|
||||||
end;
|
|
||||||
2: CellText := FColumns[Node.Parent.Parent.Index][Node.Parent.Index][Node.Index];
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -234,7 +213,8 @@ procedure TfrmSelectDBObject.TreeDBOInitNode(Sender: TBaseVirtualTree;
|
|||||||
ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
|
ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
|
||||||
begin
|
begin
|
||||||
// Ensure plus sign is visible for dbs and tables
|
// Ensure plus sign is visible for dbs and tables
|
||||||
if Sender.GetNodeLevel(Node) in [0,1] then
|
Mainform.DBtreeInitNode(Sender, ParentNode, Node, InitialStates);
|
||||||
|
if Sender.GetNodeLevel(Node) = 2 then
|
||||||
InitialStates := InitialStates + [ivsHasChildren];
|
InitialStates := InitialStates + [ivsHasChildren];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user