summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-06-05 18:50:44 +0000
committerStijn Buys <ingar@osirion.org>2012-06-05 18:50:44 +0000
commit168d6e5763685b57c2ddd444209374c37bc5fdec (patch)
treed761a7284b48c9263ff235dd0ceb1638c28a4135
parent42cb020233b6635f2d06b7f7b533a0ee4f85f4fa (diff)
Added solverwindow and sidebar buttons,
added Sudoku value container class.
-rw-r--r--src/Makefile.am13
-rw-r--r--src/mainwindow.cc7
-rw-r--r--src/mainwindow.h12
-rw-r--r--src/solverwindow.cc47
-rw-r--r--src/solverwindow.h15
-rw-r--r--src/sudoku.cc15
-rw-r--r--src/sudoku.h30
-rw-r--r--src/sudokuwidget.cc20
-rw-r--r--src/sudokuwidget.h22
9 files changed, 138 insertions, 43 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index a67c97d..943ed52 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,17 +1,20 @@
-bin_PROGRAMS = sudosolve
+bin_PROGRAMS = sudokusolver
# You have two .cpp files you wrote, editor.cpp and another.cpp
# Remember to include the name of the resource file with the .cpp extension.
-sudosolve_SOURCES = \
+sudokusolver_SOURCES = \
main.cc \
mainwindow.cc \
- sudoku.cc
+ solverwindow.cc \
+ sudoku.cc \
+ sudokuwidget.cc
# You have one .h file, it's called editor.h. Therefore, here I list
# its mocced name, moc_editor.cpp.
-nodist_sudosolve_SOURCES = \
+nodist_sudokusolver_SOURCES = \
moc_mainwindow.cc \
- moc_sudoku.cc
+ moc_solverwindow.cc \
+ moc_sudokuwidget.cc
# This rule lets GNU make create any moc_*.cpp from the equivalent *.h
moc_%.cc: %.h
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 60d2dcf..f109a86 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -1,10 +1,9 @@
#include "mainwindow.h"
-#include "sudoku.h"
+#include "solverwindow.h"
MainWindow::MainWindow()
{
- mainwindow_sudoku = new Sudoku();
-
- setCentralWidget(mainwindow_sudoku);
+ SolverWindow *solverwindow = new SolverWindow();
+ setCentralWidget(solverwindow);
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 09f22dd..19d45c8 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -1,11 +1,11 @@
-#ifndef __INCLUDED_SUDOSOLVE_MAINWINDOW__
-#define __INCLUDED_SUDOSOLVE_MAINWINDOW__
+#ifndef __INCLUDED_SUDOKUSOLVER_MAINWINDOW__
+#define __INCLUDED_SUDOKUSOLVER_MAINWINDOW__
#include <QtGui>
#include <QMainWindow>
-class Sudoku;
+class SudokuWidget;
class MainWindow : public QMainWindow
{
@@ -13,10 +13,6 @@ class MainWindow : public QMainWindow
public:
MainWindow();
-
-private:
- Sudoku *mainwindow_sudoku;
-
};
-#endif // __INCLUDED_SUDOSOLVE_MAINWINDOW__ \ No newline at end of file
+#endif // __INCLUDED_SUDOKUSOLVER_MAINWINDOW__ \ No newline at end of file
diff --git a/src/solverwindow.cc b/src/solverwindow.cc
new file mode 100644
index 0000000..9a04e46
--- /dev/null
+++ b/src/solverwindow.cc
@@ -0,0 +1,47 @@
+
+#include "solverwindow.h"
+#include "sudokuwidget.h"
+
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+
+#include <QPushButton>
+
+SolverWindow::SolverWindow()
+{
+ QHBoxLayout *windowlayout = new QHBoxLayout();
+
+
+ // sidebar
+ QVBoxLayout *sidebarlayout = new QVBoxLayout();
+
+ // add load button
+ QPushButton *loadbutton = new QPushButton(tr("Load"));
+ sidebarlayout->addWidget(loadbutton);
+
+ // add save button
+ QPushButton *savebutton = new QPushButton(tr("Save"));
+ sidebarlayout->addWidget(savebutton);
+
+ // add step button
+ QPushButton *stepbutton = new QPushButton(tr("Step"));
+ sidebarlayout->addWidget(stepbutton);
+
+ // add stretch
+ sidebarlayout->addStretch(1);
+
+ // add clear button
+ QPushButton *clearbutton = new QPushButton(tr("Clear"));
+ sidebarlayout->addWidget(clearbutton);
+
+ // add sidebar layout
+ windowlayout->addLayout(sidebarlayout);
+
+
+ // sudoku widget
+ SudokuWidget *sudokuwidget = new SudokuWidget();
+ windowlayout->addWidget(sudokuwidget);
+
+ // set window layout
+ setLayout(windowlayout);
+}
diff --git a/src/solverwindow.h b/src/solverwindow.h
new file mode 100644
index 0000000..4743332
--- /dev/null
+++ b/src/solverwindow.h
@@ -0,0 +1,15 @@
+
+#ifndef __INCLUDED_SUDOKUSOLVER_SOLVERWINDOW__
+#define __INCLUDED_SUDOKUSOLVER_SOLVERWINDOW__
+
+#include <QWidget>
+
+class SolverWindow : public QWidget
+{
+ Q_OBJECT
+
+public:
+ SolverWindow();
+};
+
+#endif // __INCLUDED_SUDOKUSOLVER_SOLVERWINDOW__ \ No newline at end of file
diff --git a/src/sudoku.cc b/src/sudoku.cc
index f676bb1..28e59b6 100644
--- a/src/sudoku.cc
+++ b/src/sudoku.cc
@@ -1,20 +1,11 @@
#include "sudoku.h"
-#include <QLineEdit>
-#include <QGridLayout>
-
Sudoku::Sudoku()
{
- QGridLayout *gridlayout = new QGridLayout();
-
- for (size_t row = 0; row < 9; row++) {
- for (size_t column = 0; column < 9 ; column++) {
- sudoku_value[row][column] = new QLineEdit();
- gridlayout->addWidget(sudoku_value[row][column], row, column);
+ for (int row = 0; row < 9; row++) {
+ for (int column = 0; column < 9; column++) {
+ sudoku_value[row][column] = 0;
}
-
}
-
- setLayout(gridlayout);
} \ No newline at end of file
diff --git a/src/sudoku.h b/src/sudoku.h
index c9d38e6..2059a81 100644
--- a/src/sudoku.h
+++ b/src/sudoku.h
@@ -1,22 +1,24 @@
-#ifndef __INCLUDED_SUDOSOLVE_SUDOKU__
-#define __INCLUDED_SUDOSOLVE_SUDOKU__
+#ifndef __INCLUDED_SUDOKUSOLVER_SUDOKU__
+#define __INCLUDED_SUDOKUSOLVER_SUDOKU__
-#include <QtGui>
-#include <QWidget>
-
-class QLineEdit;
-
-class Sudoku : public QWidget
-{
- Q_OBJECT
+class Sudoku {
public:
Sudoku();
-
+
+ // inspector
+ inline int value(int row, int column) const {
+ return sudoku_value[row][column];
+ }
+
+ // mutator
+ inline int & value(int row, int column) {
+ return sudoku_value[row][column];
+ }
+
private:
- QLineEdit * sudoku_value[9][9];
-
+ int sudoku_value[9][9];
};
-#endif // __INCLUDED_SUDOSOLVE_SUDOKU__ \ No newline at end of file
+#endif // __INCLUDED_SUDOKUSOLVER_SUDOKU__
diff --git a/src/sudokuwidget.cc b/src/sudokuwidget.cc
new file mode 100644
index 0000000..ef60e67
--- /dev/null
+++ b/src/sudokuwidget.cc
@@ -0,0 +1,20 @@
+
+#include "sudokuwidget.h"
+
+#include <QLineEdit>
+#include <QGridLayout>
+
+SudokuWidget::SudokuWidget()
+{
+ QGridLayout *gridlayout = new QGridLayout();
+
+ for (int row = 0; row < 9; row++) {
+ for (int column = 0; column < 9 ; column++) {
+ sudokuwidget_value[row][column] = new QLineEdit();
+ gridlayout->addWidget(sudokuwidget_value[row][column], row, column);
+ }
+
+ }
+
+ setLayout(gridlayout);
+} \ No newline at end of file
diff --git a/src/sudokuwidget.h b/src/sudokuwidget.h
new file mode 100644
index 0000000..59e4f3c
--- /dev/null
+++ b/src/sudokuwidget.h
@@ -0,0 +1,22 @@
+
+#ifndef __INCLUDED_SUDOKUSOLVER_SUDOKUWIDGET__
+#define __INCLUDED_SUDOKUSOLVER_SUDOKUWIDGET__
+
+#include <QtGui>
+#include <QWidget>
+
+class QLineEdit;
+
+class SudokuWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ SudokuWidget();
+
+private:
+ QLineEdit * sudokuwidget_value[9][9];
+
+};
+
+#endif // __INCLUDED_SUDOKUSOLVER_SUDOKUWIDGET__ \ No newline at end of file