mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-14 18:12:05 +08:00
Performance: Let TMainForm.RefreshHelperNode update only the active tab, not all open tabs. Do further calls to RefreshHelperNode when active tab gets switched. See https://www.heidisql.com/forum.php?t=37961
This commit is contained in:
@ -6034,6 +6034,11 @@ begin
|
||||
Exit;
|
||||
|
||||
tab := PageControlMain.ActivePage;
|
||||
// Query helpers need a hit here, since RefreshHelperNode now only does its update on the active tab
|
||||
// See https://www.heidisql.com/forum.php?t=37961
|
||||
RefreshHelperNode(TQueryTab.HelperNodeColumns);
|
||||
RefreshHelperNode(TQueryTab.HelperNodeSnippets);
|
||||
RefreshHelperNode(TQueryTab.HelperNodeHistory);
|
||||
|
||||
// Move focus to relevant controls in order for them to receive keyboard events.
|
||||
// Do this only if the user clicked the new tab. Not on automatic tab changes.
|
||||
@ -11433,6 +11438,7 @@ begin
|
||||
QueryTab.Uid := TQueryTab.GenerateUid;
|
||||
|
||||
QueryTab.TabSheet := TTabSheet.Create(PageControlMain);
|
||||
QueryTab.TabSheet.Name := tabQuery.Name + i.ToString;
|
||||
QueryTab.TabSheet.PageControl := PageControlMain;
|
||||
QueryTab.TabSheet.ImageIndex := tabQuery.ImageIndex;
|
||||
|
||||
@ -11448,6 +11454,7 @@ begin
|
||||
|
||||
// Dumb code which replicates all controls from tabQuery
|
||||
QueryTab.pnlMemo := TPanel.Create(QueryTab.TabSheet);
|
||||
QueryTab.pnlMemo.Name := pnlQueryMemo.Name + i.ToString;
|
||||
QueryTab.pnlMemo.Parent := QueryTab.TabSheet;
|
||||
QueryTab.pnlMemo.BevelOuter := pnlQueryMemo.BevelOuter;
|
||||
QueryTab.pnlMemo.Align := pnlQueryMemo.Align;
|
||||
@ -11455,6 +11462,7 @@ begin
|
||||
QueryTab.pnlMemo.Constraints := pnlQueryMemo.Constraints;
|
||||
|
||||
QueryTab.Memo := TSynMemo.Create(QueryTab.pnlMemo);
|
||||
QueryTab.Memo.Name := SynMemoQuery.Name + i.ToString;
|
||||
QueryTab.Memo.Parent := QueryTab.pnlMemo;
|
||||
QueryTab.Memo.Align := SynMemoQuery.Align;
|
||||
QueryTab.Memo.Constraints := SynMemoQuery.Constraints;
|
||||
@ -11487,6 +11495,7 @@ begin
|
||||
QueryTab.spltHelpers.Width := spltQueryHelpers.Width;
|
||||
|
||||
QueryTab.pnlHelpers := TPanel.Create(QueryTab.pnlMemo);
|
||||
QueryTab.pnlHelpers.Name := pnlQueryHelpers.Name + i.ToString;
|
||||
QueryTab.pnlHelpers.Parent := QueryTab.pnlMemo;
|
||||
QueryTab.pnlHelpers.Align := pnlQueryHelpers.Align;
|
||||
QueryTab.pnlHelpers.Constraints := pnlQueryHelpers.Constraints;
|
||||
@ -11495,6 +11504,7 @@ begin
|
||||
QueryTab.pnlHelpers.Width := pnlQueryHelpers.Width;
|
||||
|
||||
QueryTab.filterHelpers := TButtonedEdit.Create(QueryTab.pnlHelpers);
|
||||
QueryTab.filterHelpers.Name := filterQueryHelpers.Name + i.ToString;
|
||||
QueryTab.filterHelpers.Parent := QueryTab.pnlHelpers;
|
||||
QueryTab.filterHelpers.Align := filterQueryHelpers.Align;
|
||||
QueryTab.filterHelpers.TextHint := filterQueryHelpers.TextHint;
|
||||
@ -11507,6 +11517,7 @@ begin
|
||||
QueryTab.filterHelpers.OnRightButtonClick := filterQueryHelpers.OnRightButtonClick;
|
||||
|
||||
QueryTab.treeHelpers := TVirtualStringTree.Create(QueryTab.pnlHelpers);
|
||||
QueryTab.treeHelpers.Name := treeQueryHelpers.Name + i.ToString;
|
||||
QueryTab.treeHelpers.Parent := QueryTab.pnlHelpers;
|
||||
QueryTab.treeHelpers.Align := treeQueryHelpers.Align;
|
||||
QueryTab.treeHelpers.Left := treeQueryHelpers.Left;
|
||||
@ -11555,6 +11566,7 @@ begin
|
||||
QueryTab.ResultTabs := TResultTabs.Create(True);
|
||||
|
||||
QueryTab.tabsetQuery := TTabSet.Create(QueryTab.TabSheet);
|
||||
QueryTab.tabsetQuery.Name := tabsetQuery.Name + i.ToString;
|
||||
QueryTab.tabsetQuery.Parent := QueryTab.TabSheet;
|
||||
// Prevent various problems with alignment of controls. See http://www.heidisql.com/forum.php?t=18924
|
||||
QueryTab.tabsetQuery.Top := QueryTab.spltQuery.Top + QueryTab.spltQuery.Height;
|
||||
@ -13489,7 +13501,9 @@ begin
|
||||
if not Assigned(QueryTabs) then
|
||||
Exit;
|
||||
Conn := ActiveConnection;
|
||||
for Tab in QueryTabs do begin
|
||||
Tab := QueryTabs.ActiveTab;
|
||||
if Tab = nil then
|
||||
Exit;
|
||||
Node := FindNode(Tab.treeHelpers, NodeIndex, nil);
|
||||
// Store node + children states
|
||||
OldStates := Node.States;
|
||||
@ -13524,7 +13538,6 @@ begin
|
||||
ExpandedChildren.Free;
|
||||
Tab.treeHelpers.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TMainForm.ApplicationEvents1Deactivate(Sender: TObject);
|
||||
|
Reference in New Issue
Block a user