From 831758a6ff80bbb3aaa35e605d1b06795f2e5416 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 11 Dec 2019 06:12:09 +1100 Subject: [PATCH] fix(developer): F7 to compile all in project view --- .../TIKE/actions/dmActionsKeyboardEditor.pas | 10 ++++-- ...eyman.Developer.UI.Project.UfrmProject.pas | 36 +++++++++++-------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/windows/src/developer/TIKE/actions/dmActionsKeyboardEditor.pas b/windows/src/developer/TIKE/actions/dmActionsKeyboardEditor.pas index c7f7fdbf1b..5f61ee1a87 100644 --- a/windows/src/developer/TIKE/actions/dmActionsKeyboardEditor.pas +++ b/windows/src/developer/TIKE/actions/dmActionsKeyboardEditor.pas @@ -146,6 +146,7 @@ uses Keyman.Developer.System.Project.kpsProjectFile, Keyman.Developer.System.Project.ProjectFile, Keyman.Developer.UI.Project.ProjectFileUI, + Keyman.Developer.UI.Project.UfrmProject, UframeTextEditor, UfrmKeymanWizard, UfrmDebug, @@ -441,13 +442,18 @@ begin else if ActivePackageEditor <> nil then begin (ActivePackageProjectFile.UI as TProjectFileUI).DoAction(pfaCompile, False); - end; + end + else if frmKeymanDeveloper.ActiveChild is TfrmProject then + (frmKeymanDeveloper.ActiveChild as TfrmProject).CompileAll; end; procedure TmodActionsKeyboardEditor.actKeyboardCompileUpdate(Sender: TObject); begin // TODO: Split Keyboard menu and package editor functions - actKeyboardCompile.Enabled := (ActiveEditor <> nil) or (ActivePackageEditor <> nil); + actKeyboardCompile.Enabled := + (ActiveEditor <> nil) or + (ActivePackageEditor <> nil) or + (frmKeymanDeveloper.ActiveChild is TfrmProject); frmKeymanDeveloper.mnuKeyboard.Visible := actKeyboardCompile.Enabled; frmKeymanDeveloper.mnuDebug.Visible := ActiveEditor <> nil; end; diff --git a/windows/src/developer/TIKE/project/Keyman.Developer.UI.Project.UfrmProject.pas b/windows/src/developer/TIKE/project/Keyman.Developer.UI.Project.UfrmProject.pas index 82c76dafb3..ab7f2f3bd6 100644 --- a/windows/src/developer/TIKE/project/Keyman.Developer.UI.Project.UfrmProject.pas +++ b/windows/src/developer/TIKE/project/Keyman.Developer.UI.Project.UfrmProject.pas @@ -93,6 +93,7 @@ type procedure SetFocus; override; procedure SetGlobalProject; procedure StartClose; override; + procedure CompileAll; end; implementation @@ -265,6 +266,26 @@ begin frmMessages.Clear; end; +procedure TfrmProject.CompileAll; +var + i: Integer; +begin + ClearMessages; + for i := 0 to FGlobalProject.Files.Count - 1 do + begin + if (FGlobalProject.Files[i] is TkmnProjectFile) or + (FGlobalProject.Files[i] is TmodelTsProjectFile) then + begin + if not (FGlobalProject.Files[i].UI as TProjectFileUI).DoAction(pfaCompile, False) then Exit; // I4687 + end; + end; + for i := 0 to FGlobalProject.Files.Count - 1 do + begin + if FGlobalProject.Files[i] is TkpsProjectFile then + if not (FGlobalProject.Files[i].UI as TProjectFileUI).DoAction(pfaCompile, False) then Exit; // I4687 + end; +end; + function TfrmProject.ShouldHandleNavigation(URL: string): Boolean; begin Result := False; @@ -489,20 +510,7 @@ begin end else if Command = 'compileall' then // I4686 begin - ClearMessages; - for i := 0 to FGlobalProject.Files.Count - 1 do - begin - if (FGlobalProject.Files[i] is TkmnProjectFile) or - (FGlobalProject.Files[i] is TmodelTsProjectFile) then - begin - if not (FGlobalProject.Files[i].UI as TProjectFileUI).DoAction(pfaCompile, False) then Exit; // I4687 - end; - end; - for i := 0 to FGlobalProject.Files.Count - 1 do - begin - if FGlobalProject.Files[i] is TkpsProjectFile then - if not (FGlobalProject.Files[i].UI as TProjectFileUI).DoAction(pfaCompile, False) then Exit; // I4687 - end; + CompileAll; end else if Command = 'cleanall' then // I4692 begin