IDE: Update component list to match the layout of component palette, triggered when window is activated.

git-svn-id: trunk@47231 -
This commit is contained in:
juha 2014-12-21 13:00:29 +00:00
parent 30724bdc59
commit 4d92d2ec5b
4 changed files with 28 additions and 6 deletions

View File

@ -181,6 +181,7 @@ type
FHideControls: boolean;
FUpdateLock: integer;
fChanged: boolean;
fChangeStamp: integer;
procedure AddHandler(HandlerType: TComponentPaletteHandlerType;
const AMethod: TMethod; AsLast: boolean = false);
procedure RemoveHandler(HandlerType: TComponentPaletteHandlerType;
@ -217,6 +218,7 @@ type
procedure BeginUpdate(Change: boolean);
procedure EndUpdate;
function IsUpdateLocked: boolean;
function IncChangeStamp: integer;
procedure DoAfterComponentAdded; virtual;
function IndexOfPageName(const APageName: string): integer;
function IndexOfPageWithName(const APageName: string): integer;
@ -244,15 +246,16 @@ type
public
property Pages: TBaseComponentPageList read fPages;
property Comps: TRegisteredComponentList read fComps;
property OrigPagePriorities: TPagePriorityList read fOrigPagePriorities;
property BaseComponentPageClass: TBaseComponentPageClass read FBaseComponentPageClass;
property RegisteredComponentClass: TRegisteredComponentClass
read FRegisteredComponentClass;
property UpdateLock: integer read FUpdateLock;
property ChangeStamp: integer read fChangeStamp;
property OnBeginUpdate: TNotifyEvent read FOnBeginUpdate write FOnBeginUpdate;
property OnEndUpdate: TEndUpdatePaletteEvent read FOnEndUpdate write FOnEndUpdate;
property HideControls: boolean read FHideControls write FHideControls;
property Selected: TRegisteredComponent read GetSelected write SetSelected;
property OrigPagePriorities: TPagePriorityList read fOrigPagePriorities;
end;
@ -720,6 +723,11 @@ begin
Result:=FUpdateLock>0;
end;
function TBaseComponentPalette.IncChangeStamp: integer;
begin
Inc(fChangeStamp);
end;
procedure TBaseComponentPalette.DoAfterComponentAdded;
var
i: Integer;

View File

@ -7,6 +7,7 @@ object ComponentListForm: TComponentListForm
ClientHeight = 467
ClientWidth = 300
KeyPreview = True
OnActivate = FormActivate
OnClose = FormClose
OnKeyDown = FormKeyDown
OnShow = FormShow

View File

@ -58,6 +58,7 @@ type
InheritanceTree: TTreeView;
PalletteTree: TTreeView;
TreeFilterEd: TTreeFilterEdit;
procedure FormActivate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure OKButtonClick(Sender: TObject);
procedure ComponentsDblClick(Sender: TObject);
@ -73,6 +74,7 @@ type
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
PrevPageIndex: Integer;
PrevChangeStamp: Integer;
// List for Component inheritence view
FClassList: TStringList;
FKeepSelected: Boolean;
@ -114,11 +116,14 @@ begin
PalletteTree.Images:=ListTree.Images;
PrevPageIndex := -1;
PageControl.ActivePage := TabSheetList;
UpdateComponentSelection;
with ListTree do
Selected := Items.GetFirstNode;
TreeFilterEd.InvalidateFilter;
IDEComponentPalette.AddHandlerComponentAdded(@ComponentWasAdded);
if Assigned(IDEComponentPalette) then
begin
UpdateComponentSelection;
with ListTree do
Selected := Items.GetFirstNode;
TreeFilterEd.InvalidateFilter;
IDEComponentPalette.AddHandlerComponentAdded(@ComponentWasAdded);
end;
end;
destructor TComponentListForm.Destroy;
@ -146,6 +151,12 @@ begin
PageControl.AnchorSideBottom.Side := asrBottom;
end;
procedure TComponentListForm.FormActivate(Sender: TObject);
begin
if Assigned(IDEComponentPalette) and (IDEComponentPalette.ChangeStamp<>PrevChangeStamp) then
UpdateComponentSelection;
end;
procedure TComponentListForm.ClearSelection;
begin
ListTree.Selected := Nil;
@ -278,6 +289,7 @@ begin
PalletteTree.FullExpand;
InheritanceTree.AlphaSort;
InheritanceTree.FullExpand;
PrevChangeStamp := IDEComponentPalette.ChangeStamp;
finally
FClassList.Free;
InheritanceTree.Items.EndUpdate;

View File

@ -204,6 +204,7 @@ procedure TCompPaletteOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
begin
if not fConfigChanged then Exit;
ActualWriteSettings((AOptions as TEnvironmentOptions).ComponentPaletteOptions);
IDEComponentPalette.IncChangeStamp;
end;
procedure TCompPaletteOptionsFrame.ActualWriteSettings(cpo: TCompPaletteOptions);