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