From 712001eb4b33680a95e85049dfc2866ef40ecc02 Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 19 Dec 2015 15:59:16 +0000 Subject: [PATCH] project groups: update enabled state of menu item save project group as git-svn-id: trunk@50946 - --- components/projectgroups/projectgroup.pp | 15 ++++----- .../projectgroups/projectgroupeditor.lfm | 31 ++++++++++--------- .../projectgroups/projectgroupeditor.pas | 27 ++++++++++------ components/projectgroups/regprojectgroup.pp | 2 ++ 4 files changed, 43 insertions(+), 32 deletions(-) diff --git a/components/projectgroups/projectgroup.pp b/components/projectgroups/projectgroup.pp index 328fbb22b6..fdc468eed8 100644 --- a/components/projectgroups/projectgroup.pp +++ b/components/projectgroups/projectgroup.pp @@ -219,8 +219,8 @@ var var cmdOpenProjectGroup, cmdSaveProjectGroup, - cmdCreateProjectGroup, cmdSaveProjectGroupAs, + cmdCreateProjectGroup, cmdTargetAdd, cmdTargetRemove, @@ -491,6 +491,7 @@ begin Exit; FreeAndNil(FProjectGroup); FProjectGroup:=TIDEProjectGroup.Create(nil); + cmdSaveProjectGroupAs.Enabled:=true; // add current project AProject:=LazarusIDE.ActiveProject; @@ -571,6 +572,7 @@ end; procedure TIDEProjectGroupManager.DoSaveAsClick(Sender: TObject); begin + if FProjectGroup=nil then exit; if GetNewFileName then SaveProjectGroup; end; @@ -589,16 +591,15 @@ begin FProjectGroup.LoadFromFile(AOptions); if not (pgloSkipDialog in AOptions) then ShowProjectGroupEditor; + cmdSaveProjectGroupAs.Enabled:=true; end; procedure TIDEProjectGroupManager.SaveProjectGroup; begin - if Assigned(FProjectGroup) then - begin - if (FProjectGroup.FileName<>'') or GetNewFileName then begin - FProjectGroup.SaveToFile; - AddToRecentGroups(FProjectGroup.FileName); - end; + if not Assigned(FProjectGroup) then exit; + if (FProjectGroup.FileName<>'') or GetNewFileName then begin + FProjectGroup.SaveToFile; + AddToRecentGroups(FProjectGroup.FileName); end; end; diff --git a/components/projectgroups/projectgroupeditor.lfm b/components/projectgroups/projectgroupeditor.lfm index c416c7df37..764b3f7169 100644 --- a/components/projectgroups/projectgroupeditor.lfm +++ b/components/projectgroups/projectgroupeditor.lfm @@ -9,7 +9,7 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm OnCloseQuery = FormCloseQuery OnCreate = FormCreate OnDestroy = FormDestroy - LCLVersion = '1.5' + LCLVersion = '1.7' object TBProjectGroup: TToolBar Left = 0 Height = 48 @@ -26,33 +26,33 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm Action = AProjectGroupSave end object TBAdd: TToolButton - Left = 117 + Left = 106 Top = 2 Action = AProjectGroupAddExisting end object TBNewTarget: TToolButton - Left = 37 + Left = 34 Top = 2 Action = AProjectGroupAddNew Visible = False end object TBDelete: TToolButton - Left = 150 + Left = 136 Top = 2 Action = AProjectGroupDelete end object TBCompile: TToolButton - Left = 208 + Left = 189 Top = 2 Action = ATargetCompile end object TBCompileClean: TToolButton - Left = 268 + Left = 241 Top = 2 Action = ATargetCompileClean end object ToolButton1: TToolButton - Left = 367 + Left = 326 Height = 46 Top = 2 Width = 10 @@ -60,37 +60,37 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm Style = tbsSeparator end object TBTargetUp: TToolButton - Left = 435 + Left = 390 Top = 2 Action = ATargetEarlier end object TBTargetLater: TToolButton - Left = 483 + Left = 434 Top = 2 Action = ATargetLater end object TBMore: TToolButton - Left = 574 + Left = 517 Top = 2 Caption = 'More...' DropdownMenu = PopupMenuMore Style = tbsDropDown end object TBActivate: TToolButton - Left = 377 + Left = 336 Top = 2 Action = ATargetActivate Visible = False end object TBReload: TToolButton - Left = 523 + Left = 471 Top = 2 Action = AProjectGroupReload end end object TVPG: TTreeView Left = 0 - Height = 295 + Height = 291 Top = 48 Width = 646 Align = alClient @@ -109,8 +109,8 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm end object SBPG: TStatusBar Left = 0 - Height = 15 - Top = 343 + Height = 19 + Top = 339 Width = 646 Panels = < item @@ -1023,6 +1023,7 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm Caption = 'Save As' ImageIndex = 21 OnExecute = AProjectGroupSaveAsExecute + OnUpdate = AProjectGroupSaveAsUpdate end object AProjectGroupAddExisting: TAction Category = 'ProjectGroupActions' diff --git a/components/projectgroups/projectgroupeditor.pas b/components/projectgroups/projectgroupeditor.pas index 160e35d7df..22d762fd89 100644 --- a/components/projectgroups/projectgroupeditor.pas +++ b/components/projectgroups/projectgroupeditor.pas @@ -92,35 +92,36 @@ type TBActivate: TToolButton; TBReload: TToolButton; TVPG: TTreeView; + procedure AProjectGroupAddExistingExecute(Sender: TObject); + procedure AProjectGroupDeleteExecute(Sender: TObject); + procedure AProjectGroupDeleteUpdate(Sender: TObject); procedure AProjectGroupReloadExecute(Sender: TObject); + procedure AProjectGroupSaveAsExecute(Sender: TObject); + procedure AProjectGroupSaveAsUpdate(Sender: TObject); + procedure AProjectGroupSaveExecute(Sender: TObject); + procedure AProjectGroupSaveUpdate(Sender: TObject); procedure ATargetActivateExecute(Sender: TObject); procedure ATargetActivateUpdate(Sender: TObject); - procedure AProjectGroupAddExistingExecute(Sender: TObject); procedure ATargetCompileCleanExecute(Sender: TObject); procedure ATargetCompileCleanUpdate(Sender: TObject); procedure ATargetCompileExecute(Sender: TObject); procedure ATargetCompileFromHereExecute(Sender: TObject); procedure ATargetCompileFromHereUpdate(Sender: TObject); procedure ATargetCompileUpdate(Sender: TObject); - procedure AProjectGroupDeleteExecute(Sender: TObject); - procedure AProjectGroupDeleteUpdate(Sender: TObject); procedure ATargetCopyFilenameExecute(Sender: TObject); procedure ATargetCopyFilenameUpdate(Sender: TObject); + procedure ATargetEarlierExecute(Sender: TObject); + procedure ATargetEarlierUpdate(Sender: TObject); procedure ATargetInstallExecute(Sender: TObject); procedure ATargetInstallUpdate(Sender: TObject); + procedure ATargetLaterExecute(Sender: TObject); + procedure ATargetLaterUpdate(Sender: TObject); procedure ATargetOpenExecute(Sender: TObject); procedure ATargetOpenUpdate(Sender: TObject); procedure ATargetPropertiesExecute(Sender: TObject); procedure ATargetPropertiesUpdate(Sender: TObject); procedure ATargetRunExecute(Sender: TObject); procedure ATargetRunUpdate(Sender: TObject); - procedure AProjectGroupSaveAsExecute(Sender: TObject); - procedure AProjectGroupSaveExecute(Sender: TObject); - procedure AProjectGroupSaveUpdate(Sender: TObject); - procedure ATargetEarlierExecute(Sender: TObject); - procedure ATargetEarlierUpdate(Sender: TObject); - procedure ATargetLaterExecute(Sender: TObject); - procedure ATargetLaterUpdate(Sender: TObject); procedure ATargetUninstallExecute(Sender: TObject); procedure ATargetUninstallUpdate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); @@ -809,6 +810,12 @@ begin end; end; +procedure TProjectGroupEditorForm.AProjectGroupSaveAsUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled:=(FProjectGroup<>nil); + UpdateIDEMenuCommandFromAction(Sender,cmdSaveProjectGroupAs); +end; + procedure TProjectGroupEditorForm.ATargetCompileCleanExecute(Sender: TObject); begin Perform(taCompileClean); diff --git a/components/projectgroups/regprojectgroup.pp b/components/projectgroups/regprojectgroup.pp index 645d96791e..1863f664c4 100644 --- a/components/projectgroups/regprojectgroup.pp +++ b/components/projectgroups/regprojectgroup.pp @@ -75,8 +75,10 @@ begin 'OpenRecentProjectGroup',lisOpenRecentProjectGroup); cmdSaveProjectGroup:=RegisterIDEMenuCommand(itmProjectSaveSection, 'SaveProjectGroup',lisSaveProjectGroup,@IDEProjectGroupManager.DoSaveClick); + cmdSaveProjectGroup.Enabled:=false; cmdSaveProjectGroupAs:=RegisterIDEMenuCommand(itmProjectSaveSection, 'SaveProjectGroupAs',lisSaveProjectGroupAs,@IDEProjectGroupManager.DoSaveAsClick); + cmdSaveProjectGroupAs.Enabled:=false; IDEProjectGroupManager.UpdateRecentProjectGroupMenu;