Save and restore
[impuzzle] / src / settingsdialog.cpp
index 985dfb6..778666d 100644 (file)
@@ -51,6 +51,16 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
     connect(imageCombo_, SIGNAL(currentIndexChanged(QString)), this, SLOT(imageSelectionChanged(QString)));
 }
 
+int SettingsDialog::exec()
+{
+    // Making sure that a random image is picked when starting a new game after the first game (fix me)
+    if(imageCombo_->currentText() == RANDOM_IMAGE_TXT) {
+        imageSelectionChanged(RANDOM_IMAGE_TXT);
+    }
+
+    return QDialog::exec();
+}
+
 void SettingsDialog::difficultySelectionChanged(bool value)
 {
     if(value) {
@@ -77,7 +87,9 @@ void SettingsDialog::imageSelectionChanged(const QString &txt)
 
         qDebug() << QString("pics list contains %1 entries").arg(pics.count());
 
-        Settings::instance()->setImage(QPixmap(QDir::homePath() + QLatin1String("/MyDocs/.images/") + pics.at(qrand() % pics.count())));
+        QString path = QDir::homePath() + QLatin1String("/MyDocs/.images/") + pics.at(qrand() % pics.count());
+        Settings::instance()->setImage(QPixmap(path));
+        Settings::instance()->setImagePath(path);
 
         if(selectedImageLabel_->isVisible()) {
             selectedImageLabel_->setVisible(false);
@@ -92,6 +104,7 @@ void SettingsDialog::imageSelectionChanged(const QString &txt)
                                                          tr("Images (*.png *.xpm *.jpg)"));
 
         Settings::instance()->setImage(QPixmap(fileName));
+        Settings::instance()->setImagePath(fileName);
 
         selectedImageLabel_->setText(fileName);
 
@@ -103,6 +116,7 @@ void SettingsDialog::imageSelectionChanged(const QString &txt)
         qDebug() << "Default image selected";
 
         Settings::instance()->setImage(0);
+        Settings::instance()->setImagePath("default");
 
         if(selectedImageLabel_->isVisible()) {
             selectedImageLabel_->setVisible(false);