Advanced Settings Panel
[pierogi] / pirkeysetmanager.cpp
1 #include "pirkeysetmanager.h"
2
3 #include <QSettings>
4
5 #include "pirkeysetmetadata.h"
6 #include "pirselectkeysetform.h"
7 #include "pirkeysetwidgetitem.h"
8 #include "dialogs/pirfavoritesdialog.h"
9
10 #include "keysets/acer.h"
11 #include "keysets/adb.h"
12 #include "keysets/admiral.h"
13 #include "keysets/aiwa.h"
14 #include "keysets/anitech.h"
15 #include "keysets/aoc.h"
16 #include "keysets/apple.h"
17 #include "keysets/arcam.h"
18 #include "keysets/beko.h"
19 #include "keysets/benq.h"
20 #include "keysets/blaupunkt.h"
21 #include "keysets/bose.h"
22 #include "keysets/bush.h"
23 #include "keysets/cambridge.h"
24 #include "keysets/canon.h"
25 #include "keysets/changhong.h"
26 #include "keysets/cisco.h"
27 #include "keysets/compro.h"
28 #include "keysets/creative.h"
29 #include "keysets/crown.h"
30 #include "keysets/crownmustang.h"
31 #include "keysets/daewoo.h"
32 #include "keysets/dell.h"
33 #include "keysets/denon.h"
34 #include "keysets/deutschetelekom.h"
35 #include "keysets/digitalstream.h"
36 #include "keysets/directv.h"
37 #include "keysets/dish.h"
38 #include "keysets/dreambox.h"
39 #include "keysets/dse.h"
40 #include "keysets/dynex.h"
41 #include "keysets/ei.h"
42 #include "keysets/elgato.h"
43 #include "keysets/emerson.h"
44 #include "keysets/emtec.h"
45 #include "keysets/epson.h"
46 #include "keysets/fortec.h"
47 #include "keysets/foxtel.h"
48 #include "keysets/frontech.h"
49 #include "keysets/gadmei.h"
50 #include "keysets/genius.h"
51 #include "keysets/goldstar.h"
52 #include "keysets/goodmans.h"
53 #include "keysets/grundig.h"
54 #include "keysets/haier.h"
55 #include "keysets/hantarex.h"
56 #include "keysets/harmankardon.h"
57 #include "keysets/hauppauge.h"
58 #include "keysets/hitachi.h"
59 #include "keysets/homecast.h"
60 #include "keysets/hp.h"
61 #include "keysets/huawei.h"
62 #include "keysets/humax.h"
63 #include "keysets/hyundai.h"
64 #include "keysets/irobot.h"
65 #include "keysets/jvc.h"
66 #include "keysets/kaon.h"
67 #include "keysets/kathrein.h"
68 #include "keysets/kenwood.h"
69 #include "keysets/keymat.h"
70 #include "keysets/konka.h"
71 #include "keysets/lexuz.h"
72 #include "keysets/lg.h"
73 #include "keysets/lifetec.h"
74 #include "keysets/loewe.h"
75 #include "keysets/logitech.h"
76 #include "keysets/magnavox.h"
77 #include "keysets/magnum.h"
78 #include "keysets/mce.h"
79 #include "keysets/medialink.h"
80 #include "keysets/medion.h"
81 #include "keysets/mitsubishi.h"
82 #include "keysets/motorola.h"
83 #include "keysets/multichoice.h"
84 #include "keysets/nad.h"
85 #include "keysets/nec.h"
86 #include "keysets/nikon.h"
87 #include "keysets/nokia.h"
88 #include "keysets/octagon.h"
89 #include "keysets/olympus.h"
90 #include "keysets/onida.h"
91 #include "keysets/onkyo.h"
92 #include "keysets/orion.h"
93 #include "keysets/panasonic.h"
94 #include "keysets/pentax.h"
95 #include "keysets/philco.h"
96 #include "keysets/philips.h"
97 #include "keysets/pinnacle.h"
98 #include "keysets/pioneer.h"
99 #include "keysets/proview.h"
100 #include "keysets/qnap.h"
101 #include "keysets/raite.h"
102 #include "keysets/rca.h"
103 #include "keysets/roku.h"
104 #include "keysets/saba.h"
105 #include "keysets/sagem.h"
106 #include "keysets/samsung.h"
107 #include "keysets/sanyo.h"
108 #include "keysets/sharp.h"
109 #include "keysets/sinotec.h"
110 #include "keysets/sky.h"
111 #include "keysets/sony.h"
112 #include "keysets/starsat.h"
113 #include "keysets/strong.h"
114 #include "keysets/sylvania.h"
115 #include "keysets/technics.h"
116 #include "keysets/technisat.h"
117 #include "keysets/telefunken.h"
118 #include "keysets/telenet.h"
119 #include "keysets/thomson.h"
120 #include "keysets/tivo.h"
121 #include "keysets/topfield.h"
122 #include "keysets/toshiba.h"
123 #include "keysets/triax.h"
124 #include "keysets/united.h"
125 #include "keysets/universum.h"
126 #include "keysets/vestel.h"
127 #include "keysets/viewsat.h"
128 #include "keysets/viewsonic.h"
129 #include "keysets/virgin.h"
130 #include "keysets/vizio.h"
131 #include "keysets/wd.h"
132 #include "keysets/westinghouse.h"
133 #include "keysets/wiwa.h"
134 #include "keysets/xcruiser.h"
135 #include "keysets/yamaha.h"
136 #include "keysets/zenith.h"
137
138 #include "pirexception.h"
139
140 // Need mutex for thread support:
141 #include <QMutex>
142
143 // Debugging includes:
144 #include <iostream>
145
146 // Global communications mechanism:
147 extern bool stopRepeatingFlag;
148 extern QMutex stopRepeatingMutex;
149
150 // Global helper objects:
151 PIRMakeMgr makeManager;
152
153 // Now, on to the actual method definitions:
154
155 PIRKeysetManager::PIRKeysetManager()
156   : counter(0) // Note: Zero is now a sentinel value, no keysets can use it!
157 {
158   // Create the keysets.  Ugly!  This needs to be worked on!
159   setupKeyset(new AcerTV1(++counter));
160   setupKeyset(new AcerPC1(++counter));
161
162   setupKeyset(new ADBSTB1(++counter));
163   setupKeyset(new ADBSTB2(++counter));
164   setupKeyset(new ADBSTB3(++counter));
165   setupKeyset(new ADBSTB4(++counter));
166   setupKeyset(new ADBSTB5(++counter));
167   setupKeyset(new ADBSTB6(++counter));
168
169   setupKeyset(new AdmiralTV1(++counter));
170   setupKeyset(new AdmiralTV2(++counter));
171   setupKeyset(new AdmiralVCR1(++counter));
172
173   setupKeyset(new AiwaVCR1(++counter));
174   setupKeyset(new AiwaVCR2(++counter));
175   setupKeyset(new AiwaVCR3(++counter));
176   setupKeyset(new AiwaAudio1(++counter));
177   setupKeyset(new AiwaAudio1a(++counter));
178   setupKeyset(new AiwaAudio2(++counter));
179   setupKeyset(new AiwaAudio2a(++counter));
180   setupKeyset(new AiwaAudio2b(++counter));
181   setupKeyset(new AiwaAudio2c(++counter));
182   setupKeyset(new AiwaAudio3(++counter));
183   setupKeyset(new AiwaAudio4(++counter));
184   setupKeyset(new AiwaAudio5(++counter));
185   setupKeyset(new AiwaAudio6(++counter));
186   setupKeyset(new AiwaCarStereo1(++counter));
187   setupKeyset(new AiwaDVD1(++counter));
188
189   setupKeyset(new AnitechTV1(++counter));
190   setupKeyset(new AnitechVCR1(++counter));
191
192   setupKeyset(new AOCTV1(++counter));
193
194   setupKeyset(new AppleWhiteRemote(++counter));
195
196   setupKeyset(new ArcamReceiver1(++counter));
197
198   setupKeyset(new BekoTV1(++counter));
199
200   setupKeyset(new BenQTV1(++counter));
201
202   setupKeyset(new BlaupunktVCR1(++counter));
203
204   setupKeyset(new BoseRadio1(++counter));
205   setupKeyset(new BoseRadio2(++counter));
206   setupKeyset(new BoseRadio3(++counter));
207   setupKeyset(new BoseHomeTheater1(++counter));
208
209   setupKeyset(new BushTV1(++counter));
210   setupKeyset(new BushTV2(++counter));
211   setupKeyset(new BushSTB1(++counter));
212
213   setupKeyset(new CambridgeCD1(++counter));
214   setupKeyset(new CambridgeAudio1(++counter));
215   setupKeyset(new CambridgeAudio2(++counter));
216   setupKeyset(new CambridgeAudio3(++counter));
217   setupKeyset(new CambridgeDVD1(++counter));
218
219   setupKeyset(new CanonDSLR1(++counter));
220   setupKeyset(new CanonCamcorder1(++counter));
221   setupKeyset(new CanonPowershot1(++counter));
222
223   setupKeyset(new ChanghongTV1(++counter));
224   setupKeyset(new ChanghongTV1a(++counter));
225   setupKeyset(new ChanghongTV1b(++counter));
226   setupKeyset(new ChanghongTV2(++counter));
227   setupKeyset(new ChanghongTV3(++counter));
228
229   setupKeyset(new CiscoSTB1(++counter));
230   setupKeyset(new CiscoSTB2(++counter));
231   setupKeyset(new CiscoSTB3(++counter));
232
233   setupKeyset(new ComproTVCard1(++counter));
234
235   setupKeyset(new CreativeAudio1(++counter));
236   setupKeyset(new CreativeAudio2(++counter));
237   setupKeyset(new CreativeAudio3(++counter));
238   setupKeyset(new CreativeAudio4(++counter));
239
240   setupKeyset(new CrownTV1(++counter));
241   setupKeyset(new CrownAudio1(++counter));
242
243   setupKeyset(new CrownMustangTV1(++counter));
244
245   setupKeyset(new DaewooTV1(++counter));
246   setupKeyset(new DaewooTV2(++counter));
247   setupKeyset(new DaewooTV3(++counter));
248   setupKeyset(new DaewooTV4(++counter));
249   setupKeyset(new DaewooTV5(++counter));
250   setupKeyset(new DaewooDVD1(++counter));
251   setupKeyset(new DaewooVCR1(++counter));
252   setupKeyset(new DaewooVCR2(++counter));
253
254   setupKeyset(new DenonDVD1(++counter));
255   setupKeyset(new DenonDVD2(++counter));
256   setupKeyset(new DenonDVD3(++counter));
257   setupKeyset(new DenonReceiver1(++counter));
258   setupKeyset(new DenonReceiver1a(++counter));
259   setupKeyset(new DenonReceiver1b(++counter));
260   setupKeyset(new DenonReceiver1c(++counter));
261   setupKeyset(new DenonReceiver1d(++counter));
262   setupKeyset(new DenonReceiver1e(++counter));
263   setupKeyset(new DenonReceiver1f(++counter));
264   setupKeyset(new DenonReceiver2(++counter));
265   setupKeyset(new DenonReceiver2a(++counter));
266   setupKeyset(new DenonReceiver3(++counter));
267   setupKeyset(new DenonAudio1(++counter));
268   setupKeyset(new DenonAudio1a(++counter));
269   setupKeyset(new DenonAudio1b(++counter));
270   setupKeyset(new DenonAudio1c(++counter));
271   setupKeyset(new DenonAudio1d(++counter));
272   setupKeyset(new DenonAudio2(++counter));
273   setupKeyset(new DenonAudio3(++counter));
274   setupKeyset(new DenonAudio4(++counter));
275
276   setupKeyset(new DellRemote1(++counter));
277
278 //  setupKeyset(new DeutscheTelekomSTB1(++counter));
279
280   setupKeyset(new DigitalStreamReceiver(++counter));
281
282   setupKeyset(new DirectvReceiver1(++counter));
283   setupKeyset(new DirectvReceiver1a(++counter));
284   setupKeyset(new DirectvReceiver1b(++counter));
285   setupKeyset(new DirectvReceiver1c(++counter));
286   setupKeyset(new DirectvReceiver1d(++counter));
287   setupKeyset(new DirectvReceiver1e(++counter));
288
289   setupKeyset(new DishReceiver1(++counter));
290   setupKeyset(new DishReceiver1a(++counter));
291   setupKeyset(new DishReceiver1b(++counter));
292   setupKeyset(new DishReceiver1c(++counter));
293   setupKeyset(new DishReceiver1d(++counter));
294   setupKeyset(new DishReceiver1e(++counter));
295   setupKeyset(new DishReceiver1f(++counter));
296   setupKeyset(new DishReceiver1g(++counter));
297   setupKeyset(new DishReceiver1h(++counter));
298   setupKeyset(new DishReceiver1i(++counter));
299   setupKeyset(new DishReceiver1j(++counter));
300   setupKeyset(new DishReceiver1k(++counter));
301   setupKeyset(new DishReceiver1l(++counter));
302   setupKeyset(new DishReceiver1m(++counter));
303   setupKeyset(new DishReceiver1n(++counter));
304   setupKeyset(new DishReceiver1o(++counter));
305
306   setupKeyset(new DreamboxSat1(++counter));
307   setupKeyset(new DreamboxSat1a(++counter));
308   setupKeyset(new DreamboxSat1b(++counter));
309   setupKeyset(new DreamboxSat1c(++counter));
310   setupKeyset(new DreamboxSat2(++counter));
311   setupKeyset(new DreamboxSat3(++counter));
312   setupKeyset(new DreamboxSat4(++counter));
313   setupKeyset(new DreamboxSat5(++counter));
314
315   setupKeyset(new DSEDVD1(++counter));
316   setupKeyset(new DSESat1(++counter));
317
318   setupKeyset(new DynexTV1(++counter));
319
320   setupKeyset(new EiTV1(++counter));
321
322   setupKeyset(new ElgatoEyeTV1(++counter));
323
324   setupKeyset(new EmersonTV1(++counter));
325   setupKeyset(new EmersonDVD1(++counter));
326
327   setupKeyset(new EmtecSTB1(++counter));
328   setupKeyset(new EmtecSTB2(++counter));
329
330   setupKeyset(new EpsonProjector1(++counter));
331   setupKeyset(new EpsonProjector2(++counter));
332
333   setupKeyset(new FortecReceiver1(++counter));
334   setupKeyset(new FortecReceiver2(++counter));
335
336   setupKeyset(new FoxtelSTB1(++counter));
337   setupKeyset(new FoxtelSTB2(++counter));
338
339   setupKeyset(new FrontechTV1(++counter));
340   setupKeyset(new FrontechTV2(++counter));
341
342   setupKeyset(new GadmeiTuner1(++counter));
343
344   setupKeyset(new GeniusSpeakers1(++counter));
345
346   setupKeyset(new GoldStarTV1(++counter));
347   setupKeyset(new GoldStarTV2(++counter));
348   setupKeyset(new GoldStarVCR1(++counter));
349   setupKeyset(new GoldStarVCR1a(++counter));
350   setupKeyset(new GoldStarVCR1b(++counter));
351   setupKeyset(new GoldStarVCR1c(++counter));
352   setupKeyset(new GoldStarCD1(++counter));
353
354   setupKeyset(new GoodmansSTB1(++counter));
355   setupKeyset(new GoodmansVCR1(++counter));
356   setupKeyset(new GoodmansDVD1(++counter));
357   setupKeyset(new GoodmansAudio1(++counter));
358
359   setupKeyset(new GrundigSat1(++counter));
360   setupKeyset(new GrundigSat2(++counter));
361   setupKeyset(new GrundigSat3(++counter));
362   setupKeyset(new GrundigAmp1(++counter));
363   setupKeyset(new GrundigAudio1(++counter));
364   setupKeyset(new GrundigAudio2(++counter));
365   setupKeyset(new GrundigVCR1(++counter));
366   setupKeyset(new GrundigVCR1a(++counter));
367   setupKeyset(new GrundigTV1(++counter));
368   setupKeyset(new GrundigTV2(++counter));
369   setupKeyset(new GrundigTV3(++counter));
370   setupKeyset(new GrundigTV4(++counter));
371   setupKeyset(new GrundigDVD1(++counter));
372
373   setupKeyset(new HaierTV1(++counter));
374
375   setupKeyset(new HantarexTV1(++counter));
376   setupKeyset(new HantarexTV2(++counter));
377
378   setupKeyset(new HarmanKardonAmp1(++counter));
379   setupKeyset(new HarmanKardonAmp2(++counter));
380   setupKeyset(new HarmanKardonReceiver2(++counter));
381   setupKeyset(new HarmanKardonTape1(++counter));
382   setupKeyset(new HarmanKardonDVD1(++counter));
383   setupKeyset(new HarmanKardonDVD1a(++counter));
384   setupKeyset(new HarmanKardonCD1(++counter));
385   setupKeyset(new HarmanKardonCD2(++counter));
386
387   setupKeyset(new HauppaugePCTV1(++counter));
388   setupKeyset(new HauppaugePCTV1a(++counter));
389   setupKeyset(new HauppaugePCTV1b(++counter));
390   setupKeyset(new HauppaugePCTV1c(++counter));
391   setupKeyset(new HauppaugePCTV2(++counter));
392
393   setupKeyset(new HitachiTV1(++counter));
394   setupKeyset(new HitachiTV1a(++counter));
395   setupKeyset(new HitachiTV1b(++counter));
396   setupKeyset(new HitachiTV1c(++counter));
397   setupKeyset(new HitachiTV2(++counter));
398   setupKeyset(new HitachiTV3(++counter));
399   setupKeyset(new HitachiProjector(++counter));
400   setupKeyset(new HitachiDVD1(++counter));
401   setupKeyset(new HitachiAudio1(++counter));
402   setupKeyset(new HitachiVCR1(++counter));
403
404   setupKeyset(new HomecastReceiver1(++counter));
405   setupKeyset(new HomecastReceiver2(++counter));
406
407   setupKeyset(new HPRemote1(++counter));
408
409   setupKeyset(new HuaweiSTB1(++counter));
410   setupKeyset(new HuaweiSTB2(++counter));
411
412   setupKeyset(new HumaxReceiver1(++counter));
413   setupKeyset(new HumaxReceiver2(++counter));
414   setupKeyset(new HumaxReceiver3(++counter));
415
416   setupKeyset(new HyundaiDVD1(++counter));
417   setupKeyset(new HyundaiAudio1(++counter));
418   setupKeyset(new HyundaiTV1(++counter));
419
420   setupKeyset(new IRobotRoomba1(++counter));
421
422   setupKeyset(new JVCSat1(++counter));
423   setupKeyset(new JVCSat2(++counter));
424   setupKeyset(new JVCVCR1(++counter));
425   setupKeyset(new JVCVCR1a(++counter));
426   setupKeyset(new JVCVCRBmode1(++counter));
427   setupKeyset(new JVCVCRBmode1a(++counter));
428   setupKeyset(new JVCTV1(++counter));
429   setupKeyset(new JVCTV1a(++counter));
430   setupKeyset(new JVCTV1b(++counter));
431   setupKeyset(new JVCTV1c(++counter));
432   setupKeyset(new JVCTV1d(++counter));
433   setupKeyset(new JVCDAT1(++counter));
434   setupKeyset(new JVCCarDeck1(++counter));
435   setupKeyset(new JVCAudio1(++counter));
436   setupKeyset(new JVCAudio1a(++counter));
437   setupKeyset(new JVCAudio1b(++counter));
438   setupKeyset(new JVCAudio2(++counter));
439   setupKeyset(new JVCDVD1(++counter));
440
441   setupKeyset(new KaonSat1(++counter));
442
443   setupKeyset(new KathreinSat1(++counter));
444   setupKeyset(new KathreinSat2(++counter));
445   setupKeyset(new KathreinSat3(++counter));
446
447   setupKeyset(new KenwoodAudio1(++counter));
448   setupKeyset(new KenwoodComponent1(++counter));
449   setupKeyset(new KenwoodComponent2(++counter));
450   setupKeyset(new KenwoodComponent3(++counter));
451   setupKeyset(new KenwoodCD1(++counter));
452   setupKeyset(new KenwoodDVD1(++counter));
453   setupKeyset(new KenwoodTV1(++counter));
454
455   setupKeyset(new KeymatTV1(++counter));
456   setupKeyset(new KeymatTV2(++counter));
457
458   setupKeyset(new KonkaTV1(++counter));
459   setupKeyset(new KonkaTV2(++counter));
460
461   setupKeyset(new LexuzDVB1(++counter));
462
463   setupKeyset(new LGTV1(++counter));
464   setupKeyset(new LGTV1a(++counter));
465   setupKeyset(new LGTV1b(++counter));
466   setupKeyset(new LGTV1c(++counter));
467   setupKeyset(new LGTV2(++counter));
468   setupKeyset(new LGTV2a(++counter));
469   setupKeyset(new LGTV2b(++counter));
470   setupKeyset(new LGHT1(++counter));
471   setupKeyset(new LGHT2(++counter));
472   setupKeyset(new LGHT2a(++counter));
473   setupKeyset(new LGDisc1(++counter));
474   setupKeyset(new LGDisc2(++counter));
475   setupKeyset(new LGDisc2a(++counter));
476   setupKeyset(new LGVCR1(++counter));
477   setupKeyset(new LGVCR1a(++counter));
478   setupKeyset(new LGVCR1b(++counter));
479   setupKeyset(new LGAC1(++counter));
480
481   setupKeyset(new LifetecTV1(++counter));
482   setupKeyset(new LifetecTV2(++counter));
483   setupKeyset(new LifetecVCR1(++counter));
484   setupKeyset(new LifetecAudio1(++counter));
485
486   setupKeyset(new LoeweTV1(++counter));
487   setupKeyset(new LoeweVCR1(++counter));
488   setupKeyset(new LoeweDVD1(++counter));
489
490   setupKeyset(new LogitechSpeakers(++counter));
491   setupKeyset(new LogitechSqueezebox(++counter));
492
493   setupKeyset(new MagnavoxDVD1(++counter));
494   setupKeyset(new MagnavoxVCR1(++counter));
495   setupKeyset(new MagnavoxConverterBox1(++counter));
496   setupKeyset(new MagnavoxTV1(++counter));
497
498   setupKeyset(new MagnumTV1(++counter));
499
500   setupKeyset(new MCERemote1(++counter));
501   setupKeyset(new MCERemote1a(++counter));
502   setupKeyset(new MCERemote1b(++counter));
503   setupKeyset(new MCERemote1c(++counter));
504   setupKeyset(new MCERemote1d(++counter));
505   setupKeyset(new MCERemote1e(++counter));
506   setupKeyset(new MCERemote1f(++counter));
507   setupKeyset(new MCERemote1g(++counter));
508
509   setupKeyset(new MedialinkSTB1(++counter));
510
511   setupKeyset(new MedionSTB1(++counter));
512   setupKeyset(new MedionDVD1(++counter));
513   setupKeyset(new MedionDVD2(++counter));
514   setupKeyset(new MedionVCR1(++counter));
515
516   setupKeyset(new MitsubishiTV1(++counter));
517   setupKeyset(new MitsubishiTV1a(++counter));
518   setupKeyset(new MitsubishiVCR1(++counter));
519   setupKeyset(new MitsubishiVCR1a(++counter));
520   setupKeyset(new MitsubishiProjector1(++counter));
521
522   setupKeyset(new Motorola4DTV(++counter));
523   setupKeyset(new MotorolaSTB1(++counter));
524   setupKeyset(new MotorolaSTB1a(++counter));
525   setupKeyset(new MotorolaSTB1b(++counter));
526   setupKeyset(new MotorolaSkyDigital(++counter));
527
528   setupKeyset(new MultichoiceSTB1(++counter));
529   setupKeyset(new MultichoiceSTB2(++counter));
530
531   setupKeyset(new NADAudio1(++counter));
532   setupKeyset(new NADTuner1(++counter));
533   setupKeyset(new NADDVD1(++counter));
534   setupKeyset(new NADCD1(++counter));
535   setupKeyset(new NADCD2(++counter));
536   setupKeyset(new NADTape1(++counter));
537
538   setupKeyset(new NECTV1(++counter));
539   setupKeyset(new NECVCR1(++counter));
540   setupKeyset(new NECVCR2(++counter));
541   setupKeyset(new NECVCR3(++counter));
542   setupKeyset(new NECDVD1(++counter));
543   setupKeyset(new NECProjector1(++counter));
544   setupKeyset(new NECProjector2(++counter));
545
546   setupKeyset(new NikonDSLR1(++counter));
547
548   setupKeyset(new NokiaGenericVCR(++counter));
549
550   setupKeyset(new OctagonSat1(++counter));
551   setupKeyset(new OctagonSat1a(++counter));
552   setupKeyset(new OctagonSat2(++counter));
553
554   setupKeyset(new OlympusCamera1(++counter));
555
556   setupKeyset(new OnidaTV1(++counter));
557   setupKeyset(new OnidaDVD1(++counter));
558
559   setupKeyset(new OnkyoAudio1(++counter));
560   setupKeyset(new OnkyoAudio2(++counter));
561   setupKeyset(new OnkyoAudio2a(++counter));
562   setupKeyset(new OnkyoAudio3(++counter));
563   setupKeyset(new OnkyoAudio4(++counter));
564   setupKeyset(new OnkyoAudio5(++counter));
565   setupKeyset(new OnkyoDVD1(++counter));
566   setupKeyset(new OnkyoDVD2(++counter));
567
568   setupKeyset(new OrionTV1(++counter));
569   setupKeyset(new OrionTV2(++counter));
570   setupKeyset(new OrionTV3(++counter));
571   setupKeyset(new OrionVCR1(++counter));
572   setupKeyset(new OrionVCR2(++counter));
573   setupKeyset(new OrionDVD1(++counter));
574
575   setupKeyset(new PanasonicCarAudio(++counter));
576   setupKeyset(new PanasonicSat1(++counter));
577   setupKeyset(new PanasonicSat1a(++counter));
578   setupKeyset(new PanasonicTV1(++counter));
579   setupKeyset(new PanasonicTV1a(++counter));
580   setupKeyset(new PanasonicTV1b(++counter));
581   setupKeyset(new PanasonicVCR1(++counter));
582   setupKeyset(new PanasonicVCR1a(++counter));
583   setupKeyset(new PanasonicVCR1b(++counter));
584   setupKeyset(new PanasonicVCR1c(++counter));
585   setupKeyset(new PanasonicDVD1(++counter));
586   setupKeyset(new PanasonicDVD1a(++counter));
587   setupKeyset(new PanasonicAudio1(++counter));
588   setupKeyset(new PanasonicAudio2(++counter));
589   setupKeyset(new PanasonicAudio2a(++counter));
590   setupKeyset(new PanasonicAC1(++counter));
591
592   setupKeyset(new PentaxCamera1(++counter));
593
594   setupKeyset(new PhilcoTV(++counter));
595
596   setupKeyset(new PhilipsTV1(++counter));
597   setupKeyset(new PhilipsTV1a(++counter));
598   setupKeyset(new PhilipsTV1b(++counter));
599   setupKeyset(new PhilipsTV1c(++counter));
600   setupKeyset(new PhilipsTV1d(++counter));
601   setupKeyset(new PhilipsTV1e(++counter));
602   setupKeyset(new PhilipsTV1f(++counter));
603   setupKeyset(new PhilipsTV2(++counter));
604   setupKeyset(new PhilipsTV2a(++counter));
605   setupKeyset(new PhilipsTV2b(++counter));
606   setupKeyset(new PhilipsTV3(++counter));
607   setupKeyset(new PhilipsDVD1(++counter));
608   setupKeyset(new PhilipsDVD1a(++counter));
609   setupKeyset(new PhilipsDVD1b(++counter));
610   setupKeyset(new PhilipsDVD1c(++counter));
611   setupKeyset(new PhilipsDVD1d(++counter));
612   setupKeyset(new PhilipsDVD2(++counter));
613   setupKeyset(new PhilipsDVD3(++counter));
614   setupKeyset(new PhilipsDVD3a(++counter));
615   setupKeyset(new PhilipsDVD4(++counter));
616   setupKeyset(new PhilipsVCR1(++counter));
617   setupKeyset(new PhilipsVCR1a(++counter));
618   setupKeyset(new PhilipsVCR1b(++counter));
619   setupKeyset(new PhilipsVCR1c(++counter));
620   setupKeyset(new PhilipsSat1(++counter));
621   setupKeyset(new PhilipsSat2(++counter));
622   setupKeyset(new PhilipsSat2a(++counter));
623   setupKeyset(new PhilipsSat3(++counter));
624   setupKeyset(new PhilipsAudio1(++counter));
625   setupKeyset(new PhilipsAudio1a(++counter));
626   setupKeyset(new PhilipsAudio1b(++counter));
627   setupKeyset(new PhilipsAudio2(++counter));
628   setupKeyset(new PhilipsAudio3(++counter));
629   setupKeyset(new PhilipsAudio4(++counter));
630
631   setupKeyset(new PinnaclePCTV1(++counter));
632   setupKeyset(new PinnaclePCTV2(++counter));
633   setupKeyset(new PinnaclePCTV3(++counter));
634
635   setupKeyset(new PioneerTV1(++counter));
636   setupKeyset(new PioneerTV2(++counter));
637   setupKeyset(new PioneerTV3(++counter));
638   setupKeyset(new PioneerAudio1(++counter));
639   setupKeyset(new PioneerAudio1a(++counter));
640   setupKeyset(new PioneerAudio2(++counter));
641   setupKeyset(new PioneerAudio3(++counter));
642   setupKeyset(new PioneerAudio4(++counter));
643   setupKeyset(new PioneerAudio5(++counter));
644   setupKeyset(new PioneerCD1(++counter));
645   setupKeyset(new PioneerLaserDisc1(++counter));
646   setupKeyset(new PioneerDVD1(++counter));
647   setupKeyset(new PioneerCarStereo1(++counter));
648
649   setupKeyset(new ProviewDVD1(++counter));
650
651   setupKeyset(new QNAPPlayer1(++counter));
652
653   setupKeyset(new RaiteDVD1(++counter));
654
655   setupKeyset(new RCATV1(++counter));
656   setupKeyset(new RCATV1a(++counter));
657   setupKeyset(new RCATV1b(++counter));
658 //  setupKeyset(new RCAAux1(++counter));
659 //  setupKeyset(new RCAAux2(++counter));
660 //  setupKeyset(new RCAAux2a(++counter));
661   setupKeyset(new RCAVCR1(++counter));
662   setupKeyset(new RCAVCR1a(++counter));
663   setupKeyset(new RCADVD1(++counter));
664   setupKeyset(new RCADVD1a(++counter));
665   setupKeyset(new RCASat1(++counter));
666   setupKeyset(new RCASat2(++counter));
667
668   setupKeyset(new RokuBox1(++counter));
669   setupKeyset(new RokuBox2(++counter));
670
671   setupKeyset(new SabaTV1(++counter));
672   setupKeyset(new SabaTV2(++counter));
673
674   setupKeyset(new SagemTVBox1(++counter));
675   setupKeyset(new SagemTVBox1a(++counter));
676
677   setupKeyset(new SamsungTV1(++counter));
678   setupKeyset(new SamsungTV1a(++counter));
679   setupKeyset(new SamsungTV1b(++counter));
680   setupKeyset(new SamsungTV1c(++counter));
681   setupKeyset(new SamsungTV1d(++counter));
682   setupKeyset(new SamsungTV1e(++counter));
683   setupKeyset(new SamsungTV1f(++counter));
684   setupKeyset(new SamsungTV2(++counter));
685   setupKeyset(new SamsungTV2a(++counter));
686   setupKeyset(new SamsungVCR1(++counter));
687   setupKeyset(new SamsungVCR1a(++counter));
688   setupKeyset(new SamsungVCR1b(++counter));
689   setupKeyset(new SamsungVCR1c(++counter));
690   setupKeyset(new SamsungVCR1d(++counter));
691   setupKeyset(new SamsungVCR1e(++counter));
692   setupKeyset(new SamsungDVD1(++counter));
693   setupKeyset(new SamsungDVD1a(++counter));
694   setupKeyset(new SamsungDVD1b(++counter));
695   setupKeyset(new SamsungDVD2(++counter));
696   setupKeyset(new SamsungAC1(++counter));
697   setupKeyset(new SamsungDVBT1(++counter));
698
699   setupKeyset(new SanyoVCR1(++counter));
700   setupKeyset(new SanyoDVD1(++counter));
701   setupKeyset(new SanyoTV1(++counter));
702   setupKeyset(new SanyoTV1a(++counter));
703   setupKeyset(new SanyoTV1b(++counter));
704   setupKeyset(new SanyoTV1c(++counter));
705   setupKeyset(new SanyoTV1d(++counter));
706   setupKeyset(new SanyoProjector(++counter));
707
708   setupKeyset(new SharpTV1(++counter));
709   setupKeyset(new SharpTV1a(++counter));
710   setupKeyset(new SharpTV1b(++counter));
711   setupKeyset(new SharpTV1c(++counter));
712   setupKeyset(new SharpTV1d(++counter));
713   setupKeyset(new SharpTV1e(++counter));
714   setupKeyset(new SharpVCR1(++counter));
715   setupKeyset(new SharpReceiver1(++counter));
716   setupKeyset(new SharpAC1(++counter));
717
718   setupKeyset(new SinotecTV1(++counter));
719   setupKeyset(new SinotecTV2(++counter));
720
721   setupKeyset(new SkyReceiver1(++counter));
722   setupKeyset(new SkyReceiver1a(++counter));
723
724   setupKeyset(new SonyTV1(++counter));
725   setupKeyset(new SonyTV1a(++counter));
726   setupKeyset(new SonyTV1b(++counter));
727   setupKeyset(new SonyTV1c(++counter));
728   setupKeyset(new SonyTV2(++counter));
729   setupKeyset(new SonyAmp1(++counter));
730   setupKeyset(new SonyAmp2(++counter));
731   setupKeyset(new SonyAudio1(++counter));
732   setupKeyset(new SonyAudio1a(++counter));
733   setupKeyset(new SonyDAT1(++counter));
734   setupKeyset(new SonyDVD1(++counter));
735   setupKeyset(new SonyDVD1a(++counter));
736   setupKeyset(new SonyDVD1b(++counter));
737   setupKeyset(new SonyDVD1c(++counter));
738   setupKeyset(new SonyDVD2(++counter));
739   setupKeyset(new SonyDVD2a(++counter));
740   setupKeyset(new SonyVCR1(++counter));
741   setupKeyset(new SonyVCR1a(++counter));
742   setupKeyset(new SonyVCR1b(++counter));
743   setupKeyset(new SonyReceiver1(++counter));
744   setupKeyset(new SonyCD1(++counter));
745   setupKeyset(new SonyCD1a(++counter));
746   setupKeyset(new SonyCD1b(++counter));
747   setupKeyset(new SonyProjector1(++counter));
748   setupKeyset(new SonyProjector1a(++counter));
749
750   setupKeyset(new StarsatSat1(++counter));
751
752   setupKeyset(new StrongSat1(++counter));
753   setupKeyset(new StrongSat2(++counter));
754   setupKeyset(new StrongSat3(++counter));
755   setupKeyset(new StrongSat4(++counter));
756
757   setupKeyset(new SylvaniaTV1(++counter));
758
759   setupKeyset(new TechnicsAudio1(++counter));
760   setupKeyset(new TechnicsAudio1a(++counter));
761   setupKeyset(new TechnicsAudio2(++counter));
762   setupKeyset(new TechnicsAudio3(++counter));
763   setupKeyset(new TechnicsAudio3a(++counter));
764   setupKeyset(new TechnicsDVD1(++counter));
765
766   setupKeyset(new TechnisatSTB1(++counter));
767   setupKeyset(new TechnisatSTB1a(++counter));
768   setupKeyset(new TechnisatSTB2(++counter));
769   setupKeyset(new TechnisatSTB2a(++counter));
770   setupKeyset(new TechnisatSTB3(++counter));
771   setupKeyset(new TechnisatSTB3a(++counter));
772
773   setupKeyset(new TelefunkenTV1(++counter));
774   setupKeyset(new TelefunkenTV1a(++counter));
775
776   setupKeyset(new TelenetSTB1(++counter));
777
778   setupKeyset(new ThomsonConverter1(++counter));
779   setupKeyset(new ThomsonTV1(++counter));
780   setupKeyset(new ThomsonVCR1(++counter));
781   setupKeyset(new ThomsonVCR1a(++counter));
782   setupKeyset(new ThomsonDVD1(++counter));
783   setupKeyset(new ThomsonSat1(++counter));
784   setupKeyset(new ThomsonAudio1(++counter));
785   setupKeyset(new ThomsonAudio2(++counter));
786
787   setupKeyset(new Tivo1(++counter));
788   setupKeyset(new Tivo1a(++counter));
789   setupKeyset(new Tivo1b(++counter));
790   setupKeyset(new Tivo1c(++counter));
791   setupKeyset(new Tivo1d(++counter));
792
793   setupKeyset(new TopfieldPVR1(++counter));
794   setupKeyset(new TopfieldSat1(++counter));
795
796   setupKeyset(new ToshibaTV1(++counter));
797   setupKeyset(new ToshibaTV1a(++counter));
798   setupKeyset(new ToshibaTV1b(++counter));
799   setupKeyset(new ToshibaTV1c(++counter));
800   setupKeyset(new ToshibaTV1d(++counter));
801   setupKeyset(new ToshibaTV1e(++counter));
802   setupKeyset(new ToshibaTV1f(++counter));
803   setupKeyset(new ToshibaTV1g(++counter));
804   setupKeyset(new ToshibaTV1h(++counter));
805   setupKeyset(new ToshibaTV1i(++counter));
806   setupKeyset(new ToshibaVCR1(++counter));
807   setupKeyset(new ToshibaVCR1a(++counter));
808   setupKeyset(new ToshibaDisc1(++counter));
809   setupKeyset(new ToshibaDisc1a(++counter));
810   setupKeyset(new ToshibaDisc1b(++counter));
811   setupKeyset(new ToshibaDisc1c(++counter));
812   setupKeyset(new ToshibaDisc1d(++counter));
813
814   setupKeyset(new TriaxSTB1(++counter));
815   setupKeyset(new TriaxSTB2(++counter));
816   setupKeyset(new TriaxSTB2a(++counter));
817   setupKeyset(new TriaxSTB3(++counter));
818   setupKeyset(new TriaxSTB3a(++counter));
819   setupKeyset(new TriaxSTB4(++counter));
820
821   setupKeyset(new UnitedDVD1(++counter));
822   setupKeyset(new UnitedDVBT1(++counter));
823
824   setupKeyset(new UniversumVCR1(++counter));
825   setupKeyset(new UniversumVCR2(++counter));
826   setupKeyset(new UniversumVCR3(++counter));
827   setupKeyset(new UniversumTV1(++counter));
828   setupKeyset(new UniversumTV1a(++counter));
829   setupKeyset(new UniversumSat1(++counter));
830   setupKeyset(new UniversumAudio1(++counter));
831
832   setupKeyset(new VestelTV1(++counter));
833   setupKeyset(new VestelTV2(++counter));
834
835   setupKeyset(new ViewsatSat1(++counter));
836   setupKeyset(new ViewsatSat1a(++counter));
837
838   setupKeyset(new ViewsonicProjector1(++counter));
839   setupKeyset(new ViewsonicProjector2(++counter));
840
841   setupKeyset(new VirginSTB1(++counter));
842
843   setupKeyset(new VizioTV1(++counter));
844
845   setupKeyset(new WDMediaPlayer1(++counter));
846   setupKeyset(new WDMediaPlayer1a(++counter));
847   setupKeyset(new WDMediaPlayer1b(++counter));
848
849   setupKeyset(new WestinghouseTV1(++counter));
850   setupKeyset(new WestinghouseTV2(++counter));
851
852   setupKeyset(new WiwaSTB1(++counter));
853
854   setupKeyset(new XcruiserSat1(++counter));
855
856   setupKeyset(new YamahaDVD1(++counter));
857   setupKeyset(new YamahaDVD1a(++counter));
858   setupKeyset(new YamahaAudio1(++counter));
859   setupKeyset(new YamahaAudio1a(++counter));
860   setupKeyset(new YamahaAudio2(++counter));
861   setupKeyset(new YamahaAudio2a(++counter));
862   setupKeyset(new YamahaAudio2b(++counter));
863   setupKeyset(new YamahaAudio2c(++counter));
864   setupKeyset(new YamahaAudio2d(++counter));
865   setupKeyset(new YamahaAudio3(++counter));
866   setupKeyset(new YamahaAudio4(++counter));
867   setupKeyset(new YamahaTV1(++counter));
868   setupKeyset(new YamahaKaraoke1(++counter));
869
870   setupKeyset(new ZenithTV1(++counter));
871   setupKeyset(new ZenithConverterBox1(++counter));
872
873   // Start the thread running:
874   commandThread.start();
875 }
876
877
878 PIRKeysetManager::~PIRKeysetManager()
879 {
880   // Tell the keysets to stop doing any work:
881   {
882     QMutexLocker locker(&stopRepeatingMutex);
883     stopRepeatingFlag = true;
884   }
885
886   // Delete all the keysets:
887   PIRKeysetCollection::iterator i = keysetsInfo.begin();
888   while (i != keysetsInfo.end())
889   {
890     if ((*i).second) delete (*i).second;
891     ++i;
892   }
893
894   // Tell the thread that we want it to stop:
895   commandThread.exit();
896
897   // Wait for the thread to stop:
898   commandThread.wait();
899 }
900
901
902 bool PIRKeysetManager::keysetExists(
903   unsigned int keysetID) const
904 {
905   PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
906
907   return (i != keysetsInfo.end());
908 }
909
910
911 bool PIRKeysetManager::findKeysetID(
912   QString make,
913   QString name,
914   unsigned int &id) const
915 {
916   // Only modify the id if we actually find a match!
917
918   PIRKeysetMakeIndex::const_iterator i = makeIndex.find(make);
919   if (i == makeIndex.end())
920   {
921     return false;
922   }
923
924   PIRKeysetNameIndex::const_iterator ii = (*i).second.find(name);
925   if (ii == (*i).second.end())
926   {
927     return false;
928   }
929
930   //  Ok, we've found it, pull out the id:
931   id = (*ii).second;
932   return true;
933 }
934
935
936 PIRKeysetWidgetItem *PIRKeysetManager::makeKeysetItem(
937   QString make,
938   QString name) const
939 {
940   unsigned int id;
941
942   if (!findKeysetID(make, name, id))
943   {
944     return NULL;
945   }
946
947   QString fullname = make;
948   fullname.append(" ");
949   fullname.append(name);
950
951   return new PIRKeysetWidgetItem(fullname, name, id, getMake(id));
952 }
953
954
955 bool PIRKeysetManager::hasKey(
956   unsigned int keysetID,
957   PIRKeyName name) const
958 {
959   PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
960
961   if ((i == keysetsInfo.end()) || !i->second) return false;
962
963   return i->second->hasKey(name);
964 }
965
966
967 PIRMakeName PIRKeysetManager::getMake(
968   unsigned int keysetID) const
969 {
970   PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
971
972   if ((i == keysetsInfo.end()) || !i->second) return Any_Make;
973
974   return i->second->getMake();
975 }
976
977
978 QString PIRKeysetManager::getDisplayName(
979   unsigned int keysetID) const
980 {
981   PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
982
983   if ((i == keysetsInfo.end()) || !i->second)
984     return QString("Database Error");
985
986   return QString(i->second->getKeysetName());
987 }
988
989
990 void PIRKeysetManager::populateKeyset(
991   QObject *guiObject,
992   unsigned int keysetID)
993 {
994   PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
995
996   if (i == keysetsInfo.end())
997   {
998     // Should have some sort of error message here!
999     return;
1000   }
1001
1002   i->second->populateProtocol(guiObject);
1003   i->second->moveToThread(&commandThread);
1004 }
1005
1006
1007 unsigned int PIRKeysetManager::getCarrierFrequency(
1008   unsigned int keysetID)
1009 {
1010   PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1011
1012   if (i == keysetsInfo.end())
1013   {
1014     return 0;
1015   }
1016
1017   return i->second->getCarrierFrequency();
1018 }
1019
1020
1021 void PIRKeysetManager::setCarrierFrequency(
1022   unsigned int carrierFrequency,
1023   unsigned int keysetID)
1024 {
1025   PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1026
1027   if (i == keysetsInfo.end())
1028   {
1029     return;
1030   }
1031
1032   i->second->setCarrierFrequency(carrierFrequency);
1033 }
1034
1035
1036 unsigned int PIRKeysetManager::getDutyCycle(
1037   unsigned int keysetID)
1038 {
1039   PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1040
1041   if (i == keysetsInfo.end())
1042   {
1043     return 0;
1044   }
1045
1046   return i->second->getDutyCycle();
1047 }
1048
1049
1050 void PIRKeysetManager::setDutyCycle(
1051   unsigned int dutyCycle,
1052   unsigned int keysetID)
1053 {
1054   PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1055
1056   if (i == keysetsInfo.end())
1057   {
1058     return;
1059   }
1060
1061   i->second->setDutyCycle(dutyCycle);
1062 }
1063
1064
1065 bool PIRKeysetManager::clearKeyset(
1066   unsigned int keysetID)
1067 {
1068   PIRKeysetCollection::iterator i = keysetsInfo.find(keysetID);
1069
1070   if (i == keysetsInfo.end())
1071   {
1072     return true; // best I can do here right now...
1073   }
1074
1075   return i->second->clearProtocol();
1076 }
1077
1078
1079 void PIRKeysetManager::setupKeyset(
1080   PIRKeysetMetaData *keyset)
1081 {
1082   // Set up the keyset collection:
1083   keysetsInfo[keyset->getID()] = keyset;
1084
1085   // Set up a name-based index into the collection:
1086   makeIndex
1087     [QString(makeManager.getMakeString(keyset->getMake()))]
1088     [QString(keyset->getKeysetName())]
1089     = keyset->getID();
1090 }
1091
1092
1093 struct PIRUserData
1094 {
1095   bool favorite;
1096   QString nickname;
1097 };
1098 typedef std::map<QString, PIRUserData> PIRUDInnerMap;
1099 typedef std::map<int, PIRUDInnerMap> PIRUDOuterMap;
1100
1101 void PIRKeysetManager::populateListWidgets(
1102   PIRSelectKeysetForm *skf,
1103   PIRFavoritesDialog *fd) const
1104 {
1105   // First, pull out the user's keyset metadata:
1106   QSettings settings("pietrzak.org", "Pierogi");
1107
1108   // Part 1 - The user's keyset nicknames:
1109   int size = settings.beginReadArray("userNames");
1110   int index = 0;
1111   QString makeStr;
1112   QString name;
1113   PIRMakeName makeID;
1114   QString userName;
1115   PIRUDOuterMap userData;
1116
1117   while (index < size)
1118   {
1119     settings.setArrayIndex(index);
1120     name = settings.value("keysetName").toString();
1121     makeStr = settings.value("keysetMake").toString();
1122     makeID = makeManager.getMakeID(makeStr);
1123     userName = settings.value("keysetNickname").toString();
1124
1125     // Insert an entry into the map.  We initialize the favorites bool to
1126     // false here, it'll be changed to true below if needed:
1127     userData[makeID][name].nickname = userName;
1128     userData[makeID][name].favorite = false;
1129     ++index;
1130   }
1131   settings.endArray();
1132
1133   // Part 2 - The user's favorites:
1134   size = settings.beginReadArray("favorites");
1135   index = 0;
1136
1137   while (index < size)
1138   {
1139     settings.setArrayIndex(index);
1140     name = settings.value("keysetName").toString();
1141     makeStr = settings.value("keysetMake").toString();
1142     makeID = makeManager.getMakeID(makeStr);
1143
1144     // Insert an entry into the map:
1145     userData[makeID][name].favorite = true;
1146
1147     ++index;
1148   }
1149   settings.endArray();
1150
1151   // Now, we load the data into their respective QLists.
1152   PIRKeysetWidgetItem *kwi;
1153   QString displayString;
1154   PIRUDOuterMap::const_iterator outerIter;
1155   PIRUDInnerMap::const_iterator innerIter;
1156
1157   PIRKeysetCollection::const_iterator i = keysetsInfo.begin();
1158
1159   while (i != keysetsInfo.end())
1160   {
1161     // Create a widget for the keyset:
1162     makeID = i->second->getMake();
1163     name = i->second->getKeysetName();
1164     displayString = makeManager.getMakeString(makeID);
1165     displayString.append(" ");
1166     displayString.append(name);
1167
1168     kwi = new PIRKeysetWidgetItem(displayString, name, i->first, makeID);
1169
1170     outerIter = userData.find(makeID);
1171     if (outerIter != userData.end())
1172     {
1173       innerIter = outerIter->second.find(name);
1174       if (innerIter != outerIter->second.end())
1175       {
1176         // We have user data for this keyset!
1177         QString nick = innerIter->second.nickname;
1178         if (!nick.isEmpty())
1179         {
1180           kwi->setNickname(nick);
1181
1182           displayString = nick;
1183           displayString.append(" (");
1184           displayString.append(kwi->text());
1185           displayString.append(")");
1186           kwi->setText(displayString);
1187         }
1188
1189         // If this is a favorite, add it to favorites list:
1190         if (innerIter->second.favorite)
1191         {
1192           kwi->setFavorite(true);
1193           fd->addItem(kwi);
1194         }
1195       }
1196     }
1197
1198     skf->addWidgetItem(kwi);
1199
1200     ++i;
1201   }
1202 }
1203
1204
1205 /*
1206 void PIRKeysetManager::populateDeviceTypes(
1207   PIRKeysetWidgetItem *kwi,
1208   unsigned int keysetID) const
1209 {
1210   PIRKeysetCollection::const_iterator i = keysetsInfo.find(keysetID);
1211   if ((i != keysetsInfo.end()) && i->second)
1212   {
1213     i->second->populateDeviceTypes(kwi);
1214   }
1215 }
1216 */
1217