1 | #ifndef WIDGET_H |
---|
2 | #define WIDGET_H |
---|
3 | |
---|
4 | namespace QPunchCard { |
---|
5 | class CardWidget; |
---|
6 | } |
---|
7 | |
---|
8 | #include "qpunchcard/card.h" |
---|
9 | #include "text/codec.h" |
---|
10 | |
---|
11 | #include <QWidget> |
---|
12 | #include <QPointer> |
---|
13 | #include <QFlags> |
---|
14 | #include <QtDebug> |
---|
15 | #include <QPixmap> |
---|
16 | |
---|
17 | namespace QPunchCard { |
---|
18 | |
---|
19 | class CardWidget : public QWidget { |
---|
20 | Q_OBJECT |
---|
21 | //Q_ENUMS(Quality); |
---|
22 | //Q_PROPERTY(Quality quality READ quality WRITE setQuality); |
---|
23 | // geht irgendwie nicht... machen wirs halt erst mal so (siehe public) |
---|
24 | |
---|
25 | const Card* card; |
---|
26 | //QPointer<Card> card; // ### something like Card* const card; |
---|
27 | const Codec* codec; |
---|
28 | |
---|
29 | public: |
---|
30 | enum Quality { HighQuality, ThumbnailQuality }; |
---|
31 | Quality _quality; |
---|
32 | enum Editable { Readable, Hoverable, Writable }; |
---|
33 | Editable _editable; |
---|
34 | |
---|
35 | /* |
---|
36 | enum ElementVisibility { |
---|
37 | Default = 0x00, |
---|
38 | ShowNotPunchedHoles = 0x01 |
---|
39 | }; |
---|
40 | Q_DECLARE_FLAGS(_show_elements, ElementVisibility); |
---|
41 | */ |
---|
42 | |
---|
43 | QPixmap background_picture; |
---|
44 | |
---|
45 | CardWidget(QWidget * parent = 0, Qt::WFlags f = 0); |
---|
46 | CardWidget(const Card* card, QWidget * parent = 0, Qt::WFlags f = 0) : card(card) { CardWidget(parent, f); } |
---|
47 | |
---|
48 | // card handling |
---|
49 | void setCard(const Card* card) { this->card = card; } |
---|
50 | void unsetCard() { card = 0; } |
---|
51 | bool hasCard() { return card != 0; } |
---|
52 | // void setCard(File* file, int index) { this->card = &( file->operator[](index) ); } |
---|
53 | const Card* getCard() const { return card; } |
---|
54 | |
---|
55 | // size hints |
---|
56 | virtual QSize minimumSizeHint() const; |
---|
57 | virtual QSize sizeHint() const; |
---|
58 | virtual int heightForWidth(int i) const; |
---|
59 | |
---|
60 | // Quality issues (Property) |
---|
61 | void setQuality(Quality quality) { _quality = quality; } |
---|
62 | Quality quality() const { return _quality; } |
---|
63 | |
---|
64 | // Editable issues |
---|
65 | void setEditable(Editable editable) { _editable = editable; } |
---|
66 | Editable editable() const { return _editable; } |
---|
67 | |
---|
68 | // View issues |
---|
69 | |
---|
70 | |
---|
71 | // text related things |
---|
72 | const Codec* getCodec() const { return codec; } |
---|
73 | |
---|
74 | ~CardWidget() {}; |
---|
75 | |
---|
76 | public slots: |
---|
77 | void setCodec(const Codec* codec) { this->codec = codec; } |
---|
78 | void clearCodec() { setCodec(0); } |
---|
79 | |
---|
80 | protected: |
---|
81 | void paintEvent(QPaintEvent *event); |
---|
82 | }; |
---|
83 | |
---|
84 | //Q_DECLARE_OPERATORS_FOR_FLAGS(CardWidget::ElementVisibility); |
---|
85 | |
---|
86 | QDebug operator<<(QDebug dbg, const CardWidget &c); |
---|
87 | |
---|
88 | |
---|
89 | }; // namespace |
---|
90 | #endif // WIDGET_H |
---|