mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-11 05:07:56 +02:00
IDE: Force update for all component palette pages after changing configuration.
git-svn-id: trunk@47218 -
This commit is contained in:
parent
651c16ed62
commit
2186ba086d
@ -227,7 +227,7 @@ type
|
||||
function FindButton(Button: TComponent): TRegisteredComponent;
|
||||
function CreateNewClassName(const Prefix: string): string;
|
||||
function IndexOfPageComponent(AComponent: TComponent): integer;
|
||||
procedure Update; virtual; abstract;
|
||||
procedure Update(ForceUpdateAll: Boolean); virtual; abstract;
|
||||
procedure IterateRegisteredClasses(Proc: TGetComponentClassEvent);
|
||||
procedure RegisterCustomIDEComponents(
|
||||
const RegisterProc: RegisterUnitComponentProc); virtual; abstract;
|
||||
@ -637,7 +637,7 @@ begin
|
||||
if FUpdateLock>0 then
|
||||
fChanged:=true
|
||||
else
|
||||
Update;
|
||||
Update(False);
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.DoBeginUpdate;
|
||||
|
@ -134,6 +134,8 @@ type
|
||||
fVisiblePageIndex: integer;
|
||||
// User ordered + original pages and components
|
||||
fUserOrder: TCompPaletteUserOrder;
|
||||
procedure ReAlignButtons(aSheet: TCustomPage);
|
||||
procedure UpdateNoteBookButtons(ForceUpdateAll: Boolean);
|
||||
//procedure AssociatePageComps(aPageInd: Integer; aCompNames: TStringList);
|
||||
function CreatePagesFromUserOrder: Boolean;
|
||||
procedure CacheOrigComponentPages;
|
||||
@ -168,14 +170,12 @@ type
|
||||
procedure Clear;
|
||||
procedure ClearButtons;
|
||||
procedure DoAfterComponentAdded; override;
|
||||
procedure ReAlignButtons(aSheet: TCustomPage);
|
||||
procedure UpdateNoteBookButtons;
|
||||
procedure OnGetNonVisualCompIcon(Sender: TObject;
|
||||
AComponent: TComponent; var Icon: TCustomBitmap);
|
||||
function FindComponent(const CompClassName: string): TRegisteredComponent; override;
|
||||
procedure RegisterCustomIDEComponents(
|
||||
const RegisterProc: RegisterUnitComponentProc); override;
|
||||
procedure Update; override;
|
||||
procedure Update(ForceUpdateAll: Boolean); override;
|
||||
procedure AssignOrigCompsForPage(DestComps: TStringList; PageName: string); override;
|
||||
procedure AssignOrigVisibleCompsForPage(DestComps: TStringList; PageName: string); override;
|
||||
function RefUserCompsForPage(PageName: string): TStringList; override;
|
||||
@ -702,7 +702,7 @@ begin
|
||||
{$IFDEF VerboseComponentPalette}
|
||||
DebugLn(['TComponentPalette.SetPageControl, calling UpdateNoteBookButtons, ', AValue]);
|
||||
{$ENDIF}
|
||||
UpdateNoteBookButtons;
|
||||
UpdateNoteBookButtons(False);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.SelectionToolClick(Sender: TObject);
|
||||
@ -869,7 +869,7 @@ begin
|
||||
{$IFDEF VerboseComponentPalette}
|
||||
DebugLn(['TComponentPalette.DoEndUpdate, calling UpdateNoteBookButtons, Changed=', Changed]);
|
||||
{$ENDIF}
|
||||
UpdateNoteBookButtons;
|
||||
UpdateNoteBookButtons(False);
|
||||
end;
|
||||
inherited DoEndUpdate(Changed);
|
||||
end;
|
||||
@ -966,13 +966,13 @@ begin
|
||||
Result := Nil;
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.Update;
|
||||
procedure TComponentPalette.Update(ForceUpdateAll: Boolean);
|
||||
begin
|
||||
{$IFDEF VerboseComponentPalette}
|
||||
DebugLn(['TComponentPalette.Update, calling UpdateNoteBookButtons, fUpdatingPageControl=',
|
||||
fUpdatingPageControl, ', fNoteBookNeedsUpdate=', fNoteBookNeedsUpdate]);
|
||||
{$ENDIF}
|
||||
UpdateNoteBookButtons;
|
||||
UpdateNoteBookButtons(ForceUpdateAll);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.CheckComponentDesignerVisible(
|
||||
@ -1173,7 +1173,7 @@ begin
|
||||
Application.ReleaseComponent(aSheet);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.UpdateNoteBookButtons;
|
||||
procedure TComponentPalette.UpdateNoteBookButtons(ForceUpdateAll: Boolean);
|
||||
var
|
||||
i: Integer;
|
||||
Pg: TComponentPage;
|
||||
@ -1215,16 +1215,23 @@ begin
|
||||
'UpdateNoteBookButtons: Page names do not match.');
|
||||
Pg := TComponentPage(Pages[i]);
|
||||
Pg.InsertVisiblePage(TStringList(fUserOrder.ComponentPages.Objects[i]));
|
||||
// Initially create GUI only for the active page.
|
||||
if ((fOldActivePage=Nil) and (i=0)) or (Pg.PageComponent=fOldActivePage) then
|
||||
Pg.ReAlignButtons;
|
||||
end;
|
||||
|
||||
// OldActivePage can be invalid if a user defined page is just deleted.
|
||||
if Assigned(fOldActivePage) and (FPageControl.IndexOf(fOldActivePage) = -1) then
|
||||
fOldActivePage := Nil;
|
||||
for i := Pages.Count-1 downto 0 do
|
||||
begin
|
||||
Pg := TComponentPage(Pages[i]);
|
||||
// During IDE start create GUI only for the active page.
|
||||
if ((fOldActivePage=Nil) and (i=0)) // First page is activated by default.
|
||||
or (Pg.PageComponent=fOldActivePage) // Previous active page will be restored.
|
||||
or (ForceUpdateAll) then // Forced after changing configuration.
|
||||
Pg.ReAlignButtons;
|
||||
end;
|
||||
// restore active page
|
||||
if fOldActivePage<>nil then begin
|
||||
Assert(FPageControl.IndexOf(fOldActivePage) >= 0, 'UpdateNoteBookButtons: fOldActivePage not found.');
|
||||
if Assigned(fOldActivePage) then
|
||||
FPageControl.ActivePage:=fOldActivePage
|
||||
end
|
||||
else if FPageControl.PageCount>0 then
|
||||
FPageControl.PageIndex:=0;
|
||||
finally
|
||||
|
@ -3693,7 +3693,7 @@ begin
|
||||
DebugLn(['* TMainIDE.UpdateIDEComponentPalette: Updating palette *',
|
||||
', HideControls=', IDEComponentPalette.HideControls]);
|
||||
{$ENDIF}
|
||||
IDEComponentPalette.Update;
|
||||
IDEComponentPalette.Update(False);
|
||||
TComponentPalette(IDEComponentPalette).OnClassSelected := @ComponentPaletteClassSelected;
|
||||
SetupHints;
|
||||
end;
|
||||
@ -4760,7 +4760,7 @@ begin
|
||||
// Update component palette only when needed.
|
||||
PaletteOpt := TCompPaletteOptionsFrame(IDEOptionsDialog.FindEditor(TCompPaletteOptionsFrame));
|
||||
if Assigned(PaletteOpt) and PaletteOpt.ConfigChanged then
|
||||
IDEComponentPalette.Update;
|
||||
IDEComponentPalette.Update(True);
|
||||
// Update TaskBarBehavior immediately.
|
||||
if EnvironmentOptions.SingleTaskBarButton then
|
||||
Application.TaskBarBehavior := tbSingleButton
|
||||
|
Loading…
Reference in New Issue
Block a user