mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-13 05:29:26 +02:00
Designer: Simplify code.
git-svn-id: trunk@45460 -
This commit is contained in:
parent
89f98718d1
commit
7138d69f4a
@ -105,7 +105,6 @@ type
|
||||
FGridColor: TColor;
|
||||
FLookupRoot: TComponent;
|
||||
FMediator: TDesignerMediator;
|
||||
FFreeComponent: boolean;
|
||||
FOnPastedComponents: TOnPastedComponents;
|
||||
FProcessingDesignerEvent: Integer;
|
||||
FOnActivated: TNotifyEvent;
|
||||
@ -275,10 +274,8 @@ type
|
||||
ControlSelection : TControlSelection;
|
||||
DDC: TDesignerDeviceContext;
|
||||
|
||||
constructor Create(TheDesignerForm: TCustomForm;
|
||||
AControlSelection: TControlSelection);
|
||||
constructor Create(TheDesignerForm: TCustomForm; AControlSelection: TControlSelection);
|
||||
procedure PrepareFreeDesigner(AFreeComponent: boolean);
|
||||
procedure FinalizeFreeDesigner;
|
||||
procedure DisconnectComponent; override;
|
||||
destructor Destroy; override;
|
||||
|
||||
@ -672,18 +669,11 @@ end;
|
||||
|
||||
procedure TDesigner.PrepareFreeDesigner(AFreeComponent: boolean);
|
||||
begin
|
||||
FFreeComponent:=AFreeComponent;
|
||||
end;
|
||||
|
||||
procedure TDesigner.FinalizeFreeDesigner;
|
||||
begin
|
||||
//debugln(['TDesigner.FinalizeFreeDesigner Self=',dbgs(Pointer(Self))]);
|
||||
// was FinalizeFreeDesigner
|
||||
Include(FFlags, dfDestroyingForm);
|
||||
if FLookupRoot is TComponent then
|
||||
begin
|
||||
// free or hide the form
|
||||
TheFormEditor.DeleteComponent(TComponent(FLookupRoot),FFreeComponent);
|
||||
end;
|
||||
TheFormEditor.DeleteComponent(TComponent(FLookupRoot),AFreeComponent);
|
||||
DisconnectComponent;
|
||||
Free;
|
||||
end;
|
||||
|
@ -6359,15 +6359,6 @@ end;
|
||||
|
||||
function TLazSourceFileManager.CloseUnitComponent(AnUnitInfo: TUnitInfo;
|
||||
Flags: TCloseFlags): TModalResult;
|
||||
var
|
||||
OldDesigner: TDesigner;
|
||||
|
||||
procedure FreeDesigner(AFreeComponent: boolean);
|
||||
begin
|
||||
AnUnitInfo.LoadedDesigner:=false;
|
||||
OldDesigner.PrepareFreeDesigner(AFreeComponent);
|
||||
OldDesigner.FinalizeFreeDesigner;
|
||||
end;
|
||||
|
||||
procedure FreeUnusedComponents;
|
||||
var
|
||||
@ -6388,6 +6379,7 @@ var
|
||||
end;
|
||||
|
||||
var
|
||||
OldDesigner: TDesigner;
|
||||
AForm: TCustomForm;
|
||||
LookupRoot: TComponent;
|
||||
ComponentStillUsed: Boolean;
|
||||
@ -6424,9 +6416,10 @@ begin
|
||||
end;
|
||||
|
||||
AForm:=FormEditor1.GetDesignerForm(LookupRoot);
|
||||
OldDesigner:=nil;
|
||||
if AForm<>nil then
|
||||
OldDesigner:=TDesigner(AForm.Designer);
|
||||
OldDesigner:=TDesigner(AForm.Designer)
|
||||
else
|
||||
OldDesigner:=nil;
|
||||
if MainIDE.LastFormActivated=AForm then
|
||||
MainIDE.LastFormActivated:=nil;
|
||||
ComponentStillUsed:=(not (cfCloseDependencies in Flags))
|
||||
@ -6456,19 +6449,20 @@ begin
|
||||
end;
|
||||
end else begin
|
||||
// component with designer
|
||||
AnUnitInfo.LoadedDesigner:=false;
|
||||
if ComponentStillUsed then begin
|
||||
// free designer, keep component hidden
|
||||
{$IFDEF VerboseIDEMultiForm}
|
||||
DebugLn(['TLazSourceFileManager.CloseUnitComponent hiding component and freeing designer: ',AnUnitInfo.Filename,' ',DbgSName(AnUnitInfo.Component)]);
|
||||
{$ENDIF}
|
||||
FreeDesigner(false);
|
||||
OldDesigner.PrepareFreeDesigner(false);
|
||||
end else begin
|
||||
// free designer and design form
|
||||
{$IFDEF VerboseIDEMultiForm}
|
||||
DebugLn(['TLazSourceFileManager.CloseUnitComponent freeing component and designer: ',AnUnitInfo.Filename,' ',DbgSName(AnUnitInfo.Component)]);
|
||||
{$ENDIF}
|
||||
try
|
||||
FreeDesigner(true);
|
||||
OldDesigner.PrepareFreeDesigner(true);
|
||||
finally
|
||||
AnUnitInfo.Component:=nil;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user