mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-11 23:19:54 +02:00
IDE: update package editor when package is modified
git-svn-id: trunk@24896 -
This commit is contained in:
parent
5aabdea2e3
commit
72143c6008
@ -174,7 +174,7 @@ begin
|
|||||||
if HasRegisterProc then
|
if HasRegisterProc then
|
||||||
Include(FileFlags,pffHasRegisterProc);
|
Include(FileFlags,pffHasRegisterProc);
|
||||||
APackage.AddFile(Filename,Unit_Name,FileType,FileFlags,cpNormal);
|
APackage.AddFile(Filename,Unit_Name,FileType,FileFlags,cpNormal);
|
||||||
if APackage.Editor<>nil then APackage.Editor.UpdateAll;
|
if APackage.Editor<>nil then APackage.Editor.UpdateAll(true);
|
||||||
APackage.EndUpdate;
|
APackage.EndUpdate;
|
||||||
|
|
||||||
ModalResult:=mrOk;
|
ModalResult:=mrOk;
|
||||||
|
@ -802,7 +802,7 @@ type
|
|||||||
function GetLazPackage: TLazPackage; virtual;
|
function GetLazPackage: TLazPackage; virtual;
|
||||||
procedure SetLazPackage(const AValue: TLazPackage); virtual; abstract;
|
procedure SetLazPackage(const AValue: TLazPackage); virtual; abstract;
|
||||||
public
|
public
|
||||||
procedure UpdateAll; virtual; abstract;
|
procedure UpdateAll(Immediately: boolean); virtual; abstract;
|
||||||
property LazPackage: TLazPackage read GetLazPackage write SetLazPackage;
|
property LazPackage: TLazPackage read GetLazPackage write SetLazPackage;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2270,7 +2270,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLazPackage.SetModified(const AValue: boolean);
|
procedure TLazPackage.SetModified(const AValue: boolean);
|
||||||
|
var
|
||||||
|
OldModified: Boolean;
|
||||||
begin
|
begin
|
||||||
|
OldModified:=Modified;
|
||||||
if AValue and (FModifiedLock>0) then exit;
|
if AValue and (FModifiedLock>0) then exit;
|
||||||
if AValue then begin
|
if AValue then begin
|
||||||
Include(FFlags,lpfModified);
|
Include(FFlags,lpfModified);
|
||||||
@ -2283,6 +2286,8 @@ begin
|
|||||||
Exclude(FFlags,lpfSkipSaving);
|
Exclude(FFlags,lpfSkipSaving);
|
||||||
if not AValue then
|
if not AValue then
|
||||||
PublishOptions.Modified:=false;
|
PublishOptions.Modified:=false;
|
||||||
|
if (OldModified<>Modified) and (Editor<>nil) then
|
||||||
|
Editor.UpdateAll(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLazPackage.SetName(const AValue: string);
|
procedure TLazPackage.SetName(const AValue: string);
|
||||||
|
@ -187,6 +187,7 @@ type
|
|||||||
RemovedFilesNode: TTreeNode;
|
RemovedFilesNode: TTreeNode;
|
||||||
RemovedRequiredNode: TTreeNode;
|
RemovedRequiredNode: TTreeNode;
|
||||||
FPlugins: TStringList;
|
FPlugins: TStringList;
|
||||||
|
FNeedUpdateAll: boolean;
|
||||||
procedure SetupComponents;
|
procedure SetupComponents;
|
||||||
procedure UpdateTitle;
|
procedure UpdateTitle;
|
||||||
procedure UpdateButtons;
|
procedure UpdateButtons;
|
||||||
@ -202,6 +203,7 @@ type
|
|||||||
procedure ExtendUnitIncPathForNewUnit(const AnUnitFilename,
|
procedure ExtendUnitIncPathForNewUnit(const AnUnitFilename,
|
||||||
AnIncludeFile: string);
|
AnIncludeFile: string);
|
||||||
function CanBeAddedToProject: boolean;
|
function CanBeAddedToProject: boolean;
|
||||||
|
procedure IdleHandler(Sender: TObject; var Done: Boolean);
|
||||||
protected
|
protected
|
||||||
procedure SetLazPackage(const AValue: TLazPackage); override;
|
procedure SetLazPackage(const AValue: TLazPackage); override;
|
||||||
public
|
public
|
||||||
@ -216,7 +218,7 @@ type
|
|||||||
procedure DoSave(SaveAs: boolean);
|
procedure DoSave(SaveAs: boolean);
|
||||||
procedure DoSortFiles;
|
procedure DoSortFiles;
|
||||||
procedure DoOpenPkgFile(PkgFile: TPkgFile);
|
procedure DoOpenPkgFile(PkgFile: TPkgFile);
|
||||||
procedure UpdateAll; override;
|
procedure UpdateAll(Immediately: boolean); override;
|
||||||
public
|
public
|
||||||
property LazPackage: TLazPackage read FLazPackage write SetLazPackage;
|
property LazPackage: TLazPackage read FLazPackage write SetLazPackage;
|
||||||
end;
|
end;
|
||||||
@ -272,7 +274,7 @@ type
|
|||||||
function PublishPackage(APackage: TLazPackage): TModalResult;
|
function PublishPackage(APackage: TLazPackage): TModalResult;
|
||||||
function CompilePackage(APackage: TLazPackage;
|
function CompilePackage(APackage: TLazPackage;
|
||||||
CompileClean,CompileRequired: boolean): TModalResult;
|
CompileClean,CompileRequired: boolean): TModalResult;
|
||||||
procedure UpdateAllEditors;
|
procedure UpdateAllEditors(Immediately: boolean);
|
||||||
function InstallPackage(APackage: TLazPackage): TModalResult;
|
function InstallPackage(APackage: TLazPackage): TModalResult;
|
||||||
function UninstallPackage(APackage: TLazPackage): TModalResult;
|
function UninstallPackage(APackage: TLazPackage): TModalResult;
|
||||||
function ViewPkgSource(APackage: TLazPackage): TModalResult;
|
function ViewPkgSource(APackage: TLazPackage): TModalResult;
|
||||||
@ -395,7 +397,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
PkgFile.Filename:=AFilename;
|
PkgFile.Filename:=AFilename;
|
||||||
LazPackage.UnremovePkgFile(PkgFile);
|
LazPackage.UnremovePkgFile(PkgFile);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
Dependency:=GetCurrentDependency(Removed);
|
Dependency:=GetCurrentDependency(Removed);
|
||||||
@ -814,7 +816,7 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
LazPackage.RemoveFile(CurFile);
|
LazPackage.RemoveFile(CurFile);
|
||||||
end;
|
end;
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end else if ANode.Parent=RequiredPackagesNode then begin
|
end else if ANode.Parent=RequiredPackagesNode then begin
|
||||||
// get current dependency
|
// get current dependency
|
||||||
CurDependency:=LazPackage.RequiredDepByIndex(NodeIndex);
|
CurDependency:=LazPackage.RequiredDepByIndex(NodeIndex);
|
||||||
@ -965,7 +967,7 @@ procedure TPackageEditorForm.AddBitBtnClick(Sender: TObject);
|
|||||||
FNextSelectedPart := LazPackage.AddFile(UnitFilename,Unit_Name,
|
FNextSelectedPart := LazPackage.AddFile(UnitFilename,Unit_Name,
|
||||||
FileType,PkgFileFlags,cpNormal);
|
FileType,PkgFileFlags,cpNormal);
|
||||||
PackageEditors.DeleteAmbiguousFiles(LazPackage,AddParams.UnitFilename);
|
PackageEditors.DeleteAmbiguousFiles(LazPackage,AddParams.UnitFilename);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure AddVirtualUnit(AddParams: TAddToPkgResult);
|
procedure AddVirtualUnit(AddParams: TAddToPkgResult);
|
||||||
@ -974,7 +976,7 @@ procedure TPackageEditorForm.AddBitBtnClick(Sender: TObject);
|
|||||||
FNextSelectedPart := LazPackage.AddFile(UnitFilename,Unit_Name,FileType,
|
FNextSelectedPart := LazPackage.AddFile(UnitFilename,Unit_Name,FileType,
|
||||||
PkgFileFlags,cpNormal);
|
PkgFileFlags,cpNormal);
|
||||||
PackageEditors.DeleteAmbiguousFiles(LazPackage,AddParams.UnitFilename);
|
PackageEditors.DeleteAmbiguousFiles(LazPackage,AddParams.UnitFilename);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure AddNewComponent(AddParams: TAddToPkgResult);
|
procedure AddNewComponent(AddParams: TAddToPkgResult);
|
||||||
@ -990,7 +992,7 @@ procedure TPackageEditorForm.AddBitBtnClick(Sender: TObject);
|
|||||||
end;
|
end;
|
||||||
// open file in editor
|
// open file in editor
|
||||||
PackageEditors.CreateNewFile(Self,AddParams);
|
PackageEditors.CreateNewFile(Self,AddParams);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure AddRequiredPkg(AddParams: TAddToPkgResult);
|
procedure AddRequiredPkg(AddParams: TAddToPkgResult);
|
||||||
@ -1006,7 +1008,7 @@ procedure TPackageEditorForm.AddBitBtnClick(Sender: TObject);
|
|||||||
with AddParams do
|
with AddParams do
|
||||||
FNextSelectedPart := LazPackage.AddFile(UnitFilename,Unit_Name,FileType,
|
FNextSelectedPart := LazPackage.AddFile(UnitFilename,Unit_Name,FileType,
|
||||||
PkgFileFlags,cpNormal);
|
PkgFileFlags,cpNormal);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure AddNewFile(AddParams: TAddToPkgResult);
|
procedure AddNewFile(AddParams: TAddToPkgResult);
|
||||||
@ -1045,7 +1047,7 @@ procedure TPackageEditorForm.AddBitBtnClick(Sender: TObject);
|
|||||||
end;
|
end;
|
||||||
FNextSelectedPart := LazPackage.AddFile(NewFilename,NewUnitName,NewFileType,
|
FNextSelectedPart := LazPackage.AddFile(NewFilename,NewUnitName,NewFileType,
|
||||||
NewPkgFileFlags, cpNormal);
|
NewPkgFileFlags, cpNormal);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -1109,7 +1111,7 @@ begin
|
|||||||
if CurFile.AddToUsesPkgSection=AddToUsesPkgSectionCheckBox.Checked then exit;
|
if CurFile.AddToUsesPkgSection=AddToUsesPkgSectionCheckBox.Checked then exit;
|
||||||
CurFile.AddToUsesPkgSection:=AddToUsesPkgSectionCheckBox.Checked;
|
CurFile.AddToUsesPkgSection:=AddToUsesPkgSectionCheckBox.Checked;
|
||||||
LazPackage.Modified:=not Removed;
|
LazPackage.Modified:=not Removed;
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.AddToProjectClick(Sender: TObject);
|
procedure TPackageEditorForm.AddToProjectClick(Sender: TObject);
|
||||||
@ -1176,7 +1178,7 @@ begin
|
|||||||
if CurFile.HasRegisterProc=CallRegisterProcCheckBox.Checked then exit;
|
if CurFile.HasRegisterProc=CallRegisterProcCheckBox.Checked then exit;
|
||||||
CurFile.HasRegisterProc:=CallRegisterProcCheckBox.Checked;
|
CurFile.HasRegisterProc:=CallRegisterProcCheckBox.Checked;
|
||||||
LazPackage.Modified:=not Removed;
|
LazPackage.Modified:=not Removed;
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.ChangeFileTypeMenuItemClick(Sender: TObject);
|
procedure TPackageEditorForm.ChangeFileTypeMenuItemClick(Sender: TObject);
|
||||||
@ -1199,7 +1201,7 @@ begin
|
|||||||
if CurFile.FileType<>CurPFT then begin
|
if CurFile.FileType<>CurPFT then begin
|
||||||
CurFile.FileType:=CurPFT;
|
CurFile.FileType:=CurPFT;
|
||||||
LazPackage.Modified:=true;
|
LazPackage.Modified:=true;
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
@ -1259,7 +1261,7 @@ begin
|
|||||||
FLazPackage.Editor:=Self;
|
FLazPackage.Editor:=Self;
|
||||||
PackageEditors.ApplyLayout(Self);
|
PackageEditors.ApplyLayout(Self);
|
||||||
// update components
|
// update components
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
// show files
|
// show files
|
||||||
FilesNode.Expanded:=true;
|
FilesNode.Expanded:=true;
|
||||||
end;
|
end;
|
||||||
@ -1462,9 +1464,16 @@ begin
|
|||||||
FilesTreeView.AnchorToNeighbour(akBottom,0,FilePropsGroupBox);
|
FilesTreeView.AnchorToNeighbour(akBottom,0,FilePropsGroupBox);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.UpdateAll;
|
procedure TPackageEditorForm.UpdateAll(Immediately: boolean);
|
||||||
begin
|
begin
|
||||||
if LazPackage=nil then exit;
|
if LazPackage=nil then exit;
|
||||||
|
if not Immediately then begin
|
||||||
|
if FNeedUpdateAll then exit;
|
||||||
|
FNeedUpdateAll:=true;
|
||||||
|
Application.AddOnIdleHandler(@IdleHandler);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
FNeedUpdateAll:=false;
|
||||||
FilesTreeView.BeginUpdate;
|
FilesTreeView.BeginUpdate;
|
||||||
UpdateTitle;
|
UpdateTitle;
|
||||||
UpdateButtons;
|
UpdateButtons;
|
||||||
@ -1923,6 +1932,13 @@ begin
|
|||||||
Result:=PackageEditors.AddToProject(LazPackage,true)=mrOk;
|
Result:=PackageEditors.AddToProject(LazPackage,true)=mrOk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPackageEditorForm.IdleHandler(Sender: TObject; var Done: Boolean);
|
||||||
|
begin
|
||||||
|
if FNeedUpdateAll then
|
||||||
|
UpdateAll(true);
|
||||||
|
Application.RemoveOnIdleHandler(@IdleHandler);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.DoSave(SaveAs: boolean);
|
procedure TPackageEditorForm.DoSave(SaveAs: boolean);
|
||||||
begin
|
begin
|
||||||
PackageEditors.SavePackage(LazPackage,SaveAs);
|
PackageEditors.SavePackage(LazPackage,SaveAs);
|
||||||
@ -1947,13 +1963,13 @@ begin
|
|||||||
mtConfirmation,[mbYes,mbNo],0)<>mrYes
|
mtConfirmation,[mbYes,mbNo],0)<>mrYes
|
||||||
then exit;
|
then exit;
|
||||||
PackageEditors.RevertPackage(LazPackage);
|
PackageEditors.RevertPackage(LazPackage);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.DoPublishProject;
|
procedure TPackageEditorForm.DoPublishProject;
|
||||||
begin
|
begin
|
||||||
PackageEditors.PublishPackage(LazPackage);
|
PackageEditors.PublishPackage(LazPackage);
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.DoEditVirtualUnit;
|
procedure TPackageEditorForm.DoEditVirtualUnit;
|
||||||
@ -1964,7 +1980,7 @@ begin
|
|||||||
CurFile:=GetCurrentFile(Removed);
|
CurFile:=GetCurrentFile(Removed);
|
||||||
if (CurFile=nil) or Removed then exit;
|
if (CurFile=nil) or Removed then exit;
|
||||||
if ShowEditVirtualPackageDialog(CurFile)=mrOk then
|
if ShowEditVirtualPackageDialog(CurFile)=mrOk then
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditorForm.DoMoveCurrentFile(Offset: integer);
|
procedure TPackageEditorForm.DoMoveCurrentFile(Offset: integer);
|
||||||
@ -1994,7 +2010,7 @@ var
|
|||||||
begin
|
begin
|
||||||
TreeSelection:=StoreCurrentTreeSelection;
|
TreeSelection:=StoreCurrentTreeSelection;
|
||||||
LazPackage.SortFiles;
|
LazPackage.SortFiles;
|
||||||
UpdateAll;
|
UpdateAll(true);
|
||||||
ApplyTreeSelection(TreeSelection,true);
|
ApplyTreeSelection(TreeSelection,true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2294,11 +2310,11 @@ begin
|
|||||||
Result:=mrCancel;
|
Result:=mrCancel;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageEditors.UpdateAllEditors;
|
procedure TPackageEditors.UpdateAllEditors(Immediately: boolean);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
for i:=0 to Count-1 do Editors[i].UpdateAll;
|
for i:=0 to Count-1 do Editors[i].UpdateAll(Immediately);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPackageEditors.InstallPackage(APackage: TLazPackage): TModalResult;
|
function TPackageEditors.InstallPackage(APackage: TLazPackage): TModalResult;
|
||||||
|
@ -975,7 +975,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if GraphChanged then begin
|
if GraphChanged then begin
|
||||||
if PackageEditors<>nil then
|
if PackageEditors<>nil then
|
||||||
PackageEditors.UpdateAllEditors;
|
PackageEditors.UpdateAllEditors(false);
|
||||||
if ProjInspector<>nil then
|
if ProjInspector<>nil then
|
||||||
ProjInspector.UpdateItems;
|
ProjInspector.UpdateItems;
|
||||||
DoCallNotifyHandler(pihtGraphChanged,Self);
|
DoCallNotifyHandler(pihtGraphChanged,Self);
|
||||||
@ -2616,7 +2616,7 @@ begin
|
|||||||
AddFileToRecentPackages(APackage.Filename);
|
AddFileToRecentPackages(APackage.Filename);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if APackage.Editor<>nil then APackage.Editor.UpdateAll;
|
if APackage.Editor<>nil then APackage.Editor.UpdateAll(true);
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2862,7 +2862,7 @@ begin
|
|||||||
if Result<>mrYes then exit;
|
if Result<>mrYes then exit;
|
||||||
|
|
||||||
OldPkgFile.Filename:=NewFilename;
|
OldPkgFile.Filename:=NewFilename;
|
||||||
if OldPackage.Editor<>nil then OldPackage.Editor.UpdateAll;
|
if OldPackage.Editor<>nil then OldPackage.Editor.UpdateAll(true);
|
||||||
OldPackage.Modified:=true;
|
OldPackage.Modified:=true;
|
||||||
|
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
|
Loading…
Reference in New Issue
Block a user