Several GUI fixes
[pierogi] / mainwindow.cpp
index 27f13d7..cbc276b 100644 (file)
@@ -45,7 +45,7 @@ MainWindow::MainWindow(QWidget *parent)
   setAttribute(Qt::WA_Maemo5StackedWindow);
 
   // Collect the keysets:
-  myKeysets = new PIRKeysetManager(this);
+  myKeysets = new PIRKeysetManager();
 
   // Set up the keyset selection window:
   selectKeysetForm = new PIRSelectKeysetForm(this);
@@ -69,12 +69,10 @@ MainWindow::MainWindow(QWidget *parent)
   }
 
   enableButtons();
-  secondaryForm->enableButtons(myKeysets, currentKeyset);
 
   connect(
     ui->favoriteKeysetsWidget,
-//    SIGNAL(itemActivated(QListWidgetItem *)),
-    SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
+    SIGNAL(itemActivated(QListWidgetItem *)),
     this,
     SLOT(keysetSelectionChanged(QListWidgetItem *)),
     Qt::QueuedConnection);
@@ -179,6 +177,9 @@ void MainWindow::showExpanded()
 
 void MainWindow::enableButtons()
 {
+  // Just to be sure, check to see if the keyset has been populated:
+  myKeysets->populateKeyset(this, currentKeyset);
+
   // This is going to be a little painful...
   // Main keys
   emit powerEnabled(myKeysets->hasKey(currentKeyset, Power_Key));
@@ -250,6 +251,9 @@ void MainWindow::enableButtons()
   emit pauseEnabled(myKeysets->hasKey(currentKeyset, Pause_Key));
   emit stopEnabled(myKeysets->hasKey(currentKeyset, Stop_Key));
   emit ejectEnabled(myKeysets->hasKey(currentKeyset, Eject_Key));
+
+  // Also enable the buttons on the secondary form:
+  secondaryForm->enableButtons(myKeysets, currentKeyset);
 }
 
 
@@ -883,11 +887,17 @@ void MainWindow::on_actionDocumentation_triggered()
 void MainWindow::keysetSelectionChanged(
   QListWidgetItem *item)
 {
-  if (!item) return;  // Should probably say something here!
+  if (!item) return;  // Should probably display error message here!
 
   PIRKeysetWidgetItem *kwi = dynamic_cast<PIRKeysetWidgetItem *>(item);
 
   if (!kwi) return; // Also need to say something here
+
+  if (currentKeyset == kwi->getID())
+  {
+    // We're already on that keyset, so nothing to do:
+    return;
+  }
   
   currentKeyset = kwi->getID();
 
@@ -903,7 +913,6 @@ void MainWindow::keysetSelectionChanged(
     myKeysets->getDisplayName(currentKeyset));
 
   enableButtons();
-  secondaryForm->enableButtons(myKeysets, currentKeyset);
 }
 
 
@@ -1089,6 +1098,8 @@ void MainWindow::selectPrevFavKeyset()
     position,
     QItemSelectionModel::ClearAndSelect);
 
+  keysetSelectionChanged(ui->favoriteKeysetsWidget->currentItem());
+
   // Tell the user about the change:
   QMaemo5InformationBox::information(
     0,
@@ -1118,6 +1129,8 @@ void MainWindow::selectNextFavKeyset()
     position,
     QItemSelectionModel::ClearAndSelect);
 
+  keysetSelectionChanged(ui->favoriteKeysetsWidget->currentItem());
+
   // Tell the user about the change:
   QMaemo5InformationBox::information(
     0,