summaryrefslogtreecommitdiff
path: root/src/sudokuwidget.cc
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-06-05 22:00:38 +0000
committerStijn Buys <ingar@osirion.org>2012-06-05 22:00:38 +0000
commit62162c4921a32edaffa8599e9e0ee9cf875bf5d7 (patch)
tree29c03f6d1a76b958f37d01bcd6c3db028ad5b607 /src/sudokuwidget.cc
parent811fc1986755bf20078eed0b7e21d31b085eb52d (diff)
Implemented load, save and clear functionality.
Diffstat (limited to 'src/sudokuwidget.cc')
-rw-r--r--src/sudokuwidget.cc37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/sudokuwidget.cc b/src/sudokuwidget.cc
index ef60e67..742798f 100644
--- a/src/sudokuwidget.cc
+++ b/src/sudokuwidget.cc
@@ -3,6 +3,7 @@
#include <QLineEdit>
#include <QGridLayout>
+#include <QString>
SudokuWidget::SudokuWidget()
{
@@ -10,11 +11,45 @@ SudokuWidget::SudokuWidget()
for (int row = 0; row < 9; row++) {
for (int column = 0; column < 9 ; column++) {
+
sudokuwidget_value[row][column] = new QLineEdit();
+ sudokuwidget_value[row][column]->setFrame(false);
+ sudokuwidget_value[row][column]->setAlignment(Qt::AlignCenter);
+
gridlayout->addWidget(sudokuwidget_value[row][column], row, column);
}
-
}
setLayout(gridlayout);
+}
+
+void SudokuWidget::set_values(const Sudoku & values)
+{
+ for (int row = 0; row < 9; row++) {
+ for (int column = 0; column < 9 ; column++) {
+ int i = values.value(row, column);
+ if (i > 0) {
+ QString str = QString::number(i);
+ sudokuwidget_value[row][column]->setText(str);
+ } else {
+ sudokuwidget_value[row][column]->clear();
+ }
+ }
+ }
+}
+
+void SudokuWidget::get_values(Sudoku & values)
+{
+ for (int row = 0; row < 9; row++) {
+ for (int column = 0; column < 9 ; column++) {
+ bool ok;
+ QString str(sudokuwidget_value[row][column]->text());
+ int i = str.toInt(&ok);
+ if (ok && (i > 0) && (i <= 9)) {
+ values.value(row, column) = i;
+ } else {
+ values.value(row, column) = 0;
+ }
+ }
+ }
} \ No newline at end of file