1 #include "pirpanelmanager.h"
3 #include "forms/pirmainform.h"
4 #include "forms/pirutilityform.h"
5 #include "forms/pirkeypadform.h"
6 #include "forms/pirmenuform.h"
7 #include "forms/pirmediaform.h"
8 #include "forms/pirfavoritesform.h"
9 #include "forms/pirtvform.h"
10 #include "forms/pirmedia2form.h"
11 #include "forms/pirinputform.h"
12 #include "forms/piradjustform.h"
13 #include "forms/pirairconditionerform.h"
15 #include "mainwindow.h"
17 PIRPanelManager::PIRPanelManager(MainWindow *mw)
31 panelList.push_back(PIRPanelPair(Main_Panel, false));
32 panelList.push_back(PIRPanelPair(Utility_Panel, false));
33 panelList.push_back(PIRPanelPair(Keypad_Panel, false));
34 panelList.push_back(PIRPanelPair(Menu_Panel, false));
35 panelList.push_back(PIRPanelPair(Media_Panel, false));
36 panelList.push_back(PIRPanelPair(Media2_Panel, false));
37 panelList.push_back(PIRPanelPair(TV_Panel, false));
38 panelList.push_back(PIRPanelPair(Input_Panel, false));
39 panelList.push_back(PIRPanelPair(Adjust_Panel, false));
40 panelList.push_back(PIRPanelPair(AC_Panel, false));
41 panelList.push_back(PIRPanelPair(Favorites_Panel, false));
45 PIRPanelManager::~PIRPanelManager()
47 // Note! We are _not_ deleting the panel forms here, because the Qt GUI
48 // has ownership over some of them. Moreover, the Panel Manager is not
49 // currently designed to be destroyed until the program ends. Should the
50 // manager need to be destroyed earlier, this destructor will need to be
56 void PIRPanelManager::setupPanels(
57 PIRPanelSelectionForm *psf)
63 void PIRPanelManager::enableButtons(
64 const PIRKeysetManager *keyset,
67 if (mainForm) mainForm->enableButtons(keyset, id);
68 if (utilityForm) utilityForm->enableButtons(keyset, id);
69 if (keypadForm) keypadForm->enableButtons(keyset, id);
70 if (menuForm) menuForm->enableButtons(keyset, id);
71 if (mediaForm) mediaForm->enableButtons(keyset, id);
72 if (media2Form) media2Form->enableButtons(keyset, id);
73 if (tvForm) tvForm->enableButtons(keyset, id);
74 if (inputForm) inputForm->enableButtons(keyset, id);
75 if (adjustForm) adjustForm->enableButtons(keyset, id);
76 if (acForm) acForm->enableButtons(keyset, id);
80 void PIRPanelManager::managePanel(
86 PIRPanelList::iterator i = panelList.begin();
87 while (i != panelList.end())
93 else if (i->displayed)
100 if (i == panelList.end())
102 // should throw an error message here!!!
106 if (state == Qt::Unchecked && i->displayed)
108 hidePanel(name, index);
109 i->displayed = false;
111 else if (state == Qt::Checked && !i->displayed)
113 showPanel(name, index);
119 void PIRPanelManager::hidePanel(
126 if (mainForm) mainWindow->removePanel(index, mainForm);
130 if (utilityForm) mainWindow->removePanel(index, utilityForm);
134 if (keypadForm) mainWindow->removePanel(index, keypadForm);
138 if (menuForm) mainWindow->removePanel(index, menuForm);
142 if (mediaForm) mainWindow->removePanel(index, mediaForm);
146 if (tvForm) mainWindow->removePanel(index, tvForm);
150 if (media2Form) mainWindow->removePanel(index, media2Form);
154 if (inputForm) mainWindow->removePanel(index, inputForm);
158 if (adjustForm) mainWindow->removePanel(index, adjustForm);
162 if (acForm) mainWindow->removePanel(index, acForm);
165 case Favorites_Panel:
166 if (favoritesForm) mainWindow->removePanel(index, favoritesForm);
176 void PIRPanelManager::showPanel(
185 mainForm = new PIRMainForm(mainWindow);
186 mainWindow->enableButtons();
189 mainWindow->insertPanel(
192 QString("Main Panel - power, volume, and channel controls"));
199 utilityForm = new PIRUtilityForm(mainWindow);
200 mainWindow->enableButtons();
203 mainWindow->insertPanel(
206 QString("Utility Panel - commonly used controls"));
213 keypadForm = new PIRKeypadForm(mainWindow);
214 mainWindow->enableButtons();
217 mainWindow->insertPanel(
220 QString("Keypad Panel - numeric value entry"));
227 menuForm = new PIRMenuForm(mainWindow);
228 mainWindow->enableButtons();
231 mainWindow->insertPanel(
234 QString("Menu Panel - enter, exit, and navigate menus"));
241 mediaForm = new PIRMediaForm(mainWindow);
242 mainWindow->enableButtons();
245 mainWindow->insertPanel(
248 QString("Media Panel - control over recorded data"));
255 media2Form = new PIRMedia2Form(mainWindow);
256 mainWindow->enableButtons();
259 mainWindow->insertPanel(
262 QString("Media2 Panel - additonal media controls"));
269 tvForm = new PIRTVForm(mainWindow);
270 mainWindow->enableButtons();
273 mainWindow->insertPanel(
276 QString("TV Panel - teletext and picture-in-picture"));
283 inputForm = new PIRInputForm(mainWindow);
284 mainWindow->enableButtons();
287 mainWindow->insertPanel(
290 QString("Input Panel - manage data sources"));
297 adjustForm = new PIRAdjustForm(mainWindow);
298 mainWindow->enableButtons();
301 mainWindow->insertPanel(
304 QString("Adjust Panel - modify audio and video"));
311 acForm = new PIRAirConditionerForm(mainWindow);
312 mainWindow->enableButtons();
315 mainWindow->insertPanel(
318 QString("A/C Panel - air conditioner controls"));
322 case Favorites_Panel:
325 favoritesForm = new PIRFavoritesForm(mainWindow);
326 mainWindow->enableButtons();
329 mainWindow->insertPanel(
332 QString("Favorites Panel - memorized keysets"));
342 void PIRPanelManager::selectPrevFavKeyset()
344 // If the favorites form doesn't exist, no need to continue:
345 if (!favoritesForm) return;
347 favoritesForm->selectPrevFavKeyset();
351 void PIRPanelManager::selectNextFavKeyset()
353 // If the favorites form doesn't exist, no need to continue:
354 if (!favoritesForm) return;
356 favoritesForm->selectNextFavKeyset();
360 void PIRPanelManager::addFavoritesItem(
361 PIRKeysetWidgetItem *item)
365 favoritesForm = new PIRFavoritesForm(mainWindow);
368 favoritesForm->addItem(item);
372 QListWidget *PIRPanelManager::getFavoritesListWidget()
376 favoritesForm = new PIRFavoritesForm(mainWindow);
379 return favoritesForm->getFavoritesListWidget();