1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#include "mainwindow.h"
#include "solverwindow.h"
MainWindow::MainWindow()
{
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("Solve sudoku constraints"));
connect(action_solve, SIGNAL(triggered()), mainwindow_solverwindow, SLOT(solve()));
// Move -> Search
action_search = new QAction(tr("Search"), this);
action_search->setStatusTip(tr("Search for a solution"));
connect(action_search, SIGNAL(triggered()), mainwindow_solverwindow, SLOT(search()));
}
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);
mainwindow_movemenu->addAction(action_search);
}
|