+/*
+ Image Puzzle - A set your pieces straight game
+ Copyright (C) 2009 Timo Härkönen
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#include "settingsdialog.h"
#include "settings.h"
#include "defines.h"
imageCombo_ = new QComboBox;
imageCombo_->addItems(items);
+ imageCombo_->setCurrentIndex(1);
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);
setLayout(mainLayout_);
connect(easyButton_, SIGNAL(toggled(bool)), this, SLOT(difficultySelectionChanged(bool)));
- connect(imageCombo_, SIGNAL(currentIndexChanged(QString)), this, SLOT(imageSelectionChanged(QString)));
+ //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()
+{
+ // 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)
qDebug() << "Random image selected";
// Get random image from ~/MyDocs/.images/
+ //TODO: images from other directories
QStringList filters;
filters << "*.jpg" << "*.png" << "*.xpm";
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());
- Settings::instance()->setImage(QPixmap(QDir::homePath() + QLatin1String("/MyDocs/.images/") + pics.at(qrand() % pics.count())));
+ 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"),
tr("Images (*.png *.xpm *.jpg)"));
Settings::instance()->setImage(QPixmap(fileName));
+ Settings::instance()->setImagePath(fileName);
selectedImageLabel_->setText(fileName);
}
}
else {
- qDebug() << "Default image selected";
+ //qDebug() << "Default image selected";
Settings::instance()->setImage(0);
+ Settings::instance()->setImagePath("default");
if(selectedImageLabel_->isVisible()) {
selectedImageLabel_->setVisible(false);
}
}
}
+
+void SettingsDialog::applyClicked()
+{
+ this->done(1);
+}