From fefe00702a0a8cdca19448ec2693d54021b7caca Mon Sep 17 00:00:00 2001 From: balazs Date: Mon, 20 Feb 2017 13:00:57 +0000 Subject: [PATCH] Opkman: Extend category list. git-svn-id: trunk@54208 - --- .../onlinepackagemanager/opkman_categoriesfrm.pas | 15 ++++++++++++++- components/onlinepackagemanager/opkman_common.pas | 9 +++++---- components/onlinepackagemanager/opkman_const.pas | 1 + 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/components/onlinepackagemanager/opkman_categoriesfrm.pas b/components/onlinepackagemanager/opkman_categoriesfrm.pas index a5e20a08ab..f2f05d01a4 100644 --- a/components/onlinepackagemanager/opkman_categoriesfrm.pas +++ b/components/onlinepackagemanager/opkman_categoriesfrm.pas @@ -80,6 +80,7 @@ type TData = record FName: string[100]; FImageIndex: Integer; + FType: Integer; end; { TCategoriesFrm } @@ -208,7 +209,14 @@ begin Data1 := Sender.GetNodeData(Node1); Data2 := Sender.GetNodeData(Node2); if Column = 0 then - Result := CompareText(Data1^.FName, Data2^.FName); + begin + if Data1^.FType = Data2^.FType then + Result := CompareText(Data1^.FName, Data2^.FName) + else if Data1^.FType > Data2^.FType then + Result := 1 + else if Data1^.FType < Data2^.FType then + Result := -1 + end; end; procedure TCategoriesFrm.VSTFreeNode(Sender: TBaseVirtualTree; @@ -267,7 +275,12 @@ begin Data := FVST.GetNodeData(Node); Data^.FName := Categories[I]; Data^.FImageIndex := -1; + if UpperCase(CategoriesEng[I]) = 'OTHER' then + Data^.FType := 1 + else + Data^.FType := 0; end; + FVST.SortTree(0, opkman_VirtualTrees.sdAscending); SL := TStringList.Create; try diff --git a/components/onlinepackagemanager/opkman_common.pas b/components/onlinepackagemanager/opkman_common.pas index 8b3af4a779..b45ade2383 100644 --- a/components/onlinepackagemanager/opkman_common.pas +++ b/components/onlinepackagemanager/opkman_common.pas @@ -43,7 +43,7 @@ type end; const - MaxCategories = 27; + MaxCategories = 28; Categories: array[0..MaxCategories - 1] of String = ( rsMainFrm_VSTText_PackageCategory0, rsMainFrm_VSTText_PackageCategory1, @@ -71,8 +71,8 @@ const rsMainFrm_VSTText_PackageCategory23, rsMainFrm_VSTText_PackageCategory24, rsMainFrm_VSTText_PackageCategory25, - rsMainFrm_VSTText_PackageCategory26); - + rsMainFrm_VSTText_PackageCategory26, + rsMainFrm_VSTText_PackageCategory27); //needed for localized filter, since the JSON contains only english text CategoriesEng: array[0..MaxCategories - 1] of String = ( 'Charts and Graphs', @@ -101,7 +101,8 @@ const 'Sizers and Scrollers', 'System', 'Tabbed Components', - 'Other'); + 'Other', + 'Games and Game Engines'); var LocalRepositoryConfigFile: String; diff --git a/components/onlinepackagemanager/opkman_const.pas b/components/onlinepackagemanager/opkman_const.pas index af21137a73..13bd1e45eb 100644 --- a/components/onlinepackagemanager/opkman_const.pas +++ b/components/onlinepackagemanager/opkman_const.pas @@ -133,6 +133,7 @@ resourcestring rsMainFrm_VSTText_PackageCategory24 = 'System'; rsMainFrm_VSTText_PackageCategory25 = 'Tabbed Components'; rsMainFrm_VSTText_PackageCategory26 = 'Other'; + rsMainFrm_VSTText_PackageCategory27 = 'Games and Game Engines'; rsMainFrm_VSTText_Desc = 'Description for package'; rsMainFrm_VSTText_Lic = 'License info for package'; rsMainFrm_cbAll_Caption = 'All/None';