1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3 #include "pirkeysetwidgetitem.h"
5 //#include "pirexception.h"
7 #include <QtCore/QCoreApplication>
9 #include <QtGui/QMessageBox>
11 //#include <QDesktopServices>
18 extern PIRMakeMgr makeManager;
21 MainWindow::MainWindow(QWidget *parent)
22 : QMainWindow(parent),
23 ui(new Ui::MainWindow),
31 // Make this a Maemo 5 stacked widget:
32 setAttribute(Qt::WA_Maemo5StackedWindow);
34 // Collect the keysets:
35 myKeysets = new PIRKeysetManager(this);
37 // Set up the keyset selection window:
38 mySelectionWindow = new SelectionWindow(this);
40 myKeysets->populateGuiWidget(mySelectionWindow);
42 // Remember any favorites the user has already set:
45 QSettings settings("pietrzak.org", "Pierogi");
46 if (settings.contains("currentKeyset"))
48 currentKeyset = settings.value("currentKeyset").toInt();
54 ui->favoriteKeysetsWidget,
55 SIGNAL(itemActivated(QListWidgetItem *)),
57 SLOT(keysetSelectionChanged(QListWidgetItem *)),
58 Qt::QueuedConnection);
60 // Make sure the two selection lists don't show different selections:
62 ui->favoriteKeysetsWidget,
63 SIGNAL(itemActivated(QListWidgetItem *)),
64 mySelectionWindow->nameListWidget,
65 SLOT(clearSelection()),
66 Qt::QueuedConnection);
69 mySelectionWindow->nameListWidget,
70 SIGNAL(itemActivated(QListWidgetItem *)),
71 ui->favoriteKeysetsWidget,
72 SLOT(clearSelection()),
73 Qt::QueuedConnection);
76 // The PIRModprobe object should take care of setting up and shutting down
77 // the lirc_rx51 kernel module, if necessary:
79 if (modprobeObj.loadRX51Module() != 0)
81 // Couldn't load module, quit:
83 errBox.setText("Couldn't load lirc_rx51 kernel module!");
84 errBox.setIcon(QMessageBox::Warning);
86 // throw; // Need a clean way to exit here!!!
92 MainWindow::~MainWindow()
95 delete mySelectionWindow;
96 if (documentationForm) delete documentationForm;
97 if (aboutForm) delete aboutForm;
102 void MainWindow::setOrientation(ScreenOrientation orientation)
104 #if defined(Q_OS_SYMBIAN)
105 // If the version of Qt on the device is < 4.7.2, that attribute won't work
106 if (orientation != ScreenOrientationAuto) {
107 const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
108 if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
109 qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
113 #endif // Q_OS_SYMBIAN
115 Qt::WidgetAttribute attribute;
116 switch (orientation) {
117 #if QT_VERSION < 0x040702
118 // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
119 case ScreenOrientationLockPortrait:
120 attribute = static_cast<Qt::WidgetAttribute>(128);
122 case ScreenOrientationLockLandscape:
123 attribute = static_cast<Qt::WidgetAttribute>(129);
126 case ScreenOrientationAuto:
127 attribute = static_cast<Qt::WidgetAttribute>(130);
129 #else // QT_VERSION < 0x040702
130 case ScreenOrientationLockPortrait:
131 attribute = Qt::WA_LockPortraitOrientation;
133 case ScreenOrientationLockLandscape:
134 attribute = Qt::WA_LockLandscapeOrientation;
137 case ScreenOrientationAuto:
138 attribute = Qt::WA_AutoOrientation;
140 #endif // QT_VERSION < 0x040702
142 setAttribute(attribute, true);
145 void MainWindow::showExpanded()
147 #if defined(Q_OS_SYMBIAN) || defined(Q_WS_SIMULATOR)
149 #elif defined(Q_WS_MAEMO_5)
157 void MainWindow::enableButtons()
159 // This is going to be a little painful...
161 emit powerEnabled(myKeysets->hasKey(currentKeyset, Power_Key));
162 emit volumeUpEnabled(myKeysets->hasKey(currentKeyset, VolumeUp_Key));
163 emit volumeDownEnabled(myKeysets->hasKey(currentKeyset, VolumeDown_Key));
164 emit channelUpEnabled(myKeysets->hasKey(currentKeyset, ChannelUp_Key));
165 emit channelDownEnabled(myKeysets->hasKey(currentKeyset, ChannelDown_Key));
168 emit redEnabled(myKeysets->hasKey(currentKeyset, Red_Key));
169 emit greenEnabled(myKeysets->hasKey(currentKeyset, Green_Key));
170 emit yellowEnabled(myKeysets->hasKey(currentKeyset, Yellow_Key));
171 emit blueEnabled(myKeysets->hasKey(currentKeyset, Blue_Key));
172 emit aspectRatioEnabled(myKeysets->hasKey(currentKeyset, AspectRatio_Key));
173 emit surroundEnabled(myKeysets->hasKey(currentKeyset, Surround_Key));
174 emit languageEnabled(myKeysets->hasKey(currentKeyset, Language_Key));
175 emit favoritesEnabled(myKeysets->hasKey(currentKeyset, Favorites_Key));
176 emit captionsEnabled(myKeysets->hasKey(currentKeyset, Captions_Key));
177 emit sleepEnabled(myKeysets->hasKey(currentKeyset, Sleep_Key));
178 emit inputEnabled(myKeysets->hasKey(currentKeyset, Input_Key));
179 emit muteEnabled(myKeysets->hasKey(currentKeyset, Mute_Key));
182 emit zeroEnabled(myKeysets->hasKey(currentKeyset, Zero_Key));
183 emit oneEnabled(myKeysets->hasKey(currentKeyset, One_Key));
184 emit twoEnabled(myKeysets->hasKey(currentKeyset, Two_Key));
185 emit threeEnabled(myKeysets->hasKey(currentKeyset, Three_Key));
186 emit fourEnabled(myKeysets->hasKey(currentKeyset, Four_Key));
187 emit fiveEnabled(myKeysets->hasKey(currentKeyset, Five_Key));
188 emit sixEnabled(myKeysets->hasKey(currentKeyset, Six_Key));
189 emit sevenEnabled(myKeysets->hasKey(currentKeyset, Seven_Key));
190 emit eightEnabled(myKeysets->hasKey(currentKeyset, Eight_Key));
191 emit nineEnabled(myKeysets->hasKey(currentKeyset, Nine_Key));
192 emit enterEnabled(myKeysets->hasKey(currentKeyset, Enter_Key));
193 emit clearEnabled(myKeysets->hasKey(currentKeyset, Clear_Key));
194 emit dashEnabled(myKeysets->hasKey(currentKeyset, Dash_Key));
195 emit plusOneHundredEnabled(myKeysets->hasKey(currentKeyset, PlusOneHundred_Key));
196 emit doubleDigitEnabled(myKeysets->hasKey(currentKeyset, DoubleDigit_Key));
197 emit prevChannelEnabled(myKeysets->hasKey(currentKeyset, PrevChannel_Key));
200 emit menuEnabled(myKeysets->hasKey(currentKeyset, Menu_Key));
201 emit upEnabled(myKeysets->hasKey(currentKeyset, Up_Key));
202 emit downEnabled(myKeysets->hasKey(currentKeyset, Down_Key));
203 emit leftEnabled(myKeysets->hasKey(currentKeyset, Left_Key));
204 emit rightEnabled(myKeysets->hasKey(currentKeyset, Right_Key));
205 emit selectEnabled(myKeysets->hasKey(currentKeyset, Select_Key));
206 emit exitEnabled(myKeysets->hasKey(currentKeyset, Exit_Key));
207 emit infoEnabled(myKeysets->hasKey(currentKeyset, Info_Key));
208 emit guideEnabled(myKeysets->hasKey(currentKeyset, Guide_Key));
211 emit playEnabled(myKeysets->hasKey(currentKeyset, Play_Key));
212 emit pauseEnabled(myKeysets->hasKey(currentKeyset, Pause_Key));
213 emit stopEnabled(myKeysets->hasKey(currentKeyset, Stop_Key));
214 emit fastForwardEnabled(myKeysets->hasKey(currentKeyset, FastForward_Key));
215 emit reverseEnabled(myKeysets->hasKey(currentKeyset, Rewind_Key));
216 emit nextEnabled(myKeysets->hasKey(currentKeyset, Next_Key));
217 emit previousEnabled(myKeysets->hasKey(currentKeyset, Previous_Key));
218 emit stepForwardEnabled(myKeysets->hasKey(currentKeyset, StepForward_Key));
219 emit stepBackEnabled(myKeysets->hasKey(currentKeyset, StepBack_Key));
220 emit advanceEnabled(myKeysets->hasKey(currentKeyset, Advance_Key));
221 emit replayEnabled(myKeysets->hasKey(currentKeyset, Replay_Key));
222 emit ejectEnabled(myKeysets->hasKey(currentKeyset, Eject_Key));
225 emit pipEnabled(myKeysets->hasKey(currentKeyset, PIP_Key));
226 emit pipSwapEnabled(myKeysets->hasKey(currentKeyset, PIPSwap_Key));
227 emit pipMoveEnabled(myKeysets->hasKey(currentKeyset, PIPMove_Key));
228 emit pipSourceEnabled(myKeysets->hasKey(currentKeyset, PIPSource_Key));
229 emit scanEnabled(myKeysets->hasKey(currentKeyset, Scan_Key));
230 emit programEnabled(myKeysets->hasKey(currentKeyset, Program_Key));
231 emit pictureModeEnabled(myKeysets->hasKey(currentKeyset, PictureMode_Key));
232 emit soundModeEnabled(myKeysets->hasKey(currentKeyset, SoundMode_Key));
233 emit discTitleEnabled(myKeysets->hasKey(currentKeyset, DiscTitle_Key));
234 emit discMenuEnabled(myKeysets->hasKey(currentKeyset, DiscMenu_Key));
235 emit discSelectEnabled(myKeysets->hasKey(currentKeyset, DiscSelect_Key));
236 emit recordEnabled(myKeysets->hasKey(currentKeyset, Record_Key));
237 emit trackingMinusEnabled(myKeysets->hasKey(currentKeyset, TrackingMinus_Key));
238 emit trackingPlusEnabled(myKeysets->hasKey(currentKeyset, TrackingPlus_Key));
239 emit autoTrackingEnabled(myKeysets->hasKey(currentKeyset, AutoTracking_Key));
240 emit vhsSpeedEnabled(myKeysets->hasKey(currentKeyset, VHSSpeed_Key));
242 emit keysetMakeChanged(
243 makeManager.getMakeString(myKeysets->getMake(currentKeyset)));
245 emit keysetNameChanged(myKeysets->getDisplayName(currentKeyset));
249 void MainWindow::receivedExternalWarning(
253 errBox.setText(warning);
254 errBox.setIcon(QMessageBox::Warning);
261 void MainWindow::on_powerButton_pressed()
263 emit buttonPressed(currentKeyset, Power_Key);
266 void MainWindow::on_powerButton_released()
271 void MainWindow::on_mainChannelUpButton_pressed()
273 emit buttonPressed(currentKeyset, ChannelUp_Key);
276 void MainWindow::on_mainChannelUpButton_released()
281 void MainWindow::on_mainChannelDownButton_pressed()
283 emit buttonPressed(currentKeyset, ChannelDown_Key);
286 void MainWindow::on_mainChannelDownButton_released()
291 void MainWindow::on_mainVolumeUp_pressed()
293 emit buttonPressed(currentKeyset, VolumeUp_Key);
296 void MainWindow::on_mainVolumeUp_released()
301 void MainWindow::on_mainVolumeDownButton_pressed()
303 emit buttonPressed(currentKeyset, VolumeDown_Key);
306 void MainWindow::on_mainVolumeDownButton_released()
312 // Utility tab buttons:
314 void MainWindow::on_redButton_pressed()
316 emit buttonPressed(currentKeyset, Red_Key);
319 void MainWindow::on_redButton_released()
324 void MainWindow::on_greenButton_pressed()
326 emit buttonPressed(currentKeyset, Green_Key);
329 void MainWindow::on_greenButton_released()
334 void MainWindow::on_yellowButton_pressed()
336 emit buttonPressed(currentKeyset, Yellow_Key);
339 void MainWindow::on_yellowButton_released()
344 void MainWindow::on_blueButton_pressed()
346 emit buttonPressed(currentKeyset, Blue_Key);
349 void MainWindow::on_blueButton_released()
354 void MainWindow::on_aspectRatioButton_pressed()
356 emit buttonPressed(currentKeyset, AspectRatio_Key);
359 void MainWindow::on_aspectRatioButton_released()
364 void MainWindow::on_surroundButton_pressed()
366 emit buttonPressed(currentKeyset, Surround_Key);
369 void MainWindow::on_surroundButton_released()
374 void MainWindow::on_languageButton_pressed()
376 emit buttonPressed(currentKeyset, Language_Key);
379 void MainWindow::on_languageButton_released()
384 void MainWindow::on_favoritesButton_pressed()
386 emit buttonPressed(currentKeyset, Favorites_Key);
389 void MainWindow::on_favoritesButton_released()
394 void MainWindow::on_captionButton_pressed()
396 emit buttonPressed(currentKeyset, Captions_Key);
399 void MainWindow::on_captionButton_released()
404 void MainWindow::on_inputButton_pressed()
406 emit buttonPressed(currentKeyset, Input_Key);
409 void MainWindow::on_inputButton_released()
414 void MainWindow::on_sleepButton_pressed()
416 emit buttonPressed(currentKeyset, Sleep_Key);
419 void MainWindow::on_sleepButton_released()
424 void MainWindow::on_muteButton_pressed()
426 emit buttonPressed(currentKeyset, Mute_Key);
429 void MainWindow::on_muteButton_released()
435 // Keypad tab buttons:
437 void MainWindow::on_oneButton_pressed()
439 emit buttonPressed(currentKeyset, One_Key);
442 void MainWindow::on_oneButton_released()
447 void MainWindow::on_twoButton_pressed()
449 emit buttonPressed(currentKeyset, Two_Key);
452 void MainWindow::on_twoButton_released()
457 void MainWindow::on_threeButton_pressed()
459 emit buttonPressed(currentKeyset, Three_Key);
462 void MainWindow::on_threeButton_released()
467 void MainWindow::on_fourButton_pressed()
469 emit buttonPressed(currentKeyset, Four_Key);
472 void MainWindow::on_fourButton_released()
477 void MainWindow::on_fiveButton_pressed()
479 emit buttonPressed(currentKeyset, Five_Key);
482 void MainWindow::on_fiveButton_released()
487 void MainWindow::on_sixButton_pressed()
489 emit buttonPressed(currentKeyset, Six_Key);
492 void MainWindow::on_sixButton_released()
497 void MainWindow::on_sevenButton_pressed()
499 emit buttonPressed(currentKeyset, Seven_Key);
502 void MainWindow::on_sevenButton_released()
507 void MainWindow::on_eightButton_pressed()
509 emit buttonPressed(currentKeyset, Eight_Key);
512 void MainWindow::on_eightButton_released()
517 void MainWindow::on_nineButton_pressed()
519 emit buttonPressed(currentKeyset, Nine_Key);
522 void MainWindow::on_nineButton_released()
527 void MainWindow::on_zeroButton_pressed()
529 emit buttonPressed(currentKeyset, Zero_Key);
532 void MainWindow::on_zeroButton_released()
537 void MainWindow::on_enterButton_pressed()
539 emit buttonPressed(currentKeyset, Enter_Key);
542 void MainWindow::on_enterButton_released()
547 void MainWindow::on_clearButton_pressed()
549 emit buttonPressed(currentKeyset, Clear_Key);
552 void MainWindow::on_clearButton_released()
557 void MainWindow::on_prevChannelButton_pressed()
559 emit buttonPressed(currentKeyset, PrevChannel_Key);
562 void MainWindow::on_prevChannelButton_released()
567 void MainWindow::on_plusOneHundredButton_pressed()
569 emit buttonPressed(currentKeyset, PlusOneHundred_Key);
572 void MainWindow::on_plusOneHundredButton_released()
577 void MainWindow::on_dashButton_pressed()
579 emit buttonPressed(currentKeyset, Dash_Key);
582 void MainWindow::on_dashButton_released()
587 void MainWindow::on_doubleDigitButton_pressed()
589 emit buttonPressed(currentKeyset, DoubleDigit_Key);
592 void MainWindow::on_doubleDigitButton_released()
600 void MainWindow::on_upButton_pressed()
602 emit buttonPressed(currentKeyset, Up_Key);
605 void MainWindow::on_upButton_released()
610 void MainWindow::on_leftButton_pressed()
612 emit buttonPressed(currentKeyset, Left_Key);
615 void MainWindow::on_leftButton_released()
620 void MainWindow::on_rightButton_pressed()
622 emit buttonPressed(currentKeyset, Right_Key);
625 void MainWindow::on_rightButton_released()
630 void MainWindow::on_downButton_pressed()
632 emit buttonPressed(currentKeyset, Down_Key);
635 void MainWindow::on_downButton_released()
640 void MainWindow::on_selectButton_pressed()
642 emit buttonPressed(currentKeyset, Select_Key);
645 void MainWindow::on_selectButton_released()
650 void MainWindow::on_menuButton_pressed()
652 emit buttonPressed(currentKeyset, Menu_Key);
655 void MainWindow::on_menuButton_released()
660 void MainWindow::on_exitButton_pressed()
662 emit buttonPressed(currentKeyset, Exit_Key);
665 void MainWindow::on_exitButton_released()
672 // Media tab buttons:
674 void MainWindow::on_mediaPreviousButton_pressed()
676 emit buttonPressed(currentKeyset, Previous_Key);
679 void MainWindow::on_mediaPreviousButton_released()
684 void MainWindow::on_mediaNextButton_pressed()
686 emit buttonPressed(currentKeyset, Next_Key);
689 void MainWindow::on_mediaNextButton_released()
694 void MainWindow::on_replayButton_pressed()
696 emit buttonPressed(currentKeyset, Replay_Key);
699 void MainWindow::on_replayButton_released()
704 void MainWindow::on_advanceButton_pressed()
706 emit buttonPressed(currentKeyset, Advance_Key);
709 void MainWindow::on_advanceButton_released()
714 void MainWindow::on_stepBackButton_pressed()
716 emit buttonPressed(currentKeyset, StepBack_Key);
719 void MainWindow::on_stepBackButton_released()
724 void MainWindow::on_stepForwardButton_pressed()
726 emit buttonPressed(currentKeyset, StepForward_Key);
729 void MainWindow::on_stepForwardButton_released()
734 void MainWindow::on_reverseButton_pressed()
736 emit buttonPressed(currentKeyset, Rewind_Key);
739 void MainWindow::on_reverseButton_released()
744 void MainWindow::on_fastForwardButton_pressed()
746 emit buttonPressed(currentKeyset, FastForward_Key);
749 void MainWindow::on_fastForwardButton_released()
754 void MainWindow::on_playButton_pressed()
756 emit buttonPressed(currentKeyset, Play_Key);
759 void MainWindow::on_playButton_released()
764 void MainWindow::on_pauseButton_pressed()
766 emit buttonPressed(currentKeyset, Pause_Key);
769 void MainWindow::on_pauseButton_released()
774 void MainWindow::on_stopButton_pressed()
776 emit buttonPressed(currentKeyset, Stop_Key);
779 void MainWindow::on_stopButton_released()
784 void MainWindow::on_ejectButton_pressed()
786 emit buttonPressed(currentKeyset, Eject_Key);
789 void MainWindow::on_ejectButton_released()
797 void MainWindow::on_pipOnOffButton_pressed()
799 emit buttonPressed(currentKeyset, PIP_Key);
802 void MainWindow::on_pipOnOffButton_released()
807 void MainWindow::on_pipSwapButton_pressed()
809 emit buttonPressed(currentKeyset, PIPSwap_Key);
812 void MainWindow::on_pipSwapButton_released()
817 void MainWindow::on_pipPositionButton_pressed()
819 emit buttonPressed(currentKeyset, PIPMove_Key);
822 void MainWindow::on_pipPositionButton_released()
827 void MainWindow::on_pipSourceButton_pressed()
829 emit buttonPressed(currentKeyset, PIPSource_Key);
832 void MainWindow::on_pipSourceButton_released()
837 void MainWindow::on_scanButton_pressed()
839 emit buttonPressed(currentKeyset, Scan_Key);
842 void MainWindow::on_scanButton_released()
847 void MainWindow::on_programButton_pressed()
849 emit buttonPressed(currentKeyset, Program_Key);
852 void MainWindow::on_programButton_released()
857 void MainWindow::on_pictureModeButton_pressed()
859 emit buttonPressed(currentKeyset, PictureMode_Key);
862 void MainWindow::on_pictureModeButton_released()
867 void MainWindow::on_soundModeButton_pressed()
869 emit buttonPressed(currentKeyset, SoundMode_Key);
872 void MainWindow::on_soundModeButton_released()
877 void MainWindow::on_discTitleButton_pressed()
879 emit buttonPressed(currentKeyset, DiscTitle_Key);
882 void MainWindow::on_discTitleButton_released()
887 void MainWindow::on_discMenuButton_pressed()
889 emit buttonPressed(currentKeyset, DiscMenu_Key);
892 void MainWindow::on_discMenuButton_released()
897 void MainWindow::on_discSelectButton_pressed()
899 emit buttonPressed(currentKeyset, DiscSelect_Key);
902 void MainWindow::on_discSelectButton_released()
907 void MainWindow::on_trackingPlusButton_pressed()
909 emit buttonPressed(currentKeyset, TrackingPlus_Key);
912 void MainWindow::on_trackingPlusButton_released()
917 void MainWindow::on_trackingMinusButton_pressed()
919 emit buttonPressed(currentKeyset, TrackingMinus_Key);
922 void MainWindow::on_trackingMinusButton_released()
927 void MainWindow::on_autoTrackingButton_pressed()
929 emit buttonPressed(currentKeyset, AutoTracking_Key);
932 void MainWindow::on_autoTrackingButton_released()
937 void MainWindow::on_vhsSpeedButton_pressed()
939 emit buttonPressed(currentKeyset, VHSSpeed_Key);
942 void MainWindow::on_vhsSpeedButton_released()
947 void MainWindow::on_recordButton_pressed()
949 emit buttonPressed(currentKeyset, Record_Key);
952 void MainWindow::on_recordButton_released()
960 void MainWindow::on_actionSelectKeyset_triggered()
962 mySelectionWindow->show();
965 void MainWindow::on_actionAbout_triggered()
969 aboutForm = new PIRAboutForm(this);
975 void MainWindow::on_actionDocumentation_triggered()
977 if (!documentationForm)
979 documentationForm = new PIRDocumentationForm(this);
982 documentationForm->show();
988 void MainWindow::keysetSelectionChanged(
989 QListWidgetItem *item)
991 if (!item) return; // Should probably say something here!
993 PIRKeysetWidgetItem *kwi = dynamic_cast<PIRKeysetWidgetItem *>(item);
995 if (!kwi) return; // Also need to say something here
997 currentKeyset = kwi->getID();
999 QSettings settings("pietrzak.org", "Pierogi");
1000 settings.setValue("currentKeyset", currentKeyset);
1006 void MainWindow::on_addKeysetButton_clicked()
1008 // Is the current keylist already a favorite?
1009 int count = ui->favoriteKeysetsWidget->count();
1011 PIRKeysetWidgetItem *kwi = NULL;
1012 while (index < count)
1014 kwi = dynamic_cast<PIRKeysetWidgetItem *>(
1015 ui->favoriteKeysetsWidget->item(index));
1017 if (kwi && (kwi->getID() == currentKeyset))
1019 // Current keyset already in list! No need to continue.
1025 // Ok, add the current keylist to the favorites:
1026 PIRMakeName make = myKeysets->getMake(currentKeyset);
1028 QString name = makeManager.getMakeString(make);
1030 name.append(myKeysets->getDisplayName(currentKeyset));
1032 ui->favoriteKeysetsWidget->addItem(
1033 new PIRKeysetWidgetItem(name, currentKeyset, make));
1035 // And, add the keylist id to the persistent list:
1036 QSettings settings("pietrzak.org", "Pierogi");
1038 int favSettingsSize = settings.beginReadArray("favorites");
1039 settings.endArray();
1041 settings.beginWriteArray("favorites");
1042 settings.setArrayIndex(favSettingsSize);
1043 settings.setValue("keylistID", currentKeyset);
1044 settings.endArray();
1048 void MainWindow::on_removeKeysetButton_clicked()
1050 // Deleting an item removes it from the list, so just grab the currently
1051 // selected item and delete it:
1052 QListWidgetItem *item = ui->favoriteKeysetsWidget->currentItem();
1054 if (item) delete item;
1056 // Remove this item from the persistent list. Well, actually, it seems a
1057 // little more convenient to just blow away the existing list of favorites
1058 // and rewrite it, as modifying an existing QSettings array in the middle
1059 // seems a bit hard...
1060 QSettings settings("pietrzak.org", "Pierogi");
1062 settings.remove("favorites");
1064 int count = ui->favoriteKeysetsWidget->count();
1066 // If the count is empty, we can stop right here:
1067 if (count == 0) return;
1070 PIRKeysetWidgetItem *kwi = NULL;
1071 settings.beginWriteArray("favorites");
1072 while (index < count)
1074 kwi = dynamic_cast<PIRKeysetWidgetItem *>(
1075 ui->favoriteKeysetsWidget->item(index));
1077 settings.setArrayIndex(index);
1078 settings.setValue("keylistID", kwi->getID());
1081 settings.endArray();
1084 void MainWindow::populateFavorites()
1086 QSettings settings("pietrzak.org", "Pierogi");
1088 int size = settings.beginReadArray("favorites");
1094 while (index < size)
1096 settings.setArrayIndex(index);
1097 id = settings.value("keylistID").toInt();
1098 make = myKeysets->getMake(id);
1099 name = makeManager.getMakeString(make);
1101 name.append(myKeysets->getDisplayName(id));
1102 ui->favoriteKeysetsWidget->addItem(
1103 new PIRKeysetWidgetItem(name, id, make));
1107 settings.endArray();