IDE: Remember active PageIndex of ComponentList between sessions. Test for NoComponentListTreeExpand.

git-svn-id: trunk@64336 -
This commit is contained in:
juha 2021-01-05 15:08:30 +00:00
parent 858cdf7813
commit 5ea010dc3a
2 changed files with 14 additions and 10 deletions

View File

@ -36,6 +36,8 @@ uses
// LCL
LCLType, Forms, Controls, Graphics, StdCtrls, ExtCtrls, ComCtrls, Menus, Buttons,
Dialogs, ImgList,
// LazUtils
LazLoggerBase,
// LazControls
TreeFilterEdit,
// IdeIntf
@ -49,7 +51,6 @@ type
TComponentListForm = class(TForm)
chbKeepOpen: TCheckBox;
ListTree: TTreeView;
ButtonPanel: TPanel;
miCollapse: TMenuItem;
miCollapseAll: TMenuItem;
@ -59,6 +60,7 @@ type
LabelSearch: TLabel;
PageControl: TPageControl;
FilterPanel: TPanel;
ListTree: TTreeView;
PalletteTree: TTreeView;
InheritanceTree: TTreeView;
pnPaletteTree: TPanel;
@ -90,7 +92,6 @@ type
procedure FormKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
procedure SelectionToolButtonClick(Sender: TObject);
private
PrevPageIndex: Integer;
PrevChangeStamp: Integer;
// List for Component inheritence view
FClassList: TStringList;
@ -154,7 +155,6 @@ begin
ListTree.Images := TPkgComponent.Images;
PalletteTree.Images := TPkgComponent.Images;
InheritanceTree.Images := TPkgComponent.Images;
PrevPageIndex := -1;
PageControl.ActivePage := TabSheetList;
if Assigned(IDEComponentPalette) then
begin
@ -163,8 +163,8 @@ begin
IDEComponentPalette.AddHandlerSelectionChanged(@SelectionWasChanged);
IDEComponentPalette.AddHandlerComponentAdded(@ComponentWasAdded);
end;
chbKeepOpen.Checked := EnvironmentOptions.ComponentListKeepOpen;
PageControl.PageIndex := EnvironmentOptions.ComponentListPageIndex;
end;
procedure TComponentListForm.AddSelectedComponent;
@ -437,9 +437,11 @@ begin
DoComponentInheritence(Comp);
end;
end;
PalletteTree.FullExpand;
InheritanceTree.AlphaSort;
InheritanceTree.FullExpand;
{$IFnDEF NoComponentListTreeExpand}
InheritanceTree.FullExpand; // Some users may not want the trees expanded.
PalletteTree.FullExpand;
{$ENDIF}
PrevChangeStamp := IDEComponentPalette.ChangeStamp;
finally
FClassList.Free;
@ -501,10 +503,8 @@ end;
procedure TComponentListForm.PageControlChange(Sender: TObject);
begin
DebugLn(['TComponentListForm.PageControlChange: Start']);
FPageControlChange := True;
Assert(PageControl.PageIndex <> PrevPageIndex, Format(
'TComponentListForm.PageControlChange: PageControl.PageIndex = PrevPageIndex = %d',
[PrevPageIndex]));
case PageControl.PageIndex of
0: begin
TreeFilterEd.FilteredTreeview := ListTree;
@ -520,7 +520,7 @@ begin
end;
end;
TreeFilterEd.InvalidateFilter;
PrevPageIndex := PageControl.PageIndex;
EnvironmentOptions.ComponentListPageIndex := PageControl.PageIndex;
FActiveTree.BeginUpdate;
tmDeselect.Enabled := True;
end;

View File

@ -715,6 +715,7 @@ type
//component list
FComponentListKeepOpen: Boolean;
FComponentListPageIndex: Integer;
// Desktop
FDesktops: TDesktopOptList;
@ -1039,6 +1040,7 @@ type
//component list
property ComponentListKeepOpen: Boolean read FComponentListKeepOpen write FComponentListKeepOpen;
property ComponentListPageIndex: Integer read FComponentListPageIndex write FComponentListPageIndex;
// glyphs
property ShowButtonGlyphs: TApplicationShowGlyphs read FShowButtonGlyphs write FShowButtonGlyphs;
@ -2658,6 +2660,7 @@ begin
//component list
FComponentListKeepOpen:=FXMLCfg.GetValue(Path+'ComponentList/KeepOpen',false);
FComponentListPageIndex:=FXMLCfg.GetValue(Path+'ComponentList/PageIndex',0);
// glyphs
FShowButtonGlyphs := TApplicationShowGlyphs(FXMLCfg.GetValue(Path+'ShowButtonGlyphs/Value',
@ -3026,6 +3029,7 @@ begin
//component list
FXMLCfg.SetDeleteValue(Path+'ComponentList/KeepOpen',FComponentListKeepOpen,false);
FXMLCfg.SetDeleteValue(Path+'ComponentList/PageIndex',FComponentListPageIndex,0);
// glyphs
FXMLCfg.SetDeleteValue(Path+'ShowButtonGlyphs/Value',Ord(FShowButtonGlyphs), Ord(sbgSystem));