From 2037baa360c60f46abd4e890980899f9d0ff514b Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 11 Mar 2017 09:33:56 +0000 Subject: [PATCH] project groups: added ide commands git-svn-id: trunk@54383 - --- .../languages/projectgroupstrconst.de.po | 4 + .../languages/projectgroupstrconst.fr.po | 4 + .../languages/projectgroupstrconst.hu.po | 4 + .../languages/projectgroupstrconst.it.po | 4 + .../languages/projectgroupstrconst.po | 4 + .../languages/projectgroupstrconst.ru.po | 4 + components/projectgroups/projectgroup.pp | 63 +++++++----- .../projectgroups/projectgroupeditor.pas | 50 +++++----- .../projectgroups/projectgroupstrconst.pas | 1 + components/projectgroups/regprojectgroup.pp | 98 +++++++++++-------- 10 files changed, 145 insertions(+), 91 deletions(-) diff --git a/components/projectgroups/languages/projectgroupstrconst.de.po b/components/projectgroups/languages/projectgroupstrconst.de.po index 4cb86b212b..38e846f1f0 100644 --- a/components/projectgroups/languages/projectgroupstrconst.de.po +++ b/components/projectgroups/languages/projectgroupstrconst.de.po @@ -235,6 +235,10 @@ msgstr "" msgid "Reload" msgstr "Neu laden" +#: projectgroupstrconst.lisprojectgroups +msgid "Project Groups" +msgstr "" + #: projectgroupstrconst.lisprojectgroupsaveascaption msgid "Save As ..." msgstr "Speichern unter ..." diff --git a/components/projectgroups/languages/projectgroupstrconst.fr.po b/components/projectgroups/languages/projectgroupstrconst.fr.po index 0d4a55da27..cb207355d9 100644 --- a/components/projectgroups/languages/projectgroupstrconst.fr.po +++ b/components/projectgroups/languages/projectgroupstrconst.fr.po @@ -234,6 +234,10 @@ msgstr "" msgid "Reload" msgstr "Recharger" +#: projectgroupstrconst.lisprojectgroups +msgid "Project Groups" +msgstr "" + #: projectgroupstrconst.lisprojectgroupsaveascaption msgid "Save As ..." msgstr "Enregistrer sous..." diff --git a/components/projectgroups/languages/projectgroupstrconst.hu.po b/components/projectgroups/languages/projectgroupstrconst.hu.po index dcb2e12c4e..e1361bef6c 100644 --- a/components/projectgroups/languages/projectgroupstrconst.hu.po +++ b/components/projectgroups/languages/projectgroupstrconst.hu.po @@ -234,6 +234,10 @@ msgstr "" msgid "Reload" msgstr "Újratöltés" +#: projectgroupstrconst.lisprojectgroups +msgid "Project Groups" +msgstr "" + #: projectgroupstrconst.lisprojectgroupsaveascaption msgid "Save As ..." msgstr "Mentés másként ..." diff --git a/components/projectgroups/languages/projectgroupstrconst.it.po b/components/projectgroups/languages/projectgroupstrconst.it.po index cf03423516..2977f482cb 100644 --- a/components/projectgroups/languages/projectgroupstrconst.it.po +++ b/components/projectgroups/languages/projectgroupstrconst.it.po @@ -224,6 +224,10 @@ msgstr "" msgid "Reload" msgstr "Ricarica" +#: projectgroupstrconst.lisprojectgroups +msgid "Project Groups" +msgstr "" + #: projectgroupstrconst.lisprojectgroupsaveascaption msgid "Save As ..." msgstr "Salva come ..." diff --git a/components/projectgroups/languages/projectgroupstrconst.po b/components/projectgroups/languages/projectgroupstrconst.po index 41573bded2..5f3a431da5 100644 --- a/components/projectgroups/languages/projectgroupstrconst.po +++ b/components/projectgroups/languages/projectgroupstrconst.po @@ -219,6 +219,10 @@ msgstr "" msgid "Reload" msgstr "" +#: projectgroupstrconst.lisprojectgroups +msgid "Project Groups" +msgstr "" + #: projectgroupstrconst.lisprojectgroupsaveascaption msgid "Save As ..." msgstr "" diff --git a/components/projectgroups/languages/projectgroupstrconst.ru.po b/components/projectgroups/languages/projectgroupstrconst.ru.po index b93104b89a..c1bee12cd4 100644 --- a/components/projectgroups/languages/projectgroupstrconst.ru.po +++ b/components/projectgroups/languages/projectgroupstrconst.ru.po @@ -234,6 +234,10 @@ msgstr "" msgid "Reload" msgstr "Перезагрузить" +#: projectgroupstrconst.lisprojectgroups +msgid "Project Groups" +msgstr "" + #: projectgroupstrconst.lisprojectgroupsaveascaption msgid "Save As ..." msgstr "Сохранить как ..." diff --git a/components/projectgroups/projectgroup.pp b/components/projectgroups/projectgroup.pp index 0c4bb118dc..c6b9630945 100644 --- a/components/projectgroups/projectgroup.pp +++ b/components/projectgroups/projectgroup.pp @@ -210,35 +210,44 @@ var IDEProjectGroupManager: TIDEProjectGroupManager; - ProjectGroupMenuRoot: TIDEMenuSection = nil; + ProjectGroupEditorMenuRoot: TIDEMenuSection = nil; PGEditMenuSectionFiles, // e.g. sort files, clean up files PGEditMenuSectionAddRemove, // e.g. add unit, add dependency PGEditMenuSectionCompile, // e.g. build clean, create Makefile PGEditMenuSectionUse, // Target up/down PGEditMenuSectionMisc: TIDEMenuSection; // e.g. options + PGOpenRecentSubMenu: TIDEMenuSection; +const + ProjectGroupCmdCategoryName = 'ProjectGroups'; var - cmdOpenProjectGroup, - cmdSaveProjectGroup, - cmdSaveProjectGroupAs, - cmdCreateProjectGroup, + PGCmdCategory: TIDECommandCategory; - cmdTargetAdd, - cmdTargetRemove, - cmdTargetEarlier, - cmdTargetActivate, - cmdTargetLater, - cmdTargetCompile, - cmdTargetCompileClean, - cmdTargetCompileFromHere, - cmdTargetInstall, - cmdTargetOpen, - cmdTargetRun, - cmdTargetProperties, - cmdTargetUninstall, - cmdTargetCopyFilename: TIDEMenuCommand; + // IDE main bar menu items + CmdOpenProjectGroup: TIDECommand; + MnuCmdOpenProjectGroup: TIDEMenuCommand; + CmdSaveProjectGroup: TIDECommand; + MnuCmdSaveProjectGroup: TIDEMenuCommand; + CmdSaveProjectGroupAs: TIDECommand; + MnuCmdSaveProjectGroupAs: TIDEMenuCommand; + CmdNewProjectGroup: TIDECommand; + MnuCmdNewProjectGroup: TIDEMenuCommand; - OpenRecentProjectGroupSubMenu: TIDEMenuSection; + // editor menu items + MnuCmdTargetAdd, + MnuCmdTargetRemove, + MnuCmdTargetEarlier, + MnuCmdTargetActivate, + MnuCmdTargetLater, + MnuCmdTargetCompile, + MnuCmdTargetCompileClean, + MnuCmdTargetCompileFromHere, + MnuCmdTargetInstall, + MnuCmdTargetOpen, + MnuCmdTargetRun, + MnuCmdTargetProperties, + MnuCmdTargetUninstall, + MnuCmdTargetCopyFilename: TIDEMenuCommand; function LoadXML(aFilename: string; Quiet: boolean): TXMLConfig; function CreateXML(aFilename: string; Quiet: boolean): TXMLConfig; @@ -470,17 +479,17 @@ begin i:=0; while inil) and (FProjectGroup.Modified or (FProjectGroup.FileName='')); - UpdateIDEMenuCommandFromAction(Sender,cmdSaveProjectGroup); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdSaveProjectGroup); end; procedure TProjectGroupEditorForm.ATargetEarlierExecute(Sender: TObject); @@ -411,7 +411,7 @@ begin end; end; (Sender as TAction).Enabled:=I>0; - UpdateIDEMenuCommandFromAction(Sender,cmdTargetEarlier); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetEarlier); end; procedure TProjectGroupEditorForm.ATargetLaterExecute(Sender: TObject); @@ -447,7 +447,7 @@ begin I:=PG.IndexOfTarget(T.Target); end; (Sender as TAction).Enabled:=(PG<>nil) and (I+1nil); - UpdateIDEMenuCommandFromAction(Sender,cmdSaveProjectGroupAs); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdSaveProjectGroupAs); end; procedure TProjectGroupEditorForm.ATargetCompileCleanExecute(Sender: TObject); @@ -828,7 +828,7 @@ end; procedure TProjectGroupEditorForm.ATargetCompileCleanUpdate(Sender: TObject); begin AllowPerform(taCompileClean,Sender as TAction); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetCompileClean); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetCompileClean); end; function TProjectGroupEditorForm.AllowPerform(ATargetAction: TPGTargetAction; AAction: TAction = Nil): Boolean; @@ -887,13 +887,13 @@ end; procedure TProjectGroupEditorForm.ATargetCompileFromHereUpdate(Sender: TObject); begin AllowPerform(taCompileFromHere,Sender as TAction); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetCompile); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetCompile); end; procedure TProjectGroupEditorForm.ATargetCompileUpdate(Sender: TObject); begin AllowPerform(taCompile,Sender as TAction); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetCompile); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetCompile); end; procedure TProjectGroupEditorForm.AProjectGroupDeleteExecute(Sender: TObject); @@ -911,7 +911,7 @@ Var begin T:=SelectedTarget; (Sender as TAction).Enabled:=(T<>nil) and (T<>ProjectGroup.CompileTarget) and Not T.Removed; - UpdateIDEMenuCommandFromAction(Sender,cmdTargetRemove); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetRemove); end; procedure TProjectGroupEditorForm.ATargetCopyFilenameExecute(Sender: TObject); @@ -937,7 +937,7 @@ begin ND:=SelectedNodeData; (Sender as TAction).Enabled:=(ND<>nil) and ((ND.Target<>nil) or (ND.NodeType in [ntFile])); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetCopyFilename); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetCopyFilename); end; procedure TProjectGroupEditorForm.ATargetInstallExecute(Sender: TObject); @@ -948,7 +948,7 @@ end; procedure TProjectGroupEditorForm.ATargetInstallUpdate(Sender: TObject); begin AllowPerform(taInstall,Sender as TAction); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetInstall); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetInstall); end; procedure TProjectGroupEditorForm.ATargetOpenExecute(Sender: TObject); @@ -959,7 +959,7 @@ end; procedure TProjectGroupEditorForm.ATargetOpenUpdate(Sender: TObject); begin AllowPerform(taOpen,Sender as TAction); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetOpen); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetOpen); end; procedure TProjectGroupEditorForm.ATargetPropertiesExecute(Sender: TObject); @@ -970,7 +970,7 @@ end; procedure TProjectGroupEditorForm.ATargetPropertiesUpdate(Sender: TObject); begin AllowPerform(taSettings,Sender as Taction); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetProperties); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetProperties); end; procedure TProjectGroupEditorForm.ATargetRunExecute(Sender: TObject); @@ -981,7 +981,7 @@ end; procedure TProjectGroupEditorForm.ATargetRunUpdate(Sender: TObject); begin AllowPerform(taRun,Sender as TAction); - UpdateIDEMenuCommandFromAction(Sender,cmdTargetRun); + UpdateIDEMenuCommandFromAction(Sender,MnuCmdTargetRun); end; procedure TProjectGroupEditorForm.AProjectGroupSaveAsExecute(Sender: TObject); diff --git a/components/projectgroups/projectgroupstrconst.pas b/components/projectgroups/projectgroupstrconst.pas index b42619f53c..5693b48e1c 100644 --- a/components/projectgroups/projectgroupstrconst.pas +++ b/components/projectgroups/projectgroupstrconst.pas @@ -28,6 +28,7 @@ Resourcestring lisTargetAdd = 'Add target'; lisTargetRemove = 'Remove target'; lisTargetCompile = 'Compile'; + lisProjectGroups = 'Project Groups'; lisTargetCompileClean = 'Compile clean'; lisTargetCompileFromHere = 'Compile from here'; lisTargetInstall = 'Install'; diff --git a/components/projectgroups/regprojectgroup.pp b/components/projectgroups/regprojectgroup.pp index cb9202503a..3bb6cd0113 100644 --- a/components/projectgroups/regprojectgroup.pp +++ b/components/projectgroups/regprojectgroup.pp @@ -5,10 +5,10 @@ unit RegProjectGroup; interface uses - Classes, SysUtils, ProjectGroupIntf, MenuIntf, + Classes, SysUtils, ProjectGroupIntf, MenuIntf, IDECommands, ProjectGroupStrConst, ProjectGroup, ProjectGroupEditor; -procedure RegisterStandardProjectGroupMenuItems; +procedure RegisterProjectGroupEditorMenuItems; procedure Register; implementation @@ -16,43 +16,51 @@ implementation const ProjectGroupEditorMenuRootName = 'ProjectGroupEditorMenu'; -procedure RegisterStandardProjectGroupMenuItems; -var - Section,Root : TIDEMenuSection; -begin - Root:=RegisterIDEMenuRoot(ProjectGroupEditorMenuRootName); - ProjectGroupMenuRoot:=Root; - PGEditMenuSectionFiles:=RegisterIDEMenuSection(Root,'File'); +procedure RegisterProjectGroupEditorMenuItems; - Section:=RegisterIDEMenuSection(Root,'Compile'); - PGEditMenuSectionCompile:=Section; - cmdTargetCompile:=RegisterIDEMenuCommand(Section,'TargetCompile',lisTargetCompile); - cmdTargetCompileClean:=RegisterIDEMenuCommand(Section,'TargetCompileClean',lisTargetCompileClean); - cmdTargetCompileFromHere:=RegisterIDEMenuCommand(Section,'TargetCompileFromHere',lisTargetCompileFromHere); + procedure RegisterMenuCmd(out MenuCmd: TIDEMenuCommand; + Section: TIDEMenuSection; const Name, Caption: string); + begin + MenuCmd:=RegisterIDEMenuCommand(Section,Name,Caption); + end; + +var + MnuRoot, MnuSection: TIDEMenuSection; +begin + MnuRoot:=RegisterIDEMenuRoot(ProjectGroupEditorMenuRootName); + ProjectGroupEditorMenuRoot:=MnuRoot; + + PGEditMenuSectionFiles:=RegisterIDEMenuSection(MnuRoot,'File'); + + MnuSection:=RegisterIDEMenuSection(MnuRoot,'Compile'); + PGEditMenuSectionCompile:=MnuSection; + RegisterMenuCmd(MnuCmdTargetCompile,MnuSection,'TargetCompile',lisTargetCompile); + RegisterMenuCmd(MnuCmdTargetCompileClean,MnuSection,'TargetCompileClean',lisTargetCompileClean); + RegisterMenuCmd(MnuCmdTargetCompileFromHere,MnuSection,'TargetCompileFromHere',lisTargetCompileFromHere); // ToDo: clean ... -> clean up dialog // ToDo: set build mode of all projects - Section:=RegisterIDEMenuSection(Root,'AddRemove'); - PGEditMenuSectionAddRemove:=Section; - cmdTargetAdd:=RegisterIDEMenuCommand(Section,'TargetAdd',lisTargetAdd); - cmdTargetRemove:=RegisterIDEMenuCommand(Section,'TargetRemove',lisTargetRemove); + MnuSection:=RegisterIDEMenuSection(MnuRoot,'AddRemove'); + PGEditMenuSectionAddRemove:=MnuSection; + RegisterMenuCmd(MnuCmdTargetAdd,MnuSection,'TargetAdd',lisTargetAdd); + RegisterMenuCmd(MnuCmdTargetRemove,MnuSection,'TargetRemove',lisTargetRemove); // ToDo: re-add - Section:=RegisterIDEMenuSection(Root,'Use'); - PGEditMenuSectionUse:=Section; - cmdTargetInstall:=RegisterIDEMenuCommand(Section,'TargetInstall',lisTargetInstall);// ToDo - cmdTargetUninstall:=RegisterIDEMenuCommand(Section,'TargetUninstall',lisTargetUninstall);// ToDo - cmdTargetEarlier:=RegisterIDEMenuCommand(Section,'TargetEarlier',lisTargetEarlier);// ToDo: Ctrl+Up - cmdTargetLater:=RegisterIDEMenuCommand(Section,'TargetLater',lisTargetLater);// ToDo: Ctrl+Down - cmdTargetActivate:=RegisterIDEMenuCommand(Section,'TargetActivate',lisTargetActivate); - cmdTargetOpen:=RegisterIDEMenuCommand(Section,'TargetOpen',lisTargetOpen); - cmdTargetRun:=RegisterIDEMenuCommand(Section,'TargetRun',lisTargetRun); - cmdTargetProperties:=RegisterIDEMenuCommand(Section,'TargetProperties',lisTargetProperties); + MnuSection:=RegisterIDEMenuSection(MnuRoot,'Use'); + PGEditMenuSectionUse:=MnuSection; + RegisterMenuCmd(MnuCmdTargetInstall,MnuSection,'TargetInstall',lisTargetInstall);// ToDo + RegisterMenuCmd(MnuCmdTargetUninstall,MnuSection,'TargetUninstall',lisTargetUninstall);// ToDo + RegisterMenuCmd(MnuCmdTargetEarlier,MnuSection,'TargetEarlier',lisTargetEarlier);// ToDo: Ctrl+Up + RegisterMenuCmd(MnuCmdTargetLater,MnuSection,'TargetLater',lisTargetLater);// ToDo: Ctrl+Down + RegisterMenuCmd(MnuCmdTargetActivate,MnuSection,'TargetActivate',lisTargetActivate); + RegisterMenuCmd(MnuCmdTargetOpen,MnuSection,'TargetOpen',lisTargetOpen); + RegisterMenuCmd(MnuCmdTargetRun,MnuSection,'TargetRun',lisTargetRun); + RegisterMenuCmd(MnuCmdTargetProperties,MnuSection,'TargetProperties',lisTargetProperties); - Section:=RegisterIDEMenuSection(Root,'Misc'); - PGEditMenuSectionMisc:=Section; + MnuSection:=RegisterIDEMenuSection(MnuRoot,'Misc'); + PGEditMenuSectionMisc:=MnuSection; - cmdTargetCopyFilename:=RegisterIDEMenuCommand(Section,'CopyFilename',lisTargetCopyFilename); + RegisterMenuCmd(MnuCmdTargetCopyFilename,MnuSection,'CopyFilename',lisTargetCopyFilename); // ToDo: View source (project) // ToDo: find in files @@ -62,23 +70,35 @@ begin end; procedure Register; + + procedure RegisterMnuCmd(out Cmd: TIDECommand; out MenuCmd: TIDEMenuCommand; + Section: TIDEMenuSection; const Name, Caption: string; + const OnExecuteMethod: TNotifyEvent); + begin + Cmd:=RegisterIDECommand(PGCmdCategory,Name,Caption,OnExecuteMethod); + MenuCmd:=RegisterIDEMenuCommand(Section,Name,Caption,nil,nil,Cmd); + end; + begin - RegisterStandardProjectGroupMenuItems; IDEProjectGroupManager:=TIDEProjectGroupManager.Create; IDEProjectGroupManager.Options.LoadSafe; - cmdCreateProjectGroup:=RegisterIDEMenuCommand(itmProjectNewSection, + PGCmdCategory:=RegisterIDECommandCategory(nil,ProjectGroupCmdCategoryName,lisProjectGroups); + + RegisterMnuCmd(CmdNewProjectGroup,MnuCmdNewProjectGroup,itmProjectNewSection, 'NewProjectGroup',lisNewProjectGroupMenuC,@IDEProjectGroupManager.DoNewClick); - cmdOpenProjectGroup:=RegisterIDEMenuCommand(itmProjectOpenSection, + RegisterMnuCmd(CmdOpenProjectGroup,MnuCmdOpenProjectGroup,itmProjectOpenSection, 'OpenProjectGroup',lisOpenProjectGroup,@IDEProjectGroupManager.DoOpenClick); - OpenRecentProjectGroupSubMenu:=RegisterIDESubMenu(itmProjectOpenSection, + PGOpenRecentSubMenu:=RegisterIDESubMenu(itmProjectOpenSection, 'OpenRecentProjectGroup',lisOpenRecentProjectGroup); - cmdSaveProjectGroup:=RegisterIDEMenuCommand(itmProjectSaveSection, + RegisterMnuCmd(CmdSaveProjectGroup,MnuCmdSaveProjectGroup,itmProjectSaveSection, 'SaveProjectGroup',lisSaveProjectGroup,@IDEProjectGroupManager.DoSaveClick); - cmdSaveProjectGroup.Enabled:=false; - cmdSaveProjectGroupAs:=RegisterIDEMenuCommand(itmProjectSaveSection, + MnuCmdSaveProjectGroup.Enabled:=false; + RegisterMnuCmd(CmdSaveProjectGroupAs,MnuCmdSaveProjectGroupAs,itmProjectSaveSection, 'SaveProjectGroupAs',lisSaveProjectGroupAs,@IDEProjectGroupManager.DoSaveAsClick); - cmdSaveProjectGroupAs.Enabled:=false; + MnuCmdSaveProjectGroupAs.Enabled:=false; + + RegisterProjectGroupEditorMenuItems; IDEProjectGroupManager.UpdateRecentProjectGroupMenu;