X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=pirpanelmanager.cpp;fp=pirpanelmanager.cpp;h=7b340bc12bcaf38005f97d77b7816350efa69f98;hb=7176298055beaf1a9ad8f9fd1099f93df3461265;hp=23eca10ddb8cb167e74006ee4a4b5b12bb0d9adf;hpb=43b5afbf82ee89f558047c3fa6df89ad5337eb71;p=pierogi diff --git a/pirpanelmanager.cpp b/pirpanelmanager.cpp index 23eca10..7b340bc 100644 --- a/pirpanelmanager.cpp +++ b/pirpanelmanager.cpp @@ -1,6 +1,9 @@ #include "pirpanelmanager.h" +#include "pirpanelselectionform.h" + #include "forms/pirmainform.h" +#include "forms/piraltmainform.h" #include "forms/pirutilityform.h" #include "forms/pirkeypadform.h" #include "forms/pirmenuform.h" @@ -15,8 +18,15 @@ #include "mainwindow.h" +#include + +// Debugging: +//#include +#include + PIRPanelManager::PIRPanelManager(MainWindow *mw) : mainForm(0), + altMainForm(0), utilityForm(0), keypadForm(0), menuForm(0), @@ -28,20 +38,59 @@ PIRPanelManager::PIRPanelManager(MainWindow *mw) adjustForm(0), acForm(0), favoritesForm(0), + altMainPanelFlag(false), mainWindow(mw) { - panelList.push_back(PIRPanelPair(Main_Panel, false)); - panelList.push_back(PIRPanelPair(Utility_Panel, false)); - panelList.push_back(PIRPanelPair(Keypad_Panel, false)); - panelList.push_back(PIRPanelPair(Menu_Panel, false)); - panelList.push_back(PIRPanelPair(Media_Panel, false)); - panelList.push_back(PIRPanelPair(Media2_Panel, false)); - panelList.push_back(PIRPanelPair(Record_Panel, false)); - panelList.push_back(PIRPanelPair(TV_Panel, false)); - panelList.push_back(PIRPanelPair(Input_Panel, false)); - panelList.push_back(PIRPanelPair(Adjust_Panel, false)); - panelList.push_back(PIRPanelPair(AC_Panel, false)); - panelList.push_back(PIRPanelPair(Favorites_Panel, false)); + // Set up the panel names: + shortPanelNames[Main_Panel] = "Main"; + longPanelNames[Main_Panel] = + "Main Panel - power, volume, and channel controls"; + shortPanelNames[Utility_Panel] = "Utility"; + longPanelNames[Utility_Panel] = + "Utility Panel - commonly used controls"; + shortPanelNames[Keypad_Panel] = "Keypad"; + longPanelNames[Keypad_Panel] = + "Keypad Panel - numeric value entry"; + shortPanelNames[Menu_Panel] = "Menu"; + longPanelNames[Menu_Panel] = + "Menu Panel - enter, exit, and navigate menus"; + shortPanelNames[Media_Panel] = "Media"; + longPanelNames[Media_Panel] = + "Media Panel - control over recorded data"; + shortPanelNames[Media2_Panel] = "Media2"; + longPanelNames[Media2_Panel] = + "Media2 Panel - additonal media controls"; + shortPanelNames[Record_Panel] = "Record"; + longPanelNames[Record_Panel] = + "Program/Record Panel - control over memory and storage"; + shortPanelNames[TV_Panel] = "TV"; + longPanelNames[TV_Panel] = + "TV Panel - teletext and picture-in-picture"; + shortPanelNames[Input_Panel] = "Input"; + longPanelNames[Input_Panel] = + "Input Panel - manage data sources"; + shortPanelNames[Adjust_Panel] = "Adjust"; + longPanelNames[Adjust_Panel] = + "Adjust Panel - modify audio and video"; + shortPanelNames[AC_Panel] = "AC"; + longPanelNames[AC_Panel] = + "A/C Panel - air conditioner controls"; + shortPanelNames[Favorites_Panel] = "Favorites"; + longPanelNames[Favorites_Panel] = + "Favorites Panel - memorized keysets"; + + activePanels[Main_Panel] = false; + activePanels[Utility_Panel]= false; + activePanels[Keypad_Panel]= false; + activePanels[Menu_Panel]= false; + activePanels[Media_Panel]= false; + activePanels[Media2_Panel]= false; + activePanels[Record_Panel]= false; + activePanels[TV_Panel]= false; + activePanels[Input_Panel]= false; + activePanels[Adjust_Panel]= false; + activePanels[AC_Panel]= false; + activePanels[Favorites_Panel]= false; } @@ -55,19 +104,124 @@ PIRPanelManager::~PIRPanelManager() } -/* void PIRPanelManager::setupPanels( PIRPanelSelectionForm *psf) { + QSettings settings("pietrzak.org", "Pierogi"); + + settings.beginGroup("Panels"); + + // Do the panel settings exist? (We'll check for "Main_Panel".) + if (!settings.contains(shortPanelNames[Main_Panel])) + { + // A default set of panels: + psf->setCheckBox(Main_Panel, true); + psf->setCheckBox(Utility_Panel, true); + psf->setCheckBox(Keypad_Panel, true); + psf->setCheckBox(Menu_Panel, true); + psf->setCheckBox(Media_Panel, true); + psf->setCheckBox(Favorites_Panel, true); + } + else + { + psf->setCheckBox( + Main_Panel, + settings.value(shortPanelNames[Main_Panel]).toBool()); + + if (settings.contains(shortPanelNames[Utility_Panel])) + { + psf->setCheckBox( + Utility_Panel, + settings.value(shortPanelNames[Utility_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Keypad_Panel])) + { + psf->setCheckBox( + Keypad_Panel, + settings.value(shortPanelNames[Keypad_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Menu_Panel])) + { + psf->setCheckBox( + Menu_Panel, + settings.value(shortPanelNames[Menu_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Media_Panel])) + { + psf->setCheckBox( + Media_Panel, + settings.value(shortPanelNames[Media_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Media2_Panel])) + { + psf->setCheckBox( + Media2_Panel, + settings.value(shortPanelNames[Media2_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Record_Panel])) + { + psf->setCheckBox( + Record_Panel, + settings.value(shortPanelNames[Record_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[TV_Panel])) + { + psf->setCheckBox( + TV_Panel, + settings.value(shortPanelNames[TV_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Input_Panel])) + { + psf->setCheckBox( + Input_Panel, + settings.value(shortPanelNames[Input_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Adjust_Panel])) + { + psf->setCheckBox( + Adjust_Panel, + settings.value(shortPanelNames[Adjust_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[AC_Panel])) + { + psf->setCheckBox( + AC_Panel, + settings.value(shortPanelNames[AC_Panel]).toBool()); + } + + if (settings.contains(shortPanelNames[Favorites_Panel])) + { + psf->setCheckBox( + Favorites_Panel, + settings.value(shortPanelNames[Favorites_Panel]).toBool()); + } + } + + settings.endGroup(); } -*/ void PIRPanelManager::enableButtons( const PIRKeysetManager *keyset, unsigned int id) { - if (mainForm) mainForm->enableButtons(keyset, id); + if (altMainPanelFlag) + { + if (altMainForm) altMainForm->enableButtons(keyset, id); + } + else + { + if (mainForm) mainForm->enableButtons(keyset, id); + } if (utilityForm) utilityForm->enableButtons(keyset, id); if (keypadForm) keypadForm->enableButtons(keyset, id); if (menuForm) menuForm->enableButtons(keyset, id); @@ -85,38 +239,102 @@ void PIRPanelManager::managePanel( PIRPanelName name, int state) { - int index = 0; + int currentPanel = 0; + int displayCount = 0; - PIRPanelList::iterator i = panelList.begin(); - while (i != panelList.end()) +// PIRPanelList::iterator i = panelList.begin(); + while (currentPanel < Last_Panel_Marker) { - if (i->name == name) + if (currentPanel == name) { break; } - else if (i->displayed) + else if (activePanels[PIRPanelName(currentPanel)]) { - ++index; + ++displayCount; } - ++i; + + ++currentPanel; } - if (i == panelList.end()) + if (currentPanel == Last_Panel_Marker) { // should throw an error message here!!! return; } - if (state == Qt::Unchecked && i->displayed) + QSettings settings("pietrzak.org", "Pierogi"); + + settings.beginGroup("Panels"); + + if (state == Qt::Unchecked && activePanels[PIRPanelName(currentPanel)]) { - hidePanel(name, index); - i->displayed = false; + hidePanel(name, displayCount); + activePanels[PIRPanelName(currentPanel)] = false; + settings.setValue(shortPanelNames[PIRPanelName(currentPanel)], false); } - else if (state == Qt::Checked && !i->displayed) + else if (state == Qt::Checked && !activePanels[PIRPanelName(currentPanel)]) { - showPanel(name, index); - i->displayed = true; + showPanel(name, displayCount); + activePanels[PIRPanelName(currentPanel)] = true; + settings.setValue(shortPanelNames[PIRPanelName(currentPanel)], true); } + + settings.endGroup(); +} + + +void PIRPanelManager::useMainPanel() +{ + if (!altMainPanelFlag) + { + // Already set correctly, nothing to do: + return; + } + + altMainPanelFlag = false; + + // Is the main panel currently active? + if (activePanels[Main_Panel]) + { + mainWindow->removePanel(0, altMainForm); + if (!mainForm) + { + mainForm = new PIRMainForm(mainWindow); + } + + mainWindow->insertPanel(0, mainForm, longPanelNames[Main_Panel]); + mainWindow->selectPanel(0); + } + + mainWindow->enableButtons(); +} + + +void PIRPanelManager::useAltMainPanel() +{ + if (altMainPanelFlag) + { + // Already set correctly, nothing to do: + return; + } + + altMainPanelFlag = true; + + // Is the main panel currently active? + if (activePanels[Main_Panel]) + { + mainWindow->removePanel(0, mainForm); + if (!altMainForm) + { + altMainForm = new PIRAltMainForm(mainWindow); + } + + mainWindow->insertPanel(0, altMainForm, longPanelNames[Main_Panel]); + mainWindow->selectPanel(0); + } + + mainWindow->enableButtons(); } @@ -127,7 +345,14 @@ void PIRPanelManager::hidePanel( switch (name) { case Main_Panel: - if (mainForm) mainWindow->removePanel(index, mainForm); + if (altMainPanelFlag) + { + if (altMainForm) mainWindow->removePanel(index, altMainForm); + } + else + { + if (mainForm) mainWindow->removePanel(index, mainForm); + } break; case Utility_Panel: @@ -188,16 +413,32 @@ void PIRPanelManager::showPanel( switch (name) { case Main_Panel: - if (!mainForm) + if (altMainPanelFlag) { - mainForm = new PIRMainForm(mainWindow); - mainWindow->enableButtons(); + if (!altMainForm) + { + altMainForm = new PIRAltMainForm(mainWindow); + mainWindow->enableButtons(); + } + + mainWindow->insertPanel( + index, + altMainForm, + longPanelNames[Main_Panel]); + } + else + { + if (!mainForm) + { + mainForm = new PIRMainForm(mainWindow); + mainWindow->enableButtons(); + } + + mainWindow->insertPanel( + index, + mainForm, + longPanelNames[Main_Panel]); } - - mainWindow->insertPanel( - index, - mainForm, - QString("Main Panel - power, volume, and channel controls")); break; @@ -211,7 +452,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, utilityForm, - QString("Utility Panel - commonly used controls")); + longPanelNames[Utility_Panel]); break; @@ -225,7 +466,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, keypadForm, - QString("Keypad Panel - numeric value entry")); + longPanelNames[Keypad_Panel]); break; @@ -239,7 +480,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, menuForm, - QString("Menu Panel - enter, exit, and navigate menus")); + longPanelNames[Menu_Panel]); break; @@ -253,7 +494,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, mediaForm, - QString("Media Panel - control over recorded data")); + longPanelNames[Media_Panel]); break; @@ -267,7 +508,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, media2Form, - QString("Media2 Panel - additonal media controls")); + longPanelNames[Media2_Panel]); break; @@ -281,7 +522,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, recordForm, - QString("Program/Record Panel - control over memory and storage")); + longPanelNames[Record_Panel]); break; @@ -295,7 +536,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, tvForm, - QString("TV Panel - teletext and picture-in-picture")); + longPanelNames[TV_Panel]); break; @@ -309,7 +550,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, inputForm, - QString("Input Panel - manage data sources")); + longPanelNames[Input_Panel]); break; @@ -323,7 +564,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, adjustForm, - QString("Adjust Panel - modify audio and video")); + longPanelNames[Adjust_Panel]); break; @@ -337,7 +578,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, acForm, - QString("A/C Panel - air conditioner controls")); + longPanelNames[AC_Panel]); break; @@ -351,7 +592,7 @@ void PIRPanelManager::showPanel( mainWindow->insertPanel( index, favoritesForm, - QString("Favorites Panel - memorized keysets")); + longPanelNames[Favorites_Panel]); break;