Changing settings dialog logic and menu changes
authorTimo Härkönen <timo@timo-desktop.localdomain>
Thu, 26 Aug 2010 17:56:46 +0000 (20:56 +0300)
committerTimo Härkönen <timo@timo-desktop.localdomain>
Thu, 26 Aug 2010 17:56:46 +0000 (20:56 +0300)
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h
src/settingsdialog.cpp
src/settingsdialog.h

index 2aa6758..1231eb1 100644 (file)
@@ -17,6 +17,7 @@
  */
 
 #include <QApplication>
+#include <QDesktopWidget>
 
 #include "mainwindow.h"
 
@@ -25,6 +26,7 @@ int main(int argc, char *argv[])
     QApplication app(argc, argv);
 
     MainWindow::instance()->show();
+    MainWindow::instance()->resize(app.desktop()->size());
 
     return app.exec();
 }
index 46a74c8..e2b2b19 100644 (file)
@@ -59,11 +59,13 @@ MainWindow *MainWindow::instance()
 
 void MainWindow::createMenu()
 {
-    menu_ = menuBar()->addMenu("");
+    menu_ = menuBar()->addMenu("&Game");
     menu_->addAction(newGameAction_);
     menu_->addAction(saveAction_);
-    menu_->addAction(aboutAction_);
     menu_->addAction(importAction_);
+
+    helpMenu_ = menuBar()->addMenu("&Help");
+    helpMenu_->addAction(aboutAction_);
 }
 
 void MainWindow::createActions()
@@ -90,11 +92,13 @@ void MainWindow::importClicked()
 
 void MainWindow::newGameClicked()
 {
-    settingsDialog_->exec();
+    int r = settingsDialog_->exec();
 
-    GameView::instance()->setPieces(ImageImporter::instance()->newPieces(Settings::instance()->image(), Settings::instance()->pieceCount()));
-    enableSaving();
-    PuzzleItem::setMoveCount(0);
+    if(r) {
+        GameView::instance()->setPieces(ImageImporter::instance()->newPieces(Settings::instance()->image(), Settings::instance()->pieceCount()));
+        enableSaving();
+        PuzzleItem::setMoveCount(0);
+    }
 }
 
 void MainWindow::aboutClicked()
index 91e9234..097be48 100644 (file)
@@ -53,6 +53,7 @@ private:
     QAction *saveAction_;
 
     QMenu *menu_;
+    QMenu *helpMenu_;
 
     SettingsDialog *settingsDialog_;
 };
index 019ca48..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()
@@ -150,3 +154,8 @@ void SettingsDialog::imageSelectionChanged(const QString &txt)
         }
     }
 }
+
+void SettingsDialog::applyClicked()
+{
+    this->done(1);
+}
index 05a759b..23b82ea 100644 (file)
@@ -27,6 +27,7 @@ class QRadioButton;
 class QHBoxLayout;
 class QComboBox;
 class QLabel;
+class QPushButton;
 
 class SettingsDialog : public QDialog
 {
@@ -41,6 +42,7 @@ public slots:
 private slots:
     void difficultySelectionChanged(bool value);
     void imageSelectionChanged(const QString &txt);
+    void applyClicked();
 
 private:
     QVBoxLayout *mainLayout_;
@@ -54,5 +56,7 @@ private:
     QComboBox *imageCombo_;
 
     QLabel *selectedImageLabel_;
+
+    QPushButton *applyButton_;
 };
 #endif