libyui  3.3.1
YRpmGroupsTree.cc
1 /*
2  Copyright (C) 2000-2012 Novell, Inc
3  This library is free software; you can redistribute it and/or modify
4  it under the terms of the GNU Lesser General Public License as
5  published by the Free Software Foundation; either version 2.1 of the
6  License, or (at your option) version 3.0 of the License. This library
7  is distributed in the hope that it will be useful, but WITHOUT ANY
8  WARRANTY; without even the implied warranty of MERCHANTABILITY or
9  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10  License for more details. You should have received a copy of the GNU
11  Lesser General Public License along with this library; if not, write
12  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
13  Floor, Boston, MA 02110-1301 USA
14 */
15 
16 
17 /*-/
18 
19  File: YRpmGroupsTree.cc
20 
21  Author: Stefan Hundhammer <sh@suse.de>
22 
23 /-*/
24 
25 
26 #include "YRpmGroupsTree.h"
27 
28 #include "Libyui_config.h"
29 
30 #define TEXTDOMAIN "rpm-groups"
31 
32 
34  : YStringTree( TEXTDOMAIN )
35 {
36  bindtextdomain( TEXTDOMAIN, LOCALEDIR );
37  bind_textdomain_codeset( TEXTDOMAIN, "utf8" );
38 }
39 
40 
42 {
43  // NOP
44 }
45 
46 
47 static const char *fallback_rpm_groups[] =
48 {
49  "Amusements/Games/3D/Other",
50  "Amusements/Games/3D/Race",
51  "Amusements/Games/3D/Shoot",
52  "Amusements/Games/3D/Simulation",
53  "Amusements/Games/Action/Arcade",
54  "Amusements/Games/Action/Breakout",
55  "Amusements/Games/Action/Other",
56  "Amusements/Games/Action/Race",
57  "Amusements/Games/Action/Shoot",
58  "Amusements/Games/Board/Card",
59  "Amusements/Games/Board/Chess",
60  "Amusements/Games/Board/Other",
61  "Amusements/Games/Board/Pool",
62  "Amusements/Games/Board/Puzzle",
63  "Amusements/Games/Logic",
64  "Amusements/Games/Other",
65  "Amusements/Games/RPG",
66  "Amusements/Games/Strategy/Other",
67  "Amusements/Games/Strategy/Real Time",
68  "Amusements/Games/Strategy/Turn Based",
69  "Amusements/Toys/Background",
70  "Amusements/Toys/Clocks",
71  "Amusements/Toys/Graphics",
72  "Amusements/Toys/Other",
73  "Amusements/Toys/Screensavers",
74  "Development/Languages/C and C++",
75  "Development/Languages/Fortran",
76  "Development/Languages/Java",
77  "Development/Languages/Other",
78  "Development/Languages/Perl",
79  "Development/Languages/Python",
80  "Development/Languages/Scheme",
81  "Development/Languages/Tcl",
82  "Development/Libraries/C and C++",
83  "Development/Libraries/Cross",
84  "Development/Libraries/GNOME",
85  "Development/Libraries/Java",
86  "Development/Libraries/KDE",
87  "Development/Libraries/Other",
88  "Development/Libraries/Parallel",
89  "Development/Libraries/Perl",
90  "Development/Libraries/Python",
91  "Development/Libraries/Tcl",
92  "Development/Libraries/X11",
93  "Development/Libraries/YaST",
94  "Development/Tools/Building",
95  "Development/Tools/Debuggers",
96  "Development/Tools/Doc Generators",
97  "Development/Tools/GUI Builders",
98  "Development/Tools/IDE",
99  "Development/Tools/Navigators",
100  "Development/Tools/Other",
101  "Development/Tools/Version Control",
102  "Documentation/Howto",
103  "Documentation/Man",
104  "Documentation/Other",
105  "Documentation/SuSE",
106  "Hardware/Fax",
107  "Hardware/ISDN",
108  "Hardware/Joystick",
109  "Hardware/Mobile",
110  "Hardware/Modem",
111  "Hardware/Other",
112  "Hardware/Palm",
113  "Hardware/Printing",
114  "Hardware/Psion",
115  "Hardware/Radio",
116  "Hardware/Scanner",
117  "Hardware/TV",
118  "Hardware/UPS",
119  "Productivity/Archiving/Backup",
120  "Productivity/Archiving/Compression",
121  "Productivity/Clustering/Computing",
122  "Productivity/Clustering/HA",
123  "Productivity/Databases/Clients",
124  "Productivity/Databases/Servers",
125  "Productivity/Databases/Tools",
126  "Productivity/Editors/Emacs",
127  "Productivity/Editors/Other",
128  "Productivity/Editors/Vi",
129  "Productivity/File utilities",
130  "Productivity/Graphics/3D Editors",
131  "Productivity/Graphics/Bitmap Editors",
132  "Productivity/Graphics/CAD",
133  "Productivity/Graphics/Convertors",
134  "Productivity/Graphics/Other",
135  "Productivity/Graphics/Vector Editors",
136  "Productivity/Graphics/Viewers",
137  "Productivity/Graphics/Visualization/Graph",
138  "Productivity/Graphics/Visualization/Other",
139  "Productivity/Graphics/Visualization/Raytracers",
140  "Productivity/Hamradio/Fax",
141  "Productivity/Hamradio/Logging",
142  "Productivity/Hamradio/Morse",
143  "Productivity/Hamradio/Other",
144  "Productivity/Hamradio/Packet",
145  "Productivity/Hamradio/Psk31",
146  "Productivity/Hamradio/Satellite",
147  "Productivity/Multimedia/CD/Grabbers",
148  "Productivity/Multimedia/CD/Players",
149  "Productivity/Multimedia/CD/Record",
150  "Productivity/Multimedia/Other",
151  "Productivity/Multimedia/Sound/Editors and Convertors",
152  "Productivity/Multimedia/Sound/Midi",
153  "Productivity/Multimedia/Sound/Mixers",
154  "Productivity/Multimedia/Sound/Players",
155  "Productivity/Multimedia/Sound/Utilities",
156  "Productivity/Multimedia/Sound/Visualization",
157  "Productivity/Multimedia/Video/Editors and Convertors",
158  "Productivity/Multimedia/Video/Players",
159  "Productivity/Networking/AOLInstantMessenger",
160  "Productivity/Networking/Archie",
161  "Productivity/Networking/Boot/Clients",
162  "Productivity/Networking/Boot/Servers",
163  "Productivity/Networking/Boot/Utilities",
164  "Productivity/Networking/DNS/Servers",
165  "Productivity/Networking/DNS/Utilities",
166  "Productivity/Networking/Diagnostic",
167  "Productivity/Networking/Email/Clients",
168  "Productivity/Networking/Email/Mailinglists",
169  "Productivity/Networking/Email/Servers",
170  "Productivity/Networking/Email/Utilities",
171  "Productivity/Networking/Ftp/Clients",
172  "Productivity/Networking/Ftp/Servers",
173  "Productivity/Networking/H323/Clients",
174  "Productivity/Networking/H323/Servers",
175  "Productivity/Networking/H323/Utilities",
176  "Productivity/Networking/ICQ",
177  "Productivity/Networking/IRC",
178  "Productivity/Networking/LDAP/Clients",
179  "Productivity/Networking/LDAP/Servers",
180  "Productivity/Networking/NFS",
181  "Productivity/Networking/NIS",
182  "Productivity/Networking/Napster",
183  "Productivity/Networking/News/Clients",
184  "Productivity/Networking/News/Servers",
185  "Productivity/Networking/News/Utilities",
186  "Productivity/Networking/Novell",
187  "Productivity/Networking/Other",
188  "Productivity/Networking/PPP",
189  "Productivity/Networking/Radius/Clients",
190  "Productivity/Networking/Radius/Servers",
191  "Productivity/Networking/Routing",
192  "Productivity/Networking/SSH",
193  "Productivity/Networking/Samba",
194  "Productivity/Networking/Security",
195  "Productivity/Networking/System",
196  "Productivity/Networking/Talk/Clients",
197  "Productivity/Networking/Talk/Servers",
198  "Productivity/Networking/Web/Browsers",
199  "Productivity/Networking/Web/Frontends",
200  "Productivity/Networking/Web/Proxy",
201  "Productivity/Networking/Web/Servers",
202  "Productivity/Networking/Web/Utilities",
203  "Productivity/Office/Dictionary",
204  "Productivity/Office/Finance",
205  "Productivity/Office/Organizers",
206  "Productivity/Office/Other",
207  "Productivity/Office/Spreadsheets",
208  "Productivity/Office/Suite",
209  "Productivity/Other",
210  "Productivity/Publishing/DocBook",
211  "Productivity/Publishing/HTML/Editors",
212  "Productivity/Publishing/HTML/Tools",
213  "Productivity/Publishing/Other",
214  "Productivity/Publishing/PDF",
215  "Productivity/Publishing/PS",
216  "Productivity/Publishing/Presentation",
217  "Productivity/Publishing/SGML",
218  "Productivity/Publishing/TeX/Base",
219  "Productivity/Publishing/TeX/Fonts",
220  "Productivity/Publishing/TeX/Frontends",
221  "Productivity/Publishing/TeX/Utilities",
222  "Productivity/Publishing/Texinfo",
223  "Productivity/Publishing/Troff",
224  "Productivity/Publishing/Word",
225  "Productivity/Publishing/XML",
226  "Productivity/Scientific/Astronomy",
227  "Productivity/Scientific/Chemistry",
228  "Productivity/Scientific/Electronics",
229  "Productivity/Scientific/Math",
230  "Productivity/Scientific/Other",
231  "Productivity/Scientific/Physics",
232  "Productivity/Security",
233  "Productivity/Text/Convertors",
234  "Productivity/Text/Spell",
235  "Productivity/Text/Utilities",
236  "SuSE internal",
237  "System/Base",
238  "System/Benchmark",
239  "System/Boot",
240  "System/Console",
241  "System/Daemons",
242  "System/Emulators/Other",
243  "System/Emulators/PC",
244  "System/Fhs",
245  "System/Filesystems",
246  "System/GUI/GNOME",
247  "System/GUI/KDE",
248  "System/GUI/Other",
249  "System/I18n/Chinesse",
250  "System/I18n/Japanesse",
251  "System/I18n/Korean",
252  "System/Kernel",
253  "System/Libraries",
254  "System/Monitoring",
255  "System/Packages",
256  "System/Shells",
257  "System/Sound Daemons",
258  "System/X11/Displaymanagers",
259  "System/X11/Fonts",
260  "System/X11/Icons",
261  "System/X11/Servers/XF86_3",
262  "System/X11/Servers/XF86_4",
263  "System/X11/Terminals",
264  "System/X11/Utilities",
265  "System/YaST",
266  "Unsorted"
267 };
268 
269 #define DIM(ARRAY) ( sizeof( ARRAY ) / sizeof( ARRAY[0] ) )
270 
271 
272 void
274 {
275  for ( unsigned i=0; i < DIM( fallback_rpm_groups ); i++ )
276  {
277  addRpmGroup( fallback_rpm_groups[ i ] );
278  }
279 
280 #if 0
281  logTree();
282 #endif
283 }
void logTree()
Debugging - dump the tree into the log file.
Definition: YStringTree.cc:186
void addFallbackRpmGroups()
Add a predefined set of RPM groups.
YRpmGroupsTree()
Constructor.
Abstract base class for filter views with hierarchical filter criteria - e.g., RPM group tags...
Definition: YStringTree.h:41
YStringTreeItem * addRpmGroup(const std::string &rpmGroup)
Insert an RPM group into this tree if not already present.
virtual ~YRpmGroupsTree()
Destructor.