diff options
author | Stijn Buys <ingar@osirion.org> | 2013-07-12 13:45:53 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2013-07-12 13:45:53 +0000 |
commit | 1ee4d49f99e7925b9ac19aadc944007bd4320389 (patch) | |
tree | 5491f9d071edb09f1991e942511392fff0faa53d /src/sudokuwidget.cc | |
parent | a613c9476b4a6f2aa4c9eaf3a2f0dd131594f373 (diff) |
Removes sidebar buttons,
adds current filename to the window title,
adds a Move -> Guess option to the menu bar,
adds messageboxes to the Step, Guess and Validate actions.
Diffstat (limited to 'src/sudokuwidget.cc')
-rw-r--r-- | src/sudokuwidget.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/sudokuwidget.cc b/src/sudokuwidget.cc index 23052ef..75fc3be 100644 --- a/src/sudokuwidget.cc +++ b/src/sudokuwidget.cc @@ -13,6 +13,42 @@ SudokuWidget::SudokuWidget() sudokuwidget_value[row][column] = new QLineEdit(this); sudokuwidget_value[row][column]->setFrame(false); sudokuwidget_value[row][column]->setAlignment(Qt::AlignCenter); + + connect(sudokuwidget_value[row][column], SIGNAL(textEdited(const QString &)), this, SLOT(verify(const QString &))); + } + } +} + +void SudokuWidget::verify(const QString & text) +{ + 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.cell(row, column).set_value(i); + } else { + values.cell(row, column).set_value(0); + } + } + } + + values.validate(); + + for (int row = 0; row < 9; row++) { + for (int column = 0; column < 9 ; column++) { + QPalette child_palette(palette()); + int i = values.cell(row, column).value(); + if ( (i > 0) && (i <= 9) ) { + // set background color depending on the validity of the cell value + if (!values.cell(row, column).valid()) { + // FIXME colors should be configurable + child_palette.setColor(QPalette::Base, QColor(255, 0, 0)); + } + } + sudokuwidget_value[row][column]->setPalette(child_palette); } } } |