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/pirmedia2form.h"
9 #include "forms/pirrecordform.h"
10 #include "forms/pirtvform.h"
11 #include "forms/pirinputform.h"
12 #include "forms/piradjustform.h"
13 #include "forms/pirairconditionerform.h"
14 #include "forms/pirfavoritesform.h"
16 #include "mainwindow.h"
18 PIRPanelManager::PIRPanelManager(MainWindow *mw)
33 panelList.push_back(PIRPanelPair(Main_Panel, false));
34 panelList.push_back(PIRPanelPair(Utility_Panel, false));
35 panelList.push_back(PIRPanelPair(Keypad_Panel, false));
36 panelList.push_back(PIRPanelPair(Menu_Panel, false));
37 panelList.push_back(PIRPanelPair(Media_Panel, false));
38 panelList.push_back(PIRPanelPair(Media2_Panel, false));
39 panelList.push_back(PIRPanelPair(Record_Panel, false));
40 panelList.push_back(PIRPanelPair(TV_Panel, false));
41 panelList.push_back(PIRPanelPair(Input_Panel, false));
42 panelList.push_back(PIRPanelPair(Adjust_Panel, false));
43 panelList.push_back(PIRPanelPair(AC_Panel, false));
44 panelList.push_back(PIRPanelPair(Favorites_Panel, false));
48 PIRPanelManager::~PIRPanelManager()
50 // Note! We are _not_ deleting the panel forms here, because the Qt GUI
51 // has ownership over some of them. Moreover, the Panel Manager is not
52 // currently designed to be destroyed until the program ends. Should the
53 // manager need to be destroyed earlier, this destructor will need to be
59 void PIRPanelManager::setupPanels(
60 PIRPanelSelectionForm *psf)
66 void PIRPanelManager::enableButtons(
67 const PIRKeysetManager *keyset,
70 if (mainForm) mainForm->enableButtons(keyset, id);
71 if (utilityForm) utilityForm->enableButtons(keyset, id);
72 if (keypadForm) keypadForm->enableButtons(keyset, id);
73 if (menuForm) menuForm->enableButtons(keyset, id);
74 if (mediaForm) mediaForm->enableButtons(keyset, id);
75 if (media2Form) media2Form->enableButtons(keyset, id);
76 if (recordForm) recordForm->enableButtons(keyset, id);
77 if (tvForm) tvForm->enableButtons(keyset, id);
78 if (inputForm) inputForm->enableButtons(keyset, id);
79 if (adjustForm) adjustForm->enableButtons(keyset, id);
80 if (acForm) acForm->enableButtons(keyset, id);
84 void PIRPanelManager::managePanel(
90 PIRPanelList::iterator i = panelList.begin();
91 while (i != panelList.end())
97 else if (i->displayed)
104 if (i == panelList.end())
106 // should throw an error message here!!!
110 if (state == Qt::Unchecked && i->displayed)
112 hidePanel(name, index);
113 i->displayed = false;
115 else if (state == Qt::Checked && !i->displayed)
117 showPanel(name, index);
123 void PIRPanelManager::hidePanel(
130 if (mainForm) mainWindow->removePanel(index, mainForm);
134 if (utilityForm) mainWindow->removePanel(index, utilityForm);
138 if (keypadForm) mainWindow->removePanel(index, keypadForm);
142 if (menuForm) mainWindow->removePanel(index, menuForm);
146 if (mediaForm) mainWindow->removePanel(index, mediaForm);
150 if (media2Form) mainWindow->removePanel(index, media2Form);
154 if (recordForm) mainWindow->removePanel(index, recordForm);
158 if (tvForm) mainWindow->removePanel(index, tvForm);
162 if (inputForm) mainWindow->removePanel(index, inputForm);
166 if (adjustForm) mainWindow->removePanel(index, adjustForm);
170 if (acForm) mainWindow->removePanel(index, acForm);
173 case Favorites_Panel:
174 if (favoritesForm) mainWindow->removePanel(index, favoritesForm);
184 void PIRPanelManager::showPanel(
193 mainForm = new PIRMainForm(mainWindow);
194 mainWindow->enableButtons();
197 mainWindow->insertPanel(
200 QString("Main Panel - power, volume, and channel controls"));
207 utilityForm = new PIRUtilityForm(mainWindow);
208 mainWindow->enableButtons();
211 mainWindow->insertPanel(
214 QString("Utility Panel - commonly used controls"));
221 keypadForm = new PIRKeypadForm(mainWindow);
222 mainWindow->enableButtons();
225 mainWindow->insertPanel(
228 QString("Keypad Panel - numeric value entry"));
235 menuForm = new PIRMenuForm(mainWindow);
236 mainWindow->enableButtons();
239 mainWindow->insertPanel(
242 QString("Menu Panel - enter, exit, and navigate menus"));
249 mediaForm = new PIRMediaForm(mainWindow);
250 mainWindow->enableButtons();
253 mainWindow->insertPanel(
256 QString("Media Panel - control over recorded data"));
263 media2Form = new PIRMedia2Form(mainWindow);
264 mainWindow->enableButtons();
267 mainWindow->insertPanel(
270 QString("Media2 Panel - additonal media controls"));
277 recordForm = new PIRRecordForm(mainWindow);
278 mainWindow->enableButtons();
281 mainWindow->insertPanel(
284 QString("Program/Record Panel - control over memory and storage"));
291 tvForm = new PIRTVForm(mainWindow);
292 mainWindow->enableButtons();
295 mainWindow->insertPanel(
298 QString("TV Panel - teletext and picture-in-picture"));
305 inputForm = new PIRInputForm(mainWindow);
306 mainWindow->enableButtons();
309 mainWindow->insertPanel(
312 QString("Input Panel - manage data sources"));
319 adjustForm = new PIRAdjustForm(mainWindow);
320 mainWindow->enableButtons();
323 mainWindow->insertPanel(
326 QString("Adjust Panel - modify audio and video"));
333 acForm = new PIRAirConditionerForm(mainWindow);
334 mainWindow->enableButtons();
337 mainWindow->insertPanel(
340 QString("A/C Panel - air conditioner controls"));
344 case Favorites_Panel:
347 favoritesForm = new PIRFavoritesForm(mainWindow);
348 mainWindow->enableButtons();
351 mainWindow->insertPanel(
354 QString("Favorites Panel - memorized keysets"));
364 void PIRPanelManager::selectPrevFavKeyset()
366 // If the favorites form doesn't exist, no need to continue:
367 if (!favoritesForm) return;
369 favoritesForm->selectPrevFavKeyset();
373 void PIRPanelManager::selectNextFavKeyset()
375 // If the favorites form doesn't exist, no need to continue:
376 if (!favoritesForm) return;
378 favoritesForm->selectNextFavKeyset();
382 void PIRPanelManager::addFavoritesItem(
383 PIRKeysetWidgetItem *item)
387 favoritesForm = new PIRFavoritesForm(mainWindow);
390 favoritesForm->addItem(item);
394 QListWidget *PIRPanelManager::getFavoritesListWidget()
398 favoritesForm = new PIRFavoritesForm(mainWindow);
401 return favoritesForm->getFavoritesListWidget();