forked from mhmtipek/sudoku
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sudokuboardcelldata.h
64 lines (46 loc) · 1.56 KB
/
sudokuboardcelldata.h
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
#ifndef CELLDATA_H
#define CELLDATA_H
#include <QObject>
#define EMPTY_CELL_VALUE -1
/*!
* \brief Contains cell data used in QML Grid view
*/
class SudokuBoardCellData : public QObject
{
Q_OBJECT
//! Value of cell
Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)
//! Status of cell.
Q_PROPERTY(QString status READ status NOTIFY statusChanged)
//! If value of cell is in conflict with another cell.
Q_PROPERTY(bool inConflict READ inConflict WRITE setInConflict NOTIFY inConflictChanged)
//! If cell is editable
Q_PROPERTY(bool isEditable READ isEditable WRITE setEditable NOTIFY isEditableChanged)
public:
SudokuBoardCellData(QObject *parent = 0);
SudokuBoardCellData(int value, QObject *parent = 0);
int value() const;
void setValue(int value);
QString status() const;
void setStatus(const QString &status);
bool inConflict() const;
void setInConflict(bool ok);
bool isEditable() const;
void setEditable(bool ok);
operator int() const;
signals:
void valueChanged();
void statusChanged();
void inConflictChanged();
void isEditableChanged();
private:
int m_value;
QString m_status;
bool m_inConflict;
bool m_isEditable;
};
//! Comparision with another SudokuBoardCellData object
bool operator ==(const SudokuBoardCellData &lhs, const SudokuBoardCellData &rhs);
//! Comparision with integer value. Returns true if cell value is equal to value, else returns false
bool operator ==(const SudokuBoardCellData &lhs, int value);
#endif // CELLDATA_H