From cfbc216dfdd843673c2c2011eae956c3846dc0cf Mon Sep 17 00:00:00 2001 From: balazs Date: Sat, 4 Feb 2017 20:25:35 +0000 Subject: [PATCH] Opkman: The possibility to close dialogs(Options and Description) with Esc. git-svn-id: trunk@54091 - --- .../opkman_createrepositorypackagefr.pas | 7 +------ .../opkman_optionsfrm.lfm | 2 ++ .../opkman_optionsfrm.pas | 8 ++++++++ .../opkman_packagedetailsfrm.lfm | 2 ++ .../opkman_packagedetailsfrm.pas | 9 +++++++++ .../opkman_serializablepackages.pas | 19 +++++++++++++++++-- 6 files changed, 39 insertions(+), 8 deletions(-) diff --git a/components/onlinepackagemanager/frames/opkman_createrepositorypackagefr.pas b/components/onlinepackagemanager/frames/opkman_createrepositorypackagefr.pas index 08084d830d..18cae49ebe 100644 --- a/components/onlinepackagemanager/frames/opkman_createrepositorypackagefr.pas +++ b/components/onlinepackagemanager/frames/opkman_createrepositorypackagefr.pas @@ -956,7 +956,7 @@ begin Package.RepositoryFileSize := FileUtil.FileSize(FPackageFile); Package.RepositoryFileHash := MD5Print(MD5File(FPackageFile)); Package.RepositoryDate := Trunc(now); - Package.PackageBaseDir := RootData^.FPackageBaseDir + '\/'; + Package.PackageBaseDir := RootData^.FPackageBaseDir; Package.DisplayName := RootData^.FDisplayName; Package.HomePageURL := RootData^.FHomePageURL; Package.DownloadURL := RootData^.FDownloadURL; @@ -970,11 +970,6 @@ begin PackageFile := TPackageFile(Package.PackageFiles.Add); PackageFile.Name := Data^.FName; PackageFile.PackageRelativePath := Data^.FPackageRelativePath; - if Trim(PackageFile.PackageRelativePath) <> '' then - begin - PackageFile.PackageRelativePath := AppendPathDelim(PackageFile.PackageRelativePath); - PackageFile.PackageRelativePath := StringReplace(PackageFile.PackageRelativePath, PathDelim, '\/', [rfReplaceAll]); - end; PackageFile.Version := TPackageVersion.Create; PackageFile.Version.AsString := Data^.FVersionAsString; PackageFile.Description := Data^.FDescription; diff --git a/components/onlinepackagemanager/opkman_optionsfrm.lfm b/components/onlinepackagemanager/opkman_optionsfrm.lfm index a4a72674ea..f1fb90edf1 100644 --- a/components/onlinepackagemanager/opkman_optionsfrm.lfm +++ b/components/onlinepackagemanager/opkman_optionsfrm.lfm @@ -10,6 +10,8 @@ object OptionsFrm: TOptionsFrm Color = clBtnFace Constraints.MinHeight = 300 Constraints.MinWidth = 475 + KeyPreview = True + OnKeyPress = FormKeyPress PopupMode = pmExplicit Position = poOwnerFormCenter LCLVersion = '1.7' diff --git a/components/onlinepackagemanager/opkman_optionsfrm.pas b/components/onlinepackagemanager/opkman_optionsfrm.pas index 280694de58..6971257ed4 100644 --- a/components/onlinepackagemanager/opkman_optionsfrm.pas +++ b/components/onlinepackagemanager/opkman_optionsfrm.pas @@ -106,6 +106,7 @@ type procedure cbProxyChange(Sender: TObject); procedure cbSelectProfileChange(Sender: TObject); procedure edRemoteRepositoryKeyPress(Sender: TObject; var Key: char); + procedure FormKeyPress(Sender: TObject; var Key: char); procedure pnProfilesMainResize(Sender: TObject); procedure pnProfilesTopResize(Sender: TObject); private @@ -366,6 +367,12 @@ begin bOkClick(bOk); end; +procedure TOptionsFrm.FormKeyPress(Sender: TObject; var Key: char); +begin + if Key = #27 then + Close; +end; + procedure TOptionsFrm.SetupControls(const AActivePageIndex: Integer = 0); var I: Integer; @@ -376,6 +383,7 @@ begin tsGeneral.Caption := rsOptions_tsGeneral_Caption; lbRemoteRepository.Caption := rsOptions_lbRemoteRepository_Caption; Options.RemoteRepositoryTmp.Clear; + cbRemoteRepository.Clear; for I := 0 to Options.RemoteRepository.Count - 1 do cbRemoteRepository.Items.Add(Options.RemoteRepository.Strings[I]); cbRemoteRepository.ItemIndex := Options.ActiveRepositoryIndex; diff --git a/components/onlinepackagemanager/opkman_packagedetailsfrm.lfm b/components/onlinepackagemanager/opkman_packagedetailsfrm.lfm index fbbf1c19c5..0902b77f1a 100644 --- a/components/onlinepackagemanager/opkman_packagedetailsfrm.lfm +++ b/components/onlinepackagemanager/opkman_packagedetailsfrm.lfm @@ -7,6 +7,8 @@ object PackageDetailsFrm: TPackageDetailsFrm ClientHeight = 310 ClientWidth = 477 Color = clBtnFace + KeyPreview = True + OnKeyPress = FormKeyPress PopupMode = pmExplicit Position = poOwnerFormCenter LCLVersion = '1.7' diff --git a/components/onlinepackagemanager/opkman_packagedetailsfrm.pas b/components/onlinepackagemanager/opkman_packagedetailsfrm.pas index 07f592fab0..d446ad8661 100644 --- a/components/onlinepackagemanager/opkman_packagedetailsfrm.pas +++ b/components/onlinepackagemanager/opkman_packagedetailsfrm.pas @@ -16,6 +16,7 @@ type bOk: TButton; mDetails: TMemo; pnButtons: TPanel; + procedure FormKeyPress(Sender: TObject; var Key: char); private public @@ -29,5 +30,13 @@ implementation {$R *.lfm} +{ TPackageDetailsFrm } + +procedure TPackageDetailsFrm.FormKeyPress(Sender: TObject; var Key: char); +begin + if Key = #27 then + Close; +end; + end. diff --git a/components/onlinepackagemanager/opkman_serializablepackages.pas b/components/onlinepackagemanager/opkman_serializablepackages.pas index e4529da016..f3c2d76fa3 100644 --- a/components/onlinepackagemanager/opkman_serializablepackages.pas +++ b/components/onlinepackagemanager/opkman_serializablepackages.pas @@ -1001,6 +1001,7 @@ var PackageFile: TPackageFile; PackageFileObject: TJSONObject; I: Integer; + PackageRelativePath: String; begin Result := True; try @@ -1014,7 +1015,13 @@ begin PackageFileObject.Add('Description', PackageFile.Description); PackageFileObject.Add('Author', PackageFile.Author); PackageFileObject.Add('License', PackageFile.License); - PackageFileObject.Add('RelativeFilePath', PackageFile.PackageRelativePath); + PackageRelativePath := PackageFile.PackageRelativePath; + if Trim(PackageRelativePath) <> '' then + begin + PackageRelativePath := AppendPathDelim(PackageRelativePath); + PackageRelativePath := StringReplace(PackageRelativePath, PathDelim, '\/', [rfReplaceAll]); + end; + PackageFileObject.Add('RelativeFilePath', PackageRelativePath); PackageFileObject.Add('VersionAsString', PackageFile.VersionAsString); PackageFileObject.Add('LazCompatibility', PackageFile.LazCompatibility); PackageFileObject.Add('FPCCompatibility', PackageFile.FPCCompatibility); @@ -1209,6 +1216,8 @@ end; function TSerializablePackages.PackageDataToJSON(APackage: TPackage; var APackageData: TJSONObject): Boolean; +var + PackageBaseDir: String; begin //need to change Result := True; @@ -1221,7 +1230,13 @@ begin APackageData.Add('RepositoryFileSize', TPackage(APackage).RepositoryFileSize); APackageData.Add('RepositoryFileHash', TPackage(APackage).RepositoryFileHash); APackageData.Add('RepositoryDate', TPackage(APackage).RepositoryDate); - APackageData.Add('PackageBaseDir', TPackage(APackage).PackageBaseDir); + PackageBaseDir := TPackage(APackage).PackageBaseDir; + if Trim(PackageBaseDir) <> '' then + begin + PackageBaseDir := AppendPathDelim(PackageBaseDir); + PackageBaseDir := StringReplace(PackageBaseDir, PathDelim, '\/', [rfReplaceAll]); + end; + APackageData.Add('PackageBaseDir', PackageBaseDir); APackageData.Add('HomePageURL', TPackage(APackage).HomePageURL); APackageData.Add('DownloadURL', TPackage(APackage).DownloadURL); APackageData.Add('SVNURL', TPackage(APackage).SVNURL);