summaryrefslogtreecommitdiff
path: root/src/mainwindow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cc')
-rw-r--r--src/mainwindow.cc71
1 files changed, 69 insertions, 2 deletions
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index f109a86..f441783 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -4,6 +4,73 @@
MainWindow::MainWindow()
{
- SolverWindow *solverwindow = new SolverWindow();
- setCentralWidget(solverwindow);
+ setWindowTitle(tr("Sudoku"));
+
+ mainwindow_solverwindow = new SolverWindow();
+ setCentralWidget(mainwindow_solverwindow);
+
+ initActions();
+
+ initMenus();
}
+
+
+void MainWindow::initActions()
+{
+ // Game -> New
+ action_new = new QAction(tr("&New"), this);
+ action_new->setShortcuts(QKeySequence::New);
+ action_new->setStatusTip(tr("Start a new game"));
+ connect(action_new, SIGNAL(triggered()), mainwindow_solverwindow, SLOT(clear()));
+
+ // Game -> Load
+ action_load = new QAction(tr("&Load..."), this);
+ action_load->setShortcuts(QKeySequence::Open);
+ action_load->setStatusTip(tr("Load a previously saved game"));
+ connect(action_load, SIGNAL(triggered()), mainwindow_solverwindow, SLOT(load()));
+
+ action_save = new QAction(tr("&Save"), this);
+ action_load->setStatusTip(tr("Save the current game"));
+
+ action_saveas = new QAction(tr("Save &As..."), this);
+ action_load->setStatusTip(tr("Save the current game to a new file"));
+ connect(action_saveas, SIGNAL(triggered()), mainwindow_solverwindow, SLOT(saveas()));
+
+ // Game -> Quit
+ action_quit = new QAction(tr("&Quit"), this);
+ action_quit->setShortcuts(QKeySequence::Quit);
+ action_quit->setStatusTip(tr("Exit the application"));
+ connect(action_quit, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));
+
+ // Move -> Hint
+ action_hint = new QAction(tr("Hint"), this);
+ action_hint->setStatusTip(tr("Give a hint"));
+ // TODO
+
+ // Move -> Step
+ action_step = new QAction(tr("Step"), this);
+ action_step->setStatusTip(tr("Solve a single cell"));
+ connect(action_step, SIGNAL(triggered()), mainwindow_solverwindow, SLOT(step()));
+
+ // Move -> Solve
+ action_solve = new QAction(tr("Solve"), this);
+ action_solve->setStatusTip(tr("Try to solve this game"));
+ connect(action_solve, SIGNAL(triggered()), mainwindow_solverwindow, SLOT(solve()));
+}
+
+void MainWindow::initMenus()
+{
+ mainwindow_gamemenu = menuBar()->addMenu(tr("&Game"));
+ mainwindow_gamemenu->addAction(action_new);
+ mainwindow_gamemenu->addAction(action_load);
+ mainwindow_gamemenu->addSeparator();
+ mainwindow_gamemenu->addAction(action_save);
+ mainwindow_gamemenu->addAction(action_saveas);
+ mainwindow_gamemenu->addAction(action_quit);
+
+ mainwindow_movemenu = menuBar()->addMenu(tr("&Move"));
+ mainwindow_movemenu->addAction(action_hint);
+ mainwindow_movemenu->addAction(action_step);
+ mainwindow_movemenu->addAction(action_solve);
+}
+