Adding Macros!
[pierogi] / pirpanelmanager.cpp
index 36e61b5..2e485c7 100644 (file)
 #include "forms/piradjustform.h"
 #include "forms/pirairconditionerform.h"
 #include "forms/piraudiodeviceform.h"
+#include "forms/pircameraform.h"
+#include "forms/pirroombaform.h"
+#include "forms/piruserform.h"
+#include "forms/pirmacroform.h"
+#include "forms/pirpowersearchform.h"
 
 #include "mainwindow.h"
 
@@ -22,7 +27,7 @@
 
 // Debugging:
 //#include <QMaemo5InformationBox>
-//#include <iostream>
+#include <iostream>
 
 PIRPanelManager::PIRPanelManager(
   MainWindow *mw):
@@ -39,6 +44,11 @@ PIRPanelManager::PIRPanelManager(
     adjustForm(0),
     acForm(0),
     audioDeviceForm(0),
+    cameraForm(0),
+    roombaForm(0),
+    userForm(0),
+    macroForm(0),
+    powerSearchForm(0),
     altMainPanelFlag(false),
     currentTabsName(Universal_Tabs),
     mainWindow(mw)
@@ -46,7 +56,16 @@ PIRPanelManager::PIRPanelManager(
   QSettings settings("pietrzak.org", "Pierogi");
   if (settings.contains("currentTabsName"))
   {
-    currentTabsName = PIRTabBarName(settings.value("currentTabsName").toInt());
+    int tabVal = settings.value("currentTabsName").toInt();
+
+    if (tabVal >= Last_Tabs_Marker)
+    {
+      currentTabsName = Universal_Tabs;
+    }
+    else
+    {
+      currentTabsName = PIRTabBarName(tabVal);
+    }
   }
 
   // Set up the panel names:
@@ -86,6 +105,21 @@ PIRPanelManager::PIRPanelManager(
   shortPanelNames[Audio_Panel] = "Audio";
   longPanelNames[Audio_Panel] =
     "Audio Device Panel - various audio related buttons";
+  shortPanelNames[Camera_Panel] = "Camera";
+  longPanelNames[Camera_Panel] =
+    "Camera Panel - simple shutter controls";
+  shortPanelNames[Roomba_Panel] = "Roomba";
+  longPanelNames[Roomba_Panel] =
+    "Roomba Panel - robotic vacuum cleaner controls";
+  shortPanelNames[User_Panel] = "User";
+  longPanelNames[User_Panel] =
+    "User Panel - macro control buttons";
+  shortPanelNames[Macro_Panel] = "Edit Macro Contents";
+  longPanelNames[Macro_Panel] =
+    "Edit Macros Panel - create, delete, edit, and manage macros";
+  shortPanelNames[PowerSearch_Panel] = "Keyset Search";
+  longPanelNames[PowerSearch_Panel] =
+    "Keyset Search Panel - execute power button in each keyset";
 
   mainForm = new PIRMainForm(mainWindow);
   panels[Main_Panel] = mainForm;
@@ -126,6 +160,21 @@ PIRPanelManager::PIRPanelManager(
   audioDeviceForm = new PIRAudioDeviceForm(mainWindow);
   panels[Audio_Panel] = audioDeviceForm;
 
+  cameraForm = new PIRCameraForm(mainWindow);
+  panels[Camera_Panel] = cameraForm;
+
+  roombaForm = new PIRRoombaForm(mainWindow);
+  panels[Roomba_Panel] = roombaForm;
+
+  userForm = new PIRUserForm(mainWindow);
+  panels[User_Panel] = userForm;
+
+  macroForm = new PIRMacroForm(mainWindow);
+  panels[Macro_Panel] = macroForm;
+
+  powerSearchForm = new PIRPowerSearchForm(mainWindow);
+  panels[PowerSearch_Panel] = powerSearchForm;
+
   // Set up the panel collections:
   PIRPanelNameList pset;
 
@@ -135,7 +184,8 @@ PIRPanelManager::PIRPanelManager(
   pset.push_back(Keypad_Panel);
   pset.push_back(Menu_Panel);
   pset.push_back(Media_Panel);
-  pset.push_back(Input_Panel);
+  pset.push_back(User_Panel);
+//  pset.push_back(Input_Panel);
   tabLists[Universal_Tabs] = pset;
 
   // The TV collection:
@@ -175,6 +225,26 @@ PIRPanelManager::PIRPanelManager(
   pset.push_back(Record_Panel);
   pset.push_back(Keypad_Panel);
   tabLists[Record_Tabs] = pset;
+
+  // The camera control collection:
+  pset.clear();
+  pset.push_back(Camera_Panel);
+  tabLists[Camera_Tabs] = pset;
+
+  // The Roomba collection:
+  pset.clear();
+  pset.push_back(Roomba_Panel);
+  tabLists[Roomba_Tabs] = pset;
+
+  // The Macro Management collection:
+  pset.clear();
+  pset.push_back(Macro_Panel);
+  tabLists[Macro_Tabs] = pset;
+
+  // The Power Search collection:
+  pset.clear();
+  pset.push_back(PowerSearch_Panel);
+  tabLists[PowerSearch_Tabs] = pset;
 }
 
 
@@ -252,6 +322,17 @@ void PIRPanelManager::commonEnableButtons(
   adjustForm->enableButtons(keyset, id);
   acForm->enableButtons(keyset, id);
   audioDeviceForm->enableButtons(keyset, id);
+  cameraForm->enableButtons(keyset, id);
+  roombaForm->enableButtons(keyset, id);
+
+  // Also, set the label in the power search form:
+  powerSearchForm->setKeysetName(mainWindow->getCurrentFullName());
+}
+
+
+void PIRPanelManager::updateUserButtons()
+{
+  userForm->setupButtons();
 }
 
 
@@ -338,3 +419,9 @@ void PIRPanelManager::setupTabs(
   currentTabsName = name;
   updateTabSet();
 }
+
+
+QComboBox *PIRPanelManager::getKeysetComboBox()
+{
+  return macroForm->getKeysetComboBox();
+}