Use QListWidget instead of comboboxes
[scorecard] / src / score-dialog.cpp
index 589f61a..64eb517 100644 (file)
@@ -8,15 +8,14 @@ SelectDialog::SelectDialog(QWidget *parent) : QDialog(parent)
   QWidget *centralWidget = new QWidget(this);
   createLayout(centralWidget);
 
-  setWindowTitle(tr("ScoreCard: Select Club, Course and Date"));
+  setWindowTitle(tr("ScoreCard: Select Course and Date"));
 }
 
 void SelectDialog::createLayout(QWidget *parent)
 {
   labelClub = new QLabel(tr("Club"));
   labelCourse = new QLabel(tr("Course"));
-  comboBoxClub = new QComboBox;
-  comboBoxCourse = new QComboBox;
+  listClub = new QListWidget(parent);
   lineEditDate = new QLineEdit;
   pushButtonNext = new QPushButton(tr("Next"));
 
@@ -24,12 +23,9 @@ void SelectDialog::createLayout(QWidget *parent)
   lineEditDate->setText(today.toString("yyyy-MM-dd"));
 
   connect(pushButtonNext, SIGNAL(clicked()), this, SLOT(next()));
-  connect(comboBoxClub, SIGNAL(activated(int)), this, SLOT(comboBoxClubChanged()));
-  connect(comboBoxCourse, SIGNAL(activated(int)), this, SLOT(comboBoxCourseChanged()));
 
   leftLayout = new QVBoxLayout;
-  leftLayout->addWidget(comboBoxClub);
-  leftLayout->addWidget(comboBoxCourse);
+  leftLayout->addWidget(listClub);
   leftLayout->addWidget(lineEditDate);
 
   rightLayout = new QVBoxLayout;
@@ -52,47 +48,41 @@ void SelectDialog::init(QList<Club *> &list)
 
   while (i.hasNext()) {
     Club *club = i.next();
-    comboBoxClub->insertItem(index, club->getName());
-    index++;
+
+    QList<Course *> courseList = club->getCourseList();
+
+    QListIterator<Course *> j(courseList);
+    while (j.hasNext()) {
+      Course *course = j.next();
+
+      QListWidgetItem *newItem = new QListWidgetItem;
+
+      QString entry = club->getName() + "," + course->getName();
+
+      newItem->setText(entry);
+      listClub->insertItem(index, newItem);
+
+      index++;
+    }
   }
-  comboBoxCourseUpdate();
 }
 
 void SelectDialog::results(QString &club, 
                           QString &course, 
                           QString &date)
 {  
-  club   = comboBoxClub->currentText();
-  course = comboBoxCourse->currentText();
-  date   = lineEditDate->text();
-}
-
-void SelectDialog::comboBoxCourseUpdate()
-{
-  int index = comboBoxClub->currentIndex();
+  QListWidgetItem *current = listClub->currentItem();
 
-  Club *club = clubList[index];
-  QList<Course *> courseList = club->getCourseList();
+  if (current) {
+    QString tmp = current->text();
 
-  comboBoxCourse->clear();
-  QListIterator<Course *> i(courseList);
-  index = 0;
-  while (i.hasNext()) {
-    Course *course = i.next();
-    comboBoxCourse->insertItem(index, course->getName());
-    index++;
+    QStringList stringList = tmp.split(",");
+    club = stringList[0];
+    course = stringList[1];
+    date   = lineEditDate->text();
   }
 }
 
-void SelectDialog::comboBoxClubChanged()
-{
-  comboBoxCourseUpdate();
-}
-
-void SelectDialog::comboBoxCourseChanged()
-{
-}
-
 bool SelectDialog::validate(void)
 {
   return true;
@@ -126,8 +116,6 @@ ScoreDialog::ScoreDialog(QWidget *parent) : QDialog(parent)
   createButton();
 
   createLayout(centralWidget);
-
-  setWindowTitle(tr("ScoreCard: New Score"));
 }
 
 void ScoreDialog::createLayout(QWidget *parent)
@@ -140,7 +128,7 @@ void ScoreDialog::createLayout(QWidget *parent)
   rightLayout->addWidget(pushButtonDown);
   rightLayout->addWidget(pushButtonNext);
   rightLayout->addStretch();
-  rightLayout->addWidget(pushButtonFinnish);
+  rightLayout->addWidget(pushButtonFinish);
 
   QHBoxLayout *mainLayout = new QHBoxLayout(parent);
   mainLayout->addLayout(leftLayout);
@@ -167,8 +155,8 @@ void ScoreDialog::createTable(QWidget *parent)
 
 void ScoreDialog::createButton(QWidget *parent)
 {
-  pushButtonFinnish = new QPushButton(tr("Finnish"));
-  connect(pushButtonFinnish, SIGNAL(clicked()), this, SLOT(finnish()));
+  pushButtonFinish = new QPushButton(tr("Finish"));
+  connect(pushButtonFinish, SIGNAL(clicked()), this, SLOT(finish()));
 
   pushButtonUp = new QPushButton(tr("+"));
   connect(pushButtonUp, SIGNAL(clicked()), this, SLOT(up()));
@@ -335,7 +323,7 @@ bool ScoreDialog::validate(void)
   return true;
 }
 
-void ScoreDialog::finnish(void)
+void ScoreDialog::finish(void)
 {
   if (validate())
     done(1);