diff options
Diffstat (limited to 'src/mainwindow.cc')
-rw-r--r-- | src/mainwindow.cc | 71 |
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); +} + |