43 class QAction; |
43 class QAction; |
44 class QDataWidgetMapper; |
44 class QDataWidgetMapper; |
45 class QAbstractItemModel; |
45 class QAbstractItemModel; |
46 class QSettings; |
46 class QSettings; |
47 class QSlider; |
47 class QSlider; |
|
48 class QGridlayout; |
48 |
49 |
49 class AbstractPage : public QWidget |
50 class AbstractPage : public QWidget |
50 { |
51 { |
51 Q_OBJECT |
52 Q_OBJECT |
52 |
53 |
53 public: |
54 signals: |
|
55 void goBack(); |
54 |
56 |
55 protected: |
57 protected: |
56 AbstractPage(QWidget* parent = 0) { |
58 // constructor and virtual destructor |
57 Q_UNUSED(parent); |
59 AbstractPage(QWidget * parent = 0); |
58 |
60 |
59 font14 = new QFont("MS Shell Dlg", 14); |
61 // call this in the constructor of your subclass |
60 //setFocusPolicy(Qt::StrongFocus); |
62 void initPage(); |
61 } |
|
62 virtual ~AbstractPage() {}; |
|
63 |
63 |
64 QPushButton* addButton(QString btname, QGridLayout* grid, int wy, int wx, bool iconed = false) { |
64 // the following methods are used during page construction |
65 QPushButton* butt = new QPushButton(this); |
|
66 if (!iconed) { |
|
67 butt->setFont(*font14); |
|
68 butt->setText(btname); |
|
69 //butt->setStyleSheet("background-color: #0d0544"); |
|
70 } else { |
|
71 const QIcon& lp=QIcon(btname); |
|
72 QSize sz = lp.actualSize(QSize(65535, 65535)); |
|
73 butt->setIcon(lp); |
|
74 butt->setFixedSize(sz); |
|
75 butt->setIconSize(sz); |
|
76 butt->setFlat(true); |
|
77 butt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); |
|
78 } |
|
79 grid->addWidget(butt, wy, wx); |
|
80 return butt; |
|
81 }; |
|
82 |
65 |
83 QPushButton* addButton(QString btname, QGridLayout* grid, int wy, int wx, int rowSpan, int columnSpan, bool iconed = false) { |
66 // you MUST implement this method in your subclass |
84 QPushButton* butt = new QPushButton(this); |
67 // only define layout, not behavior in here |
85 if (!iconed) { |
68 virtual QLayout * bodyLayoutDefinition() = 0; |
86 butt->setFont(*font14); |
|
87 butt->setText(btname); |
|
88 } else { |
|
89 const QIcon& lp=QIcon(btname); |
|
90 QSize sz = lp.actualSize(QSize(65535, 65535)); |
|
91 butt->setIcon(lp); |
|
92 butt->setFixedSize(sz); |
|
93 butt->setIconSize(sz); |
|
94 butt->setFlat(true); |
|
95 butt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); |
|
96 } |
|
97 grid->addWidget(butt, wy, wx, rowSpan, columnSpan); |
|
98 return butt; |
|
99 }; |
|
100 |
69 |
101 QPushButton* addButton(QString btname, QBoxLayout* box, int where, bool iconed = false) { |
70 // you CAN implement this method in your subclass |
102 QPushButton* butt = new QPushButton(this); |
71 virtual QLayout * footerLayoutDefinition() { return NULL; }; |
103 if (!iconed) { |
|
104 butt->setFont(*font14); |
|
105 butt->setText(btname); |
|
106 } else { |
|
107 const QIcon& lp=QIcon(btname); |
|
108 QSize sz = lp.actualSize(QSize(65535, 65535)); |
|
109 butt->setIcon(lp); |
|
110 butt->setFixedSize(sz); |
|
111 butt->setIconSize(sz); |
|
112 butt->setFlat(true); |
|
113 butt->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); |
|
114 } |
|
115 box->addWidget(butt, where); |
|
116 return butt; |
|
117 }; |
|
118 |
72 |
119 QFont * font14; |
73 // you CAN but most likely want to implement this method in your subclass |
|
74 // keep in mind not to expose twidgets as public! |
|
75 // instead define a signal with a meaningful name and connect the widget |
|
76 // signals to your page signals |
|
77 virtual void connectSignals() {}; |
|
78 |
|
79 virtual ~AbstractPage() {}; |
|
80 |
|
81 QPushButton * formattedButton(const QString & btname, bool hasIcon = false); |
|
82 QPushButton * addButton(const QString & btname, QGridLayout * grid, int wy, int wx, bool hasIcon = false); |
|
83 QPushButton * addButton(const QString & btname, QGridLayout * grid, int wy, int wx, int rowSpan, int columnSpan, bool hasIcon = false); |
|
84 QPushButton * addButton(const QString & btname, QBoxLayout * box, int where, bool hasIcon = false); |
|
85 |
|
86 void setBackButtonVisible(bool visible = true); |
|
87 |
|
88 QFont * font14; |
|
89 |
|
90 private: |
|
91 |
|
92 QPushButton * btnBack; |
120 }; |
93 }; |
121 |
94 |
122 #endif |
95 #endif |
123 |
96 |