started project inspector

git-svn-id: trunk@4079 -
This commit is contained in:
mattias 2003-04-19 16:55:38 +00:00
parent 4cd04fc129
commit 7f5b8c7441
8 changed files with 100 additions and 15 deletions

View File

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

View File

@ -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,[]);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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