mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 13:39:30 +02:00
Simplify the component palette update system after packages are loaded.
git-svn-id: trunk@48310 -
This commit is contained in:
parent
0fc74606c5
commit
1efe3b0e31
@ -216,8 +216,6 @@ type
|
||||
procedure CacheOrigComponentPages;
|
||||
function CreatePagesFromUserOrder: Boolean;
|
||||
procedure DoChange; virtual;
|
||||
procedure DoBeginUpdate; virtual;
|
||||
procedure DoEndUpdate(Changed: boolean); virtual;
|
||||
procedure OnPageAddedComponent({%H-}Component: TRegisteredComponent); virtual;
|
||||
procedure OnPageRemovedComponent({%H-}Page: TBaseComponentPage;
|
||||
{%H-}Component: TRegisteredComponent); virtual;
|
||||
@ -267,10 +265,7 @@ type
|
||||
property OrigPagePriorities: TPagePriorityList read fOrigPagePriorities;
|
||||
property ComponentPageClass: TBaseComponentPageClass read FComponentPageClass
|
||||
write FComponentPageClass;
|
||||
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;
|
||||
// User ordered + original pages and components.
|
||||
@ -876,16 +871,6 @@ begin
|
||||
Update(False);
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.DoBeginUpdate;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.DoEndUpdate(Changed: boolean);
|
||||
begin
|
||||
if Assigned(OnEndUpdate) then OnEndUpdate(Self,Changed);
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.OnPageAddedComponent(Component: TRegisteredComponent);
|
||||
begin
|
||||
DoChange;
|
||||
@ -924,19 +909,19 @@ end;
|
||||
procedure TBaseComponentPalette.BeginUpdate(Change: boolean);
|
||||
begin
|
||||
inc(FUpdateLock);
|
||||
if FUpdateLock=1 then begin
|
||||
fChanged:=Change;
|
||||
DoBeginUpdate;
|
||||
if Assigned(OnBeginUpdate) then OnBeginUpdate(Self);
|
||||
end else
|
||||
if FUpdateLock=1 then
|
||||
fChanged:=Change
|
||||
else
|
||||
fChanged:=fChanged or Change;
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.EndUpdate;
|
||||
begin
|
||||
if FUpdateLock<=0 then RaiseException('TBaseComponentPalette.EndUpdate');
|
||||
if FUpdateLock<=0 then
|
||||
RaiseException('TBaseComponentPalette.EndUpdate');
|
||||
dec(FUpdateLock);
|
||||
if FUpdateLock=0 then DoEndUpdate(fChanged);
|
||||
if (FUpdateLock=0) and fChanged then
|
||||
Update(False);
|
||||
end;
|
||||
|
||||
function TBaseComponentPalette.IsUpdateLocked: boolean;
|
||||
|
@ -101,7 +101,6 @@ type
|
||||
fComponentButtons: TComponentButtonMap;
|
||||
// Visual container for tabs
|
||||
FPageControl: TPageControl;
|
||||
fNoteBookNeedsUpdate: boolean;
|
||||
FOnOpenPackage: TNotifyEvent;
|
||||
FOnOpenUnit: TNotifyEvent;
|
||||
FOnClassSelected: TNotifyEvent;
|
||||
@ -137,7 +136,6 @@ type
|
||||
function GetSelectButtonIcon: TCustomBitmap;
|
||||
function SelectAButton(Button: TSpeedButton): boolean;
|
||||
protected
|
||||
procedure DoEndUpdate(Changed: boolean); override;
|
||||
procedure OnPageAddedComponent(Component: TRegisteredComponent); override;
|
||||
procedure OnPageRemovedComponent(Page: TBaseComponentPage;
|
||||
Component: TRegisteredComponent); override;
|
||||
@ -642,7 +640,6 @@ begin
|
||||
{$IFDEF VerboseComponentPalette}
|
||||
DebugLn(['TComponentPalette.SetPageControl, calling UpdateNoteBookButtons, ', AValue]);
|
||||
{$ENDIF}
|
||||
UpdateNoteBookButtons(False);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.SelectionToolClick(Sender: TObject);
|
||||
@ -798,17 +795,6 @@ begin
|
||||
PopupMenu.Items.Add(MenuItem);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.DoEndUpdate(Changed: boolean);
|
||||
begin
|
||||
if Changed or fNoteBookNeedsUpdate then begin
|
||||
{$IFDEF VerboseComponentPalette}
|
||||
DebugLn(['TComponentPalette.DoEndUpdate, calling UpdateNoteBookButtons, Changed=', Changed]);
|
||||
{$ENDIF}
|
||||
UpdateNoteBookButtons(False);
|
||||
end;
|
||||
inherited DoEndUpdate(Changed);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.OnPageMouseWheel(Sender: TObject; Shift: TShiftState;
|
||||
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
||||
begin
|
||||
@ -839,8 +825,7 @@ end;
|
||||
procedure TComponentPalette.Update(ForceUpdateAll: Boolean);
|
||||
begin
|
||||
{$IFDEF VerboseComponentPalette}
|
||||
DebugLn(['TComponentPalette.Update, calling UpdateNoteBookButtons, fUpdatingPageControl=',
|
||||
fUpdatingPageControl, ', fNoteBookNeedsUpdate=', fNoteBookNeedsUpdate]);
|
||||
DebugLn(['TComponentPalette.Update, calling UpdateNoteBookButtons, fUpdatingPageControl=', fUpdatingPageControl]);
|
||||
{$ENDIF}
|
||||
UpdateNoteBookButtons(ForceUpdateAll);
|
||||
end;
|
||||
@ -974,14 +959,8 @@ var
|
||||
Pg: TComponentPage;
|
||||
begin
|
||||
if fUpdatingPageControl then exit;
|
||||
if IsUpdateLocked then begin
|
||||
fNoteBookNeedsUpdate:=true;
|
||||
exit;
|
||||
end;
|
||||
if FPageControl=nil then begin
|
||||
fNoteBookNeedsUpdate:=false;
|
||||
exit;
|
||||
end;
|
||||
Assert(not IsUpdateLocked, 'TComponentPalette.UpdateNoteBookButtons: IsUpdateLocked');
|
||||
if FPageControl=Nil then exit;
|
||||
// lock
|
||||
fUpdatingPageControl:=true;
|
||||
FPageControl.DisableAlign;
|
||||
@ -1048,7 +1027,6 @@ begin
|
||||
finally
|
||||
// unlock
|
||||
fUpdatingPageControl:=false;
|
||||
fNoteBookNeedsUpdate:=false;
|
||||
FPageControl.EnableAlign;
|
||||
end;
|
||||
end;
|
||||
|
@ -150,8 +150,6 @@ type
|
||||
procedure MainIDEitmPackageLinksClicked(Sender: TObject);
|
||||
|
||||
// component palette
|
||||
procedure IDEComponentPaletteEndUpdate(Sender: TObject;
|
||||
PaletteChanged: boolean);
|
||||
procedure IDEComponentPaletteOpenPackage(Sender: TObject);
|
||||
procedure IDEComponentPaletteOpenUnit(Sender: TObject);
|
||||
|
||||
@ -215,7 +213,6 @@ type
|
||||
procedure SetRecentPackagesMenu; override;
|
||||
procedure AddToMenuRecentPackages(const Filename: string);
|
||||
procedure SaveSettings; override;
|
||||
procedure UpdateVisibleComponentPalette; override;
|
||||
procedure ProcessCommand(Command: word; var Handled: boolean); override;
|
||||
procedure OnSourceEditorPopupMenu(const AddMenuItemProc: TAddMenuItemProc); override;
|
||||
procedure TranslateResourceStrings; override;
|
||||
@ -465,13 +462,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.IDEComponentPaletteEndUpdate(Sender: TObject;
|
||||
PaletteChanged: boolean);
|
||||
begin
|
||||
if PaletteChanged then
|
||||
UpdateVisibleComponentPalette;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.IDEComponentPaletteOpenPackage(Sender: TObject);
|
||||
begin
|
||||
if (Sender=nil) or (not (Sender is TLazPackage)) then exit;
|
||||
@ -2913,7 +2903,6 @@ begin
|
||||
// componentpalette
|
||||
IDEComponentPalette:=TComponentPalette.Create;
|
||||
CompPalette:=TComponentPalette(IDEComponentPalette);
|
||||
CompPalette.OnEndUpdate:=@IDEComponentPaletteEndUpdate;
|
||||
CompPalette.OnOpenPackage:=@IDEComponentPaletteOpenPackage;
|
||||
CompPalette.OnOpenUnit:=@IDEComponentPaletteOpenUnit;
|
||||
|
||||
@ -3089,6 +3078,7 @@ begin
|
||||
PackageGraph.LoadStaticBasePackages;
|
||||
LoadStaticCustomPackages;
|
||||
LoadAutoInstallPackages;
|
||||
TComponentPalette(IDEComponentPalette).PageControl:=MainIDEBar.ComponentPageControl;
|
||||
finally
|
||||
IDEComponentPalette.EndUpdate;
|
||||
end;
|
||||
@ -3107,11 +3097,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.UpdateVisibleComponentPalette;
|
||||
begin
|
||||
TComponentPalette(IDEComponentPalette).PageControl:=MainIDEBar.ComponentPageControl;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.ProcessCommand(Command: word; var Handled: boolean);
|
||||
begin
|
||||
Handled:=true;
|
||||
|
Loading…
Reference in New Issue
Block a user