Changing settings dialog logic and menu changes
[impuzzle] / src / settingsdialog.cpp
index 0c0b4f1..0f2a6cb 100644 (file)
@@ -57,10 +57,13 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
 
     selectedImageLabel_ = new QLabel(tr("n/a"));
 
+    applyButton_ = new QPushButton(tr("Play"));
+
     mainLayout_ = new QVBoxLayout;
     mainLayout_->addWidget(buttonGroup_);
     mainLayout_->addWidget(imageCombo_);
     mainLayout_->addWidget(selectedImageLabel_);
+    mainLayout_->addWidget(applyButton_);
 
     selectedImageLabel_->setVisible(false);
 
@@ -69,6 +72,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
     connect(easyButton_, SIGNAL(toggled(bool)), this, SLOT(difficultySelectionChanged(bool)));
     //connect(imageCombo_, SIGNAL(currentIndexChanged(QString)), this, SLOT(imageSelectionChanged(QString)));
     connect(imageCombo_, SIGNAL(activated(QString)), this, SLOT(imageSelectionChanged(QString)));
+    connect(applyButton_, SIGNAL(clicked()), this, SLOT(applyClicked()));
 }
 
 int SettingsDialog::exec()
@@ -106,18 +110,24 @@ void SettingsDialog::imageSelectionChanged(const QString &txt)
 
         QStringList pics = dir.entryList(filters, QDir::Files | QDir::NoSymLinks);
 
-        qDebug() << QString("pics list contains %1 entries").arg(pics.count());
+        //qDebug() << QString("pics list contains %1 entries").arg(pics.count());
 
-        QString path = QDir::homePath() + QLatin1String("/MyDocs/.images/") + pics.at(qrand() % pics.count());
-        Settings::instance()->setImage(QPixmap(path));
-        Settings::instance()->setImagePath(path);
+        if(!pics.isEmpty()) {
+            QString path = QDir::homePath() + QLatin1String("/MyDocs/.images/") + pics.at(qrand() % pics.count());
+            Settings::instance()->setImage(QPixmap(path));
+            Settings::instance()->setImagePath(path);
+        }
+        else {
+            Settings::instance()->setImage(QPixmap(":/images/default.jpg"));
+            Settings::instance()->setImagePath("default");
+        }
 
         if(selectedImageLabel_->isVisible()) {
             selectedImageLabel_->setVisible(false);
         }
     }
     else if(txt == SELECT_IMAGE_TXT) {
-        qDebug() << "Select image... selected";
+        //qDebug() << "Select image... selected";
 
         // Open file selection dialog
         QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
@@ -144,3 +154,8 @@ void SettingsDialog::imageSelectionChanged(const QString &txt)
         }
     }
 }
+
+void SettingsDialog::applyClicked()
+{
+    this->done(1);
+}