Selection window bugfix
[pierogi] / mainwindow.cpp
index e27a342..ec56cf0 100644 (file)
 
 //#include <iostream>
 
+//#define DEBUGGING
+
 extern PIRMakeMgr makeManager;
 
 
 MainWindow::MainWindow(QWidget *parent)
   : QMainWindow(parent),
     ui(new Ui::MainWindow),
-    mySelectionWindow(0),
+    selectKeysetForm(0),
     documentationForm(0),
     aboutForm(0),
     currentKeyset(0)
@@ -33,9 +35,9 @@ MainWindow::MainWindow(QWidget *parent)
   myKeysets = new PIRKeysetManager(this);
 
   // Set up the keyset selection window:
-  mySelectionWindow = new SelectionWindow(this);
+  selectKeysetForm = new PIRSelectKeysetForm(this);
 
-  myKeysets->populateGuiWidget(mySelectionWindow);
+  myKeysets->populateGuiWidget(selectKeysetForm);
 
   // Remember any favorites the user has already set:
   populateFavorites();
@@ -54,13 +56,44 @@ MainWindow::MainWindow(QWidget *parent)
     this,
     SLOT(keysetSelectionChanged(QListWidgetItem *)),
     Qt::QueuedConnection);
+
+  // Make sure the two selection lists don't show different selections:
+  QListWidget *klw = selectKeysetForm->getKeysetListWidget();
+  connect(
+    ui->favoriteKeysetsWidget,
+    SIGNAL(itemActivated(QListWidgetItem *)),
+    klw,
+    SLOT(clearSelection()),
+    Qt::QueuedConnection);
+
+  connect(
+    klw,
+    SIGNAL(itemActivated(QListWidgetItem *)),
+    ui->favoriteKeysetsWidget,
+    SLOT(clearSelection()),
+    Qt::QueuedConnection);
+
+#ifndef DEBUGGING
+  // The PIRModprobe object should take care of setting up and shutting down
+  // the lirc_rx51 kernel module, if necessary:
+  if (modprobeObj.loadRX51Module() != 0)
+  {
+    // Couldn't load module, quit:
+    QMessageBox errBox;
+    errBox.setText("Couldn't load lirc_rx51 kernel module!");
+    errBox.setIcon(QMessageBox::Warning);
+    errBox.exec();
+//    throw; // Need a clean way to exit here!!!
+  }
+#endif
 }
 
 
 MainWindow::~MainWindow()
 {
   delete myKeysets;
-  delete mySelectionWindow;
+  if (selectKeysetForm) delete selectKeysetForm;
   if (documentationForm) delete documentationForm;
   if (aboutForm) delete aboutForm;
   delete ui;
@@ -927,7 +960,7 @@ void MainWindow::on_recordButton_released()
 
 void MainWindow::on_actionSelectKeyset_triggered()
 {
-  mySelectionWindow->show();
+  selectKeysetForm->show();
 }
 
 void MainWindow::on_actionAbout_triggered()
@@ -1058,6 +1091,7 @@ void MainWindow::populateFavorites()
   PIRMakeName make;
   QString name;
   unsigned int id;
+//  PIRKeysetWidgetItem *kwi;
 
   while (index < size)
   {
@@ -1067,8 +1101,9 @@ void MainWindow::populateFavorites()
     name = makeManager.getMakeString(make);
     name.append(" ");
     name.append(myKeysets->getDisplayName(id));
-    ui->favoriteKeysetsWidget->addItem(
-      new PIRKeysetWidgetItem(name, id, make));
+//    kwi = new PIRKeysetWidgetItem(name, id, make);
+//    myKeysets->populateDeviceTypes(kwi, id);
+    ui->favoriteKeysetsWidget->addItem(new PIRKeysetWidgetItem(name, id, make));
     ++index;
   }