mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-10 13:39:14 +02:00
started project inspector
git-svn-id: trunk@4079 -
This commit is contained in:
parent
4cd04fc129
commit
7f5b8c7441
@ -45,7 +45,8 @@ type
|
||||
nmiwUnitDependenciesName,
|
||||
nmiwCodeExplorerName,
|
||||
nmiwClipbrdHistoryName,
|
||||
nmiwPkgGraphExplorer
|
||||
nmiwPkgGraphExplorer,
|
||||
nmiwProjectInspector
|
||||
);
|
||||
|
||||
// form names for non modal IDE windows:
|
||||
@ -58,7 +59,8 @@ const
|
||||
'UnitDependencies',
|
||||
'CodeExplorer',
|
||||
'ClipBrdHistory',
|
||||
'PkgGraphExplorer'
|
||||
'PkgGraphExplorer',
|
||||
'ProjectInspector'
|
||||
);
|
||||
|
||||
type
|
||||
|
@ -177,11 +177,12 @@ const
|
||||
ecSaveProject = ecUserFirst + 703;
|
||||
ecSaveProjectAs = ecUserFirst + 704;
|
||||
ecPublishProject = ecUserFirst + 705;
|
||||
ecAddCurUnitToProj = ecUserFirst + 706;
|
||||
ecRemoveFromProj = ecUserFirst + 707;
|
||||
ecViewProjectSource = ecUserFirst + 708;
|
||||
ecViewProjectTodos = ecUserFirst + 709;
|
||||
ecProjectOptions = ecUserFirst + 710;
|
||||
ecProjectInspector = ecUserFirst + 706;
|
||||
ecAddCurUnitToProj = ecUserFirst + 707;
|
||||
ecRemoveFromProj = ecUserFirst + 708;
|
||||
ecViewProjectSource = ecUserFirst + 709;
|
||||
ecViewProjectTodos = ecUserFirst + 710;
|
||||
ecProjectOptions = ecUserFirst + 711;
|
||||
|
||||
// option commmands
|
||||
ecRunParameters = ecUserFirst + 800;
|
||||
@ -609,6 +610,7 @@ begin
|
||||
ecSaveProject : Result:= lisMenuSaveProject;
|
||||
ecSaveProjectAs : Result:= lisMenuSaveProjectAs;
|
||||
ecPublishProject : Result:= lisMenuPublishProject;
|
||||
ecProjectInspector : Result:= lisMenuProjectInspector;
|
||||
ecAddCurUnitToProj : Result:= lisMenuAddUnitToProject;
|
||||
ecRemoveFromProj : Result:= lisMenuRemoveUnitFromProject;
|
||||
ecViewProjectSource : Result:= lisMenuViewSource;
|
||||
@ -1445,6 +1447,7 @@ begin
|
||||
Add(C,'Save project',ecSaveProject,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Save project as',ecSaveProjectAs,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Publish project',ecPublishProject,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Project Inspector',ecProjectInspector,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'Add active unit to project',ecAddCurUnitToProj,VK_F11,[ssShift],VK_UNKNOWN,[]);
|
||||
Add(C,'Remove active unit from project',ecRemoveFromProj,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
Add(C,'View project source',ecViewProjectSource,VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
|
@ -188,6 +188,7 @@ resourcestring
|
||||
lisMenuSaveProject = 'Save Project';
|
||||
lisMenuSaveProjectAs = 'Save Project As...';
|
||||
lisMenuPublishProject = 'Publish Project';
|
||||
lisMenuProjectInspector = 'Project Inspector';
|
||||
lisMenuAddUnitToProject = 'Add active unit to Project';
|
||||
lisMenuRemoveUnitFromProject = 'Remove from Project';
|
||||
lisMenuViewSource = 'View Source';
|
||||
|
@ -262,6 +262,7 @@ type
|
||||
itmProjectSave: TMenuItem;
|
||||
itmProjectSaveAs: TMenuItem;
|
||||
itmProjectPublish: TMenuItem;
|
||||
itmProjectInspector: TMenuItem;
|
||||
itmProjectAddTo: TMenuItem;
|
||||
itmProjectRemoveFrom: TMenuItem;
|
||||
itmProjectViewSource: TMenuItem;
|
||||
@ -986,6 +987,14 @@ begin
|
||||
|
||||
mnuProject.Add(CreateMenuSeparator);
|
||||
|
||||
itmProjectInspector := TMenuItem.Create(Self);
|
||||
itmProjectInspector.Name:='itmProjectInspector';
|
||||
itmProjectInspector.Caption := lisMenuProjectInspector;
|
||||
itmProjectInspector.Graphic:=LoadPixmap('menu_projectinspector');
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuProject.Add(itmProjectInspector);
|
||||
{$ENDIF}
|
||||
|
||||
itmProjectAddTo := TMenuItem.Create(Self);
|
||||
itmProjectAddTo.Name:='itmProjectAddTo';
|
||||
itmProjectAddTo.Caption := lisMenuAddUnitToProject;
|
||||
@ -1095,6 +1104,7 @@ begin
|
||||
itmPkgOpenPackage := TMenuItem.Create(Self);
|
||||
itmPkgOpenPackage.Name:='itmPkgOpenPackage';
|
||||
itmPkgOpenPackage.Caption := lisMenuOpenPackage;
|
||||
itmPkgOpenPackage.Graphic:=LoadPixmap('pkg_package');
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuComponents.Add(itmPkgOpenPackage);
|
||||
{$ENDIF}
|
||||
@ -1102,6 +1112,7 @@ begin
|
||||
itmPkgOpenPackageFile := TMenuItem.Create(Self);
|
||||
itmPkgOpenPackageFile.Name:='itmPkgOpenPackageFile';
|
||||
itmPkgOpenPackageFile.Caption := lisMenuOpenPackageFile;
|
||||
itmPkgOpenPackageFile.Graphic:=LoadPixmap('pkg_package');
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuComponents.Add(itmPkgOpenPackageFile);
|
||||
{$ENDIF}
|
||||
@ -1109,6 +1120,7 @@ begin
|
||||
itmPkgOpenRecent := TMenuItem.Create(Self);
|
||||
itmPkgOpenRecent.Name:='itmPkgOpenRecent';
|
||||
itmPkgOpenRecent.Caption := lisMenuOpenRecentPkg;
|
||||
itmPkgOpenRecent.Graphic:=LoadPixmap('pkg_package');
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuComponents.Add(itmPkgOpenRecent);
|
||||
{$ENDIF}
|
||||
@ -1120,6 +1132,7 @@ begin
|
||||
itmPkgPkgGraph := TMenuItem.Create(Self);
|
||||
itmPkgPkgGraph.Name:='itmPkgPkgGraph';
|
||||
itmPkgPkgGraph.Caption := lisMenuPackageGraph;
|
||||
itmPkgPkgGraph.Graphic:=LoadPixmap('pkg_packagegraph');
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuComponents.Add(itmPkgPkgGraph);
|
||||
{$ENDIF}
|
||||
@ -1307,6 +1320,7 @@ begin
|
||||
itmProjectSave.ShortCut:=CommandToShortCut(ecSaveProject);
|
||||
itmProjectSaveAs.ShortCut:=CommandToShortCut(ecSaveProjectAs);
|
||||
itmProjectPublish.ShortCut:=CommandToShortCut(ecPublishProject);
|
||||
itmProjectInspector.ShortCut:=CommandToShortCut(ecProjectInspector);
|
||||
itmProjectAddTo.ShortCut:=CommandToShortCut(ecAddCurUnitToProj);
|
||||
itmProjectRemoveFrom.ShortCut:=CommandToShortCut(ecRemoveFromProj);
|
||||
itmProjectViewSource.ShortCut:=CommandToShortCut(ecViewProjectSource);
|
||||
|
@ -73,6 +73,8 @@ type
|
||||
procedure SetupMainBarShortCuts; virtual; abstract;
|
||||
procedure SetRecentPackagesMenu; virtual; abstract;
|
||||
|
||||
function GetDefaultSaveDirectoryForFile(const Filename: string): string; virtual; abstract;
|
||||
|
||||
procedure LoadInstalledPackages; virtual; abstract;
|
||||
|
||||
function ShowConfigureCustomComponents: TModalResult; virtual; abstract;
|
||||
@ -91,6 +93,8 @@ type
|
||||
Flags: TPkgCompileFlags): TModalResult; virtual; abstract;
|
||||
function DoSavePackageMainSource(APackage: TLazPackage;
|
||||
Flags: TPkgCompileFlags): TModalResult; virtual; abstract;
|
||||
function OnRenameFile(const OldFilename,
|
||||
NewFilename: string): TModalResult; virtual; abstract;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -588,6 +588,7 @@ type
|
||||
|
||||
TBasePackageEditor = class(TForm)
|
||||
public
|
||||
procedure UpdateAll; virtual; abstract;
|
||||
end;
|
||||
|
||||
|
||||
@ -2455,6 +2456,7 @@ begin
|
||||
if UnitOutputDirectory=AValue then exit;
|
||||
InvalidateOptions;
|
||||
inherited SetUnitOutputDir(AValue);
|
||||
LazPackage.DefineTemplates.OutputDirectoryChanged;
|
||||
end;
|
||||
|
||||
constructor TPkgCompilerOptions.Create(ThePackage: TLazPackage);
|
||||
|
@ -128,7 +128,7 @@ type
|
||||
FPlugins: TStringList;
|
||||
procedure SetLazPackage(const AValue: TLazPackage);
|
||||
procedure SetupComponents;
|
||||
procedure UpdateAll;
|
||||
procedure UpdateAll; override;
|
||||
procedure UpdateTitle;
|
||||
procedure UpdateButtons;
|
||||
procedure UpdateFiles;
|
||||
@ -321,20 +321,26 @@ begin
|
||||
if CurNode.Parent<>nil then begin
|
||||
if CurNode.Parent=FilesNode then begin
|
||||
AddPopupMenuItem('Open file',@OpenFileMenuItemClick,true);
|
||||
AddPopupMenuItem('Remove file',@RemoveBitBtnClick,true);
|
||||
AddPopupMenuItem('Remove file',@RemoveBitBtnClick,
|
||||
RemoveBitBtn.Enabled);
|
||||
end else if (CurDependency<>nil) and (not Removed) then begin
|
||||
AddPopupMenuItem('Open package',@OpenFileMenuItemClick,true);
|
||||
AddPopupMenuItem('Remove dependency',@RemoveBitBtnClick,true);
|
||||
AddPopupMenuItem('Remove dependency',@RemoveBitBtnClick,
|
||||
RemoveBitBtn.Enabled);
|
||||
AddPopupMenuItem('Move dependency up',@MoveDependencyUpClick,
|
||||
CurDependency.PrevRequiresDependency<>nil);
|
||||
(CurDependency.PrevRequiresDependency<>nil)
|
||||
and (not LazPackage.ReadOnly));
|
||||
AddPopupMenuItem('Move dependency down',@MoveDependencyDownClick,
|
||||
CurDependency.NextRequiresDependency<>nil);
|
||||
(CurDependency.NextRequiresDependency<>nil)
|
||||
and (not LazPackage.ReadOnly));
|
||||
end else if (CurNode.Parent=RemovedFilesNode) then begin
|
||||
AddPopupMenuItem('Open file',@OpenFileMenuItemClick,true);
|
||||
AddPopupMenuItem('Add file',@ReAddMenuItemClick,true);
|
||||
AddPopupMenuItem('Add file',@ReAddMenuItemClick,
|
||||
AddBitBtn.Enabled);
|
||||
end else if (CurNode.Parent=RemovedRequiredNode) then begin
|
||||
AddPopupMenuItem('Open package',@OpenFileMenuItemClick,true);
|
||||
AddPopupMenuItem('Add dependency',@ReAddMenuItemClick,true);
|
||||
AddPopupMenuItem('Add dependency',@ReAddMenuItemClick,
|
||||
AddBitBtn.Enabled);
|
||||
end;
|
||||
end;
|
||||
end else begin
|
||||
@ -1041,7 +1047,7 @@ begin
|
||||
and (FilesTreeView.Selected<>nil)
|
||||
and ((FilesTreeView.Selected.Parent=FilesNode)
|
||||
or (FilesTreeView.Selected.Parent=RequiredPackagesNode));
|
||||
InstallBitBtn.Enabled:=true;
|
||||
InstallBitBtn.Enabled:=(not LazPackage.AutoCreated);
|
||||
OptionsBitBtn.Enabled:=true;
|
||||
CompilerOptionsBitBtn.Enabled:=true;
|
||||
end;
|
||||
|
@ -104,6 +104,8 @@ type
|
||||
procedure SetupMainBarShortCuts; override;
|
||||
procedure SetRecentPackagesMenu; override;
|
||||
procedure AddFileToRecentPackages(const Filename: string);
|
||||
|
||||
function GetDefaultSaveDirectoryForFile(const Filename: string): string; override;
|
||||
|
||||
procedure LoadInstalledPackages; override;
|
||||
function AddPackageToGraph(APackage: TLazPackage): TModalResult;
|
||||
@ -125,6 +127,8 @@ type
|
||||
Flags: TPkgCompileFlags): TModalResult; override;
|
||||
function DoSavePackageMainSource(APackage: TLazPackage;
|
||||
Flags: TPkgCompileFlags): TModalResult; override;
|
||||
function OnRenameFile(const OldFilename,
|
||||
NewFilename: string): TModalResult; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -918,6 +922,20 @@ begin
|
||||
MainIDE.SaveEnvironment;
|
||||
end;
|
||||
|
||||
function TPkgManager.GetDefaultSaveDirectoryForFile(const Filename: string
|
||||
): string;
|
||||
var
|
||||
APackage: TLazPackage;
|
||||
PkgFile: TPkgFile;
|
||||
begin
|
||||
Result:='';
|
||||
PkgFile:=PackageGraph.FindFileInAllPackages(Filename,false,true);
|
||||
if PkgFile=nil then exit;
|
||||
APackage:=PkgFile.LazPackage;
|
||||
if APackage.AutoCreated or (not APackage.HasDirectory) then exit;
|
||||
Result:=APackage.Directory;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.LoadInstalledPackages;
|
||||
begin
|
||||
// base packages
|
||||
@ -1435,6 +1453,41 @@ begin
|
||||
Result:=mrOk;
|
||||
end;
|
||||
|
||||
function TPkgManager.OnRenameFile(const OldFilename, NewFilename: string
|
||||
): TModalResult;
|
||||
var
|
||||
OldPackage: TLazPackage;
|
||||
OldPkgFile: TPkgFile;
|
||||
NewPkgFile: TPkgFile;
|
||||
begin
|
||||
Result:=mrOk;
|
||||
if (OldFilename=NewFilename) or (not FilenameIsPascalUnit(NewFilename)) then
|
||||
exit;
|
||||
OldPkgFile:=PackageGraph.FindFileInAllPackages(OldFilename,false,true);
|
||||
if (OldPkgFile=nil) or (OldPkgFile.LazPackage.ReadOnly) then
|
||||
exit;
|
||||
OldPackage:=OldPkgFile.LazPackage;
|
||||
NewPkgFile:=PackageGraph.FindFileInAllPackages(NewFilename,false,true);
|
||||
if (NewPkgFile<>nil) and (OldPackage<>NewPkgFile.LazPackage) then exit;
|
||||
|
||||
Result:=MessageDlg('Rename file in package?',
|
||||
'The package '+OldPackage.IDAsString+' owns the file'#13
|
||||
+'"'+OldFilename+'".'#13
|
||||
+'Should the file be renamed in the package as well?',
|
||||
mtConfirmation,[mbYes,mbNo,mbAbort],0);
|
||||
if Result=mrNo then begin
|
||||
Result:=mrOk;
|
||||
exit;
|
||||
end;
|
||||
if Result<>mrYes then exit;
|
||||
|
||||
OldPkgFile.Filename:=NewFilename;
|
||||
if OldPackage.Editor<>nil then OldPackage.Editor.UpdateAll;
|
||||
OldPackage.Modified:=true;
|
||||
|
||||
Result:=mrOk;
|
||||
end;
|
||||
|
||||
function TPkgManager.DoClosePackageEditor(APackage: TLazPackage): TModalResult;
|
||||
begin
|
||||
if APackage.Editor<>nil then begin
|
||||
|
Loading…
Reference in New Issue
Block a user