Designer: Simplify code.

git-svn-id: trunk@45460 -
This commit is contained in:
juha 2014-06-10 16:10:47 +00:00
parent 89f98718d1
commit 7138d69f4a
2 changed files with 10 additions and 26 deletions

View File

@ -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;

View File

@ -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;