X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=mainwindow.cpp;h=692b64c951a78b2ddba620361641418836348aec;hb=d724312c55dabe2c72175e88abf694880312fac4;hp=3a88a6f62993a406533122d320cf035d9ac7a088;hpb=65325fe0f89de8a3070915633aed961f27536777;p=pierogi diff --git a/mainwindow.cpp b/mainwindow.cpp index 3a88a6f..692b64c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -4,14 +4,17 @@ #include #include #include +//#include #include #include "pirkeysetwidgetitem.h" #include "pirselectkeysetform.h" -#include "pirsecondaryform.h" +#include "pirselectdeviceform.h" +#include "pirpanelselectionform.h" #include "pirdocumentationform.h" #include "piraboutform.h" #include "pirkeysetmanager.h" +#include "pirpanelmanager.h" //#define DEBUGGING @@ -26,6 +29,7 @@ QMutex commandIFMutex; bool stopRepeatingFlag = false; QMutex stopRepeatingMutex; + extern PIRMakeMgr makeManager; @@ -33,7 +37,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), selectKeysetForm(0), - secondaryForm(0), + selectDeviceForm(0), + panelSelectionForm(0), documentationForm(0), aboutForm(0), currentKeyset(0) @@ -43,20 +48,26 @@ MainWindow::MainWindow(QWidget *parent) // Make this a Maemo 5 stacked widget: setAttribute(Qt::WA_Maemo5StackedWindow); - // Collect the keysets: - myKeysets = new PIRKeysetManager(this); + // Create the managers: + myKeysets = new PIRKeysetManager(); + myPanels = new PIRPanelManager(this); // Set up the keyset selection window: selectKeysetForm = new PIRSelectKeysetForm(this); - // Set up the secondary buttons window: - secondaryForm = new PIRSecondaryForm(this); + // Set up the device selection window: + selectDeviceForm = new PIRSelectDeviceForm(this); + + // Set up the panel selection window: + panelSelectionForm = new PIRPanelSelectionForm(this); - myKeysets->populateGuiWidget(selectKeysetForm); + myKeysets->populateSelectionWidgets(selectKeysetForm, selectDeviceForm); +// myPanels->setupPanels(panelSelectionForm); // Remember any favorites the user has already set: populateFavorites(); + // Retrieve the user's most recent keyset (if any): QSettings settings("pietrzak.org", "Pierogi"); if (settings.contains("currentKeysetName")) { @@ -68,29 +79,65 @@ MainWindow::MainWindow(QWidget *parent) } enableButtons(); - secondaryForm->enableButtons(myKeysets, currentKeyset); + + QListWidget *fkw = myPanels->getFavoritesListWidget(); connect( - ui->favoriteKeysetsWidget, -// SIGNAL(itemActivated(QListWidgetItem *)), - SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), + fkw, + SIGNAL(itemActivated(QListWidgetItem *)), this, SLOT(keysetSelectionChanged(QListWidgetItem *)), Qt::QueuedConnection); - // Make sure the two selection lists don't show different selections: + // Make sure the three selection lists don't show different selections: QListWidget *klw = selectKeysetForm->getKeysetListWidget(); + QListWidget *dlw = selectDeviceForm->getDeviceListWidget(); + + // favorites -> keyset name connect( - ui->favoriteKeysetsWidget, + fkw, SIGNAL(itemActivated(QListWidgetItem *)), klw, SLOT(clearSelection()), Qt::QueuedConnection); + // favorites -> device name + connect( + fkw, + SIGNAL(itemActivated(QListWidgetItem *)), + dlw, + SLOT(clearSelection()), + Qt::QueuedConnection); + + // keyset name -> favorites connect( klw, SIGNAL(itemActivated(QListWidgetItem *)), - ui->favoriteKeysetsWidget, + fkw, + SLOT(clearSelection()), + Qt::QueuedConnection); + + // device name -> favorites + connect( + dlw, + SIGNAL(itemActivated(QListWidgetItem *)), + fkw, + SLOT(clearSelection()), + Qt::QueuedConnection); + + // keyset name -> device name + connect( + klw, + SIGNAL(itemActivated(QListWidgetItem *)), + dlw, + SLOT(clearSelection()), + Qt::QueuedConnection); + + // device name -> keyset name + connect( + dlw, + SIGNAL(itemActivated(QListWidgetItem *)), + klw, SLOT(clearSelection()), Qt::QueuedConnection); @@ -115,6 +162,8 @@ MainWindow::~MainWindow() { delete myKeysets; if (selectKeysetForm) delete selectKeysetForm; + if (selectDeviceForm) delete selectDeviceForm; + if (panelSelectionForm) delete panelSelectionForm; if (documentationForm) delete documentationForm; if (aboutForm) delete aboutForm; delete ui; @@ -178,77 +227,10 @@ void MainWindow::showExpanded() void MainWindow::enableButtons() { - // This is going to be a little painful... - // Main keys - emit powerEnabled(myKeysets->hasKey(currentKeyset, Power_Key)); - emit volumeUpEnabled(myKeysets->hasKey(currentKeyset, VolumeUp_Key)); - emit volumeDownEnabled(myKeysets->hasKey(currentKeyset, VolumeDown_Key)); - emit channelUpEnabled(myKeysets->hasKey(currentKeyset, ChannelUp_Key)); - emit channelDownEnabled(myKeysets->hasKey(currentKeyset, ChannelDown_Key)); - emit muteEnabled(myKeysets->hasKey(currentKeyset, Mute_Key)); - - // Main tab labels: - emit keysetMakeChanged( - makeManager.getMakeString(myKeysets->getMake(currentKeyset))); - emit keysetNameChanged(myKeysets->getDisplayName(currentKeyset)); - - // Utility keys: - emit redEnabled(myKeysets->hasKey(currentKeyset, Red_Key)); - emit greenEnabled(myKeysets->hasKey(currentKeyset, Green_Key)); - emit yellowEnabled(myKeysets->hasKey(currentKeyset, Yellow_Key)); - emit blueEnabled(myKeysets->hasKey(currentKeyset, Blue_Key)); - emit pictureModeEnabled(myKeysets->hasKey(currentKeyset, PictureMode_Key)); - emit soundModeEnabled(myKeysets->hasKey(currentKeyset, SoundMode_Key)); - emit aspectRatioEnabled(myKeysets->hasKey(currentKeyset, AspectRatio_Key)); -// emit surroundEnabled(myKeysets->hasKey(currentKeyset, Surround_Key)); - emit audioEnabled(myKeysets->hasKey(currentKeyset, Audio_Key)); - emit infoEnabled(myKeysets->hasKey(currentKeyset, Info_Key)); - emit captionsEnabled(myKeysets->hasKey(currentKeyset, Captions_Key)); - emit sleepEnabled(myKeysets->hasKey(currentKeyset, Sleep_Key)); - emit inputEnabled(myKeysets->hasKey(currentKeyset, Input_Key)); - - // Keypad keys - emit zeroEnabled(myKeysets->hasKey(currentKeyset, Zero_Key)); - emit oneEnabled(myKeysets->hasKey(currentKeyset, One_Key)); - emit twoEnabled(myKeysets->hasKey(currentKeyset, Two_Key)); - emit threeEnabled(myKeysets->hasKey(currentKeyset, Three_Key)); - emit fourEnabled(myKeysets->hasKey(currentKeyset, Four_Key)); - emit fiveEnabled(myKeysets->hasKey(currentKeyset, Five_Key)); - emit sixEnabled(myKeysets->hasKey(currentKeyset, Six_Key)); - emit sevenEnabled(myKeysets->hasKey(currentKeyset, Seven_Key)); - emit eightEnabled(myKeysets->hasKey(currentKeyset, Eight_Key)); - emit nineEnabled(myKeysets->hasKey(currentKeyset, Nine_Key)); - emit enterEnabled(myKeysets->hasKey(currentKeyset, Enter_Key)); - emit clearEnabled(myKeysets->hasKey(currentKeyset, Clear_Key)); - emit dashEnabled(myKeysets->hasKey(currentKeyset, Dash_Key)); - emit plusOneHundredEnabled(myKeysets->hasKey(currentKeyset, PlusOneHundred_Key)); - emit doubleDigitEnabled(myKeysets->hasKey(currentKeyset, DoubleDigit_Key)); - emit prevChannelEnabled(myKeysets->hasKey(currentKeyset, PrevChannel_Key)); - - // Menu keys: - emit upEnabled(myKeysets->hasKey(currentKeyset, Up_Key)); - emit downEnabled(myKeysets->hasKey(currentKeyset, Down_Key)); - emit leftEnabled(myKeysets->hasKey(currentKeyset, Left_Key)); - emit rightEnabled(myKeysets->hasKey(currentKeyset, Right_Key)); - emit selectEnabled(myKeysets->hasKey(currentKeyset, Select_Key)); - emit menuEnabled(myKeysets->hasKey(currentKeyset, Menu_Key)); - emit exitEnabled(myKeysets->hasKey(currentKeyset, Exit_Key)); - emit guideEnabled(myKeysets->hasKey(currentKeyset, Guide_Key)); - emit discMenuEnabled(myKeysets->hasKey(currentKeyset, DiscMenu_Key)); - - // Media keys: - emit nextEnabled(myKeysets->hasKey(currentKeyset, Next_Key)); - emit previousEnabled(myKeysets->hasKey(currentKeyset, Previous_Key)); - emit advanceEnabled(myKeysets->hasKey(currentKeyset, Advance_Key)); - emit replayEnabled(myKeysets->hasKey(currentKeyset, Replay_Key)); - emit stepForwardEnabled(myKeysets->hasKey(currentKeyset, StepForward_Key)); - emit stepBackEnabled(myKeysets->hasKey(currentKeyset, StepBack_Key)); - emit fastForwardEnabled(myKeysets->hasKey(currentKeyset, FastForward_Key)); - emit reverseEnabled(myKeysets->hasKey(currentKeyset, Rewind_Key)); - emit playEnabled(myKeysets->hasKey(currentKeyset, Play_Key)); - emit pauseEnabled(myKeysets->hasKey(currentKeyset, Pause_Key)); - emit stopEnabled(myKeysets->hasKey(currentKeyset, Stop_Key)); - emit ejectEnabled(myKeysets->hasKey(currentKeyset, Eject_Key)); + // Just to be sure, check to see if the keyset has been populated: + myKeysets->populateKeyset(this, currentKeyset); + + myPanels->enableButtons(myKeysets, currentKeyset); } @@ -262,583 +244,6 @@ void MainWindow::receivedExternalWarning( } -// Main tab buttons: - -void MainWindow::on_powerButton_pressed() -{ - startRepeating(Power_Key); -} - -void MainWindow::on_powerButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_mainChannelUpButton_pressed() -{ - startRepeating(ChannelUp_Key); -} - -void MainWindow::on_mainChannelUpButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_mainChannelDownButton_pressed() -{ - startRepeating(ChannelDown_Key); -} - -void MainWindow::on_mainChannelDownButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_mainVolumeUp_pressed() -{ - startRepeating(VolumeUp_Key); -} - -void MainWindow::on_mainVolumeUp_released() -{ - stopRepeating(); -} - -void MainWindow::on_mainVolumeDownButton_pressed() -{ - startRepeating(VolumeDown_Key); -} - -void MainWindow::on_mainVolumeDownButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_muteButton_pressed() -{ - startRepeating(Mute_Key); -} - -void MainWindow::on_muteButton_released() -{ - stopRepeating(); -} - - -// Utility tab buttons: - -void MainWindow::on_redButton_pressed() -{ - startRepeating(Red_Key); -} - -void MainWindow::on_redButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_greenButton_pressed() -{ - startRepeating(Green_Key); -} - -void MainWindow::on_greenButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_yellowButton_pressed() -{ - startRepeating(Yellow_Key); -} - -void MainWindow::on_yellowButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_blueButton_pressed() -{ - startRepeating(Blue_Key); -} - -void MainWindow::on_blueButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_pictureModeButton_pressed() -{ - startRepeating(PictureMode_Key); -} - -void MainWindow::on_pictureModeButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_soundModeButton_pressed() -{ - startRepeating(PictureMode_Key); -} - -void MainWindow::on_soundModeButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_aspectRatioButton_pressed() -{ - startRepeating(AspectRatio_Key); -} - -void MainWindow::on_aspectRatioButton_released() -{ - stopRepeating(); -} - -/* -void MainWindow::on_surroundButton_pressed() -{ - startRepeating(Surround_Key); -} - -void MainWindow::on_surroundButton_released() -{ - stopRepeating(); -} -*/ - -void MainWindow::on_audioButton_pressed() -{ - startRepeating(Audio_Key); -} - -void MainWindow::on_audioButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_infoButton_pressed() -{ - startRepeating(Info_Key); -} - -void MainWindow::on_infoButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_captionButton_pressed() -{ - startRepeating(Captions_Key); -} - -void MainWindow::on_captionButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_inputButton_pressed() -{ - startRepeating(Input_Key); -} - -void MainWindow::on_inputButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_sleepButton_pressed() -{ - startRepeating(Sleep_Key); -} - -void MainWindow::on_sleepButton_released() -{ - stopRepeating(); -} - - -// Keypad tab buttons: - -void MainWindow::on_oneButton_pressed() -{ - startRepeating(One_Key); -} - -void MainWindow::on_oneButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_twoButton_pressed() -{ - startRepeating(Two_Key); -} - -void MainWindow::on_twoButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_threeButton_pressed() -{ - startRepeating(Three_Key); -} - -void MainWindow::on_threeButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_fourButton_pressed() -{ - startRepeating(Four_Key); -} - -void MainWindow::on_fourButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_fiveButton_pressed() -{ - startRepeating(Five_Key); -} - -void MainWindow::on_fiveButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_sixButton_pressed() -{ - startRepeating(Six_Key); -} - -void MainWindow::on_sixButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_sevenButton_pressed() -{ - startRepeating(Seven_Key); -} - -void MainWindow::on_sevenButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_eightButton_pressed() -{ - startRepeating(Eight_Key); -} - -void MainWindow::on_eightButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_nineButton_pressed() -{ - startRepeating(Nine_Key); -} - -void MainWindow::on_nineButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_zeroButton_pressed() -{ - startRepeating(Zero_Key); -} - -void MainWindow::on_zeroButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_enterButton_pressed() -{ - startRepeating(Enter_Key); -} - -void MainWindow::on_enterButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_clearButton_pressed() -{ - startRepeating(Clear_Key); -} - -void MainWindow::on_clearButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_prevChannelButton_pressed() -{ - startRepeating(PrevChannel_Key); -} - -void MainWindow::on_prevChannelButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_plusOneHundredButton_pressed() -{ - startRepeating(PlusOneHundred_Key); -} - -void MainWindow::on_plusOneHundredButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_dashButton_pressed() -{ - startRepeating(Dash_Key); -} - -void MainWindow::on_dashButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_doubleDigitButton_pressed() -{ - startRepeating(DoubleDigit_Key); -} - -void MainWindow::on_doubleDigitButton_released() -{ - stopRepeating(); -} - - -// Menu tab buttons: - -void MainWindow::on_upButton_pressed() -{ - startRepeating(Up_Key); -} - -void MainWindow::on_upButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_leftButton_pressed() -{ - startRepeating(Left_Key); -} - -void MainWindow::on_leftButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_rightButton_pressed() -{ - startRepeating(Right_Key); -} - -void MainWindow::on_rightButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_downButton_pressed() -{ - startRepeating(Down_Key); -} - -void MainWindow::on_downButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_selectButton_pressed() -{ - startRepeating(Select_Key); -} - -void MainWindow::on_selectButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_menuButton_pressed() -{ - startRepeating(Menu_Key); -} - -void MainWindow::on_menuButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_exitButton_pressed() -{ - startRepeating(Exit_Key); -} - -void MainWindow::on_exitButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_guideButton_pressed() -{ - startRepeating(Guide_Key); -} - -void MainWindow::on_guideButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_discMenuButton_pressed() -{ - startRepeating(DiscMenu_Key); -} - -void MainWindow::on_discMenuButton_released() -{ - stopRepeating(); -} - - -// Media tab buttons: - -void MainWindow::on_mediaPreviousButton_pressed() -{ - startRepeating(Previous_Key); -} - -void MainWindow::on_mediaPreviousButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_mediaNextButton_pressed() -{ - startRepeating(Next_Key); -} - -void MainWindow::on_mediaNextButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_replayButton_pressed() -{ - startRepeating(Replay_Key); -} - -void MainWindow::on_replayButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_advanceButton_pressed() -{ - startRepeating(Advance_Key); -} - -void MainWindow::on_advanceButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_stepBackButton_pressed() -{ - startRepeating(StepBack_Key); -} - -void MainWindow::on_stepBackButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_stepForwardButton_pressed() -{ - startRepeating(StepForward_Key); -} - -void MainWindow::on_stepForwardButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_reverseButton_pressed() -{ - startRepeating(Rewind_Key); -} - -void MainWindow::on_reverseButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_fastForwardButton_pressed() -{ - startRepeating(FastForward_Key); -} - -void MainWindow::on_fastForwardButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_playButton_pressed() -{ - startRepeating(Play_Key); -} - -void MainWindow::on_playButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_pauseButton_pressed() -{ - startRepeating(Pause_Key); -} - -void MainWindow::on_pauseButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_stopButton_pressed() -{ - startRepeating(Stop_Key); -} - -void MainWindow::on_stopButton_released() -{ - stopRepeating(); -} - -void MainWindow::on_ejectButton_pressed() -{ - startRepeating(Eject_Key); -} - -void MainWindow::on_ejectButton_released() -{ - stopRepeating(); -} - - // Menu actions: void MainWindow::on_actionSelectKeyset_triggered() @@ -846,14 +251,14 @@ void MainWindow::on_actionSelectKeyset_triggered() selectKeysetForm->show(); } -void MainWindow::on_actionSecondary_Buttons_triggered() +void MainWindow::on_actionSelect_Device_By_Name_triggered() { - if (!secondaryForm) - { - secondaryForm = new PIRSecondaryForm(this); - } + selectDeviceForm->show(); +} - secondaryForm->show(); +void MainWindow::on_actionArrange_Button_Panels_triggered() +{ + panelSelectionForm->show(); } void MainWindow::on_actionAbout_triggered() @@ -882,11 +287,17 @@ void MainWindow::on_actionDocumentation_triggered() void MainWindow::keysetSelectionChanged( QListWidgetItem *item) { - if (!item) return; // Should probably say something here! + if (!item) return; // Should probably display error message here! PIRKeysetWidgetItem *kwi = dynamic_cast(item); if (!kwi) return; // Also need to say something here + + if (currentKeyset == kwi->getID()) + { + // We're already on that keyset, so nothing to do: + return; + } currentKeyset = kwi->getID(); @@ -902,7 +313,6 @@ void MainWindow::keysetSelectionChanged( myKeysets->getDisplayName(currentKeyset)); enableButtons(); - secondaryForm->enableButtons(myKeysets, currentKeyset); } @@ -915,16 +325,17 @@ void MainWindow::finalCleanup() } -void MainWindow::on_addKeysetButton_clicked() +void MainWindow::addCurrentKeyset( + QListWidget *qlw) { // Is the current keyset already a favorite? - int count = ui->favoriteKeysetsWidget->count(); + int count = qlw->count(); int index = 0; PIRKeysetWidgetItem *kwi = NULL; while (index < count) { kwi = dynamic_cast( - ui->favoriteKeysetsWidget->item(index)); + qlw->item(index)); if (kwi && (kwi->getID() == currentKeyset)) { @@ -941,8 +352,7 @@ void MainWindow::on_addKeysetButton_clicked() name.append(" "); name.append(myKeysets->getDisplayName(currentKeyset)); - ui->favoriteKeysetsWidget->addItem( - new PIRKeysetWidgetItem(name, currentKeyset, make)); + qlw->addItem(new PIRKeysetWidgetItem(name, currentKeyset, make)); // And, add the keyset id to the persistent list: QSettings settings("pietrzak.org", "Pierogi"); @@ -964,11 +374,12 @@ void MainWindow::on_addKeysetButton_clicked() } -void MainWindow::on_removeKeysetButton_clicked() +void MainWindow::removeFavoriteKeyset( + QListWidget *qlw) { // Deleting an item removes it from the list, so just grab the currently // selected item and delete it: - QListWidgetItem *item = ui->favoriteKeysetsWidget->currentItem(); + QListWidgetItem *item = qlw->currentItem(); if (item) delete item; @@ -980,7 +391,7 @@ void MainWindow::on_removeKeysetButton_clicked() settings.remove("favorites"); - int count = ui->favoriteKeysetsWidget->count(); + int count = qlw->count(); // If the count is empty, we can stop right here: if (count == 0) return; @@ -991,8 +402,7 @@ void MainWindow::on_removeKeysetButton_clicked() settings.beginWriteArray("favorites"); while (index < count) { - kwi = dynamic_cast( - ui->favoriteKeysetsWidget->item(index)); + kwi = dynamic_cast(qlw->item(index)); settings.setArrayIndex(index); // settings.setValue("keysetID", kwi->getID()); @@ -1009,6 +419,7 @@ void MainWindow::on_removeKeysetButton_clicked() settings.endArray(); } + void MainWindow::populateFavorites() { QSettings settings("pietrzak.org", "Pierogi"); @@ -1031,7 +442,7 @@ void MainWindow::populateFavorites() if (kwi) { // Keyset does exist, so continue: - ui->favoriteKeysetsWidget->addItem(kwi); + myPanels->addFavoritesItem(kwi); } ++index; @@ -1059,3 +470,89 @@ void MainWindow::stopRepeating() stopRepeatingFlag = true; } + +void MainWindow::selectPrevFavKeyset() +{ + myPanels->selectPrevFavKeyset(); +} + + +void MainWindow::selectNextFavKeyset() +{ + myPanels->selectNextFavKeyset(); +} + + +void MainWindow::managePanel( + PIRPanelName name, + int state) +{ + myPanels->managePanel(name, state); +} + + +void MainWindow::insertPanel( + int index, + QWidget *panel, + const QString &displayName) +{ + ui->stackedButtonsWidget->insertWidget(index, panel); + ui->selectPanelComboBox->insertItem(index, displayName); +} + + +void MainWindow::removePanel( + int index, + QWidget *panel) +{ + ui->stackedButtonsWidget->removeWidget(panel); + ui->selectPanelComboBox->removeItem(index); +} + + +void MainWindow::on_prevPanelButton_clicked() +{ + int count = ui->selectPanelComboBox->count(); + + // No need to do anything if there are less than two panels available: + if (count < 2) return; + + int index = ui->selectPanelComboBox->currentIndex(); + if (index == 0) + { + index = count - 1; + } + else + { + --index; + } + + ui->selectPanelComboBox->setCurrentIndex(index); +} + + +void MainWindow::on_nextPanelButton_clicked() +{ + int count = ui->selectPanelComboBox->count(); + + // No need to do anything if there are less than two panels available: + if (count < 2) return; + + int index = ui->selectPanelComboBox->currentIndex(); + if (index == count - 1) + { + index = 0; + } + else + { + ++index; + } + + ui->selectPanelComboBox->setCurrentIndex(index); +} + + +void MainWindow::on_selectPanelComboBox_currentIndexChanged(int index) +{ + ui->stackedButtonsWidget->setCurrentIndex(index); +}