Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||
8 | - | |||||||||||||||||||||||||
9 | - | |||||||||||||||||||||||||
10 | - | |||||||||||||||||||||||||
11 | - | |||||||||||||||||||||||||
12 | __attribute__((visibility("default"))) extern bool qt_tab_all_widgets(); | - | ||||||||||||||||||||||||
13 | QAbstractButtonPrivate::QAbstractButtonPrivate(QSizePolicy::ControlType type) | - | ||||||||||||||||||||||||
14 | : | - | ||||||||||||||||||||||||
15 | - | |||||||||||||||||||||||||
16 | shortcutId(0), | - | ||||||||||||||||||||||||
17 | - | |||||||||||||||||||||||||
18 | checkable(false), checked(false), autoRepeat(false), autoExclusive(false), | - | ||||||||||||||||||||||||
19 | down(false), blockRefresh(false), pressed(false), | - | ||||||||||||||||||||||||
20 | - | |||||||||||||||||||||||||
21 | group(0), | - | ||||||||||||||||||||||||
22 | - | |||||||||||||||||||||||||
23 | autoRepeatDelay(300), | - | ||||||||||||||||||||||||
24 | autoRepeatInterval(100), | - | ||||||||||||||||||||||||
25 | controlType(type) | - | ||||||||||||||||||||||||
26 | {} never executed: end of block | 0 | ||||||||||||||||||||||||
27 | - | |||||||||||||||||||||||||
28 | QList<QAbstractButton *>QAbstractButtonPrivate::queryButtonList() const | - | ||||||||||||||||||||||||
29 | { | - | ||||||||||||||||||||||||
30 | - | |||||||||||||||||||||||||
31 | if (group
| 0 | ||||||||||||||||||||||||
32 | return never executed: group->d_func()->buttonList;return group->d_func()->buttonList; never executed: return group->d_func()->buttonList; | 0 | ||||||||||||||||||||||||
33 | - | |||||||||||||||||||||||||
34 | - | |||||||||||||||||||||||||
35 | QList<QAbstractButton*>candidates = parent->findChildren<QAbstractButton *>(); | - | ||||||||||||||||||||||||
36 | if (autoExclusive
| 0 | ||||||||||||||||||||||||
37 | for (int i = candidates.count() - 1; i >= 0
| 0 | ||||||||||||||||||||||||
38 | QAbstractButton *candidate = candidates.at(i); | - | ||||||||||||||||||||||||
39 | if (!candidate->autoExclusive()
| 0 | ||||||||||||||||||||||||
40 | - | |||||||||||||||||||||||||
41 | || candidate->group()
| 0 | ||||||||||||||||||||||||
42 | - | |||||||||||||||||||||||||
43 | ) | - | ||||||||||||||||||||||||
44 | candidates.removeAt(i); never executed: candidates.removeAt(i); | 0 | ||||||||||||||||||||||||
45 | } never executed: end of block | 0 | ||||||||||||||||||||||||
46 | } never executed: end of block | 0 | ||||||||||||||||||||||||
47 | return never executed: candidates;return candidates; never executed: return candidates; | 0 | ||||||||||||||||||||||||
48 | } | - | ||||||||||||||||||||||||
49 | - | |||||||||||||||||||||||||
50 | QAbstractButton *QAbstractButtonPrivate::queryCheckedButton() const | - | ||||||||||||||||||||||||
51 | { | - | ||||||||||||||||||||||||
52 | - | |||||||||||||||||||||||||
53 | if (group
| 0 | ||||||||||||||||||||||||
54 | return never executed: group->d_func()->checkedButton;return group->d_func()->checkedButton; never executed: return group->d_func()->checkedButton; | 0 | ||||||||||||||||||||||||
55 | - | |||||||||||||||||||||||||
56 | - | |||||||||||||||||||||||||
57 | const QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
58 | QList<QAbstractButton *> buttonList = queryButtonList(); | - | ||||||||||||||||||||||||
59 | if (!autoExclusive
| 0 | ||||||||||||||||||||||||
60 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
61 | - | |||||||||||||||||||||||||
62 | for (int i = 0; i < buttonList.count()
| 0 | ||||||||||||||||||||||||
63 | QAbstractButton *b = buttonList.at(i); | - | ||||||||||||||||||||||||
64 | if (b->d_func()->checked
| 0 | ||||||||||||||||||||||||
65 | return never executed: b;return b; never executed: return b; | 0 | ||||||||||||||||||||||||
66 | } never executed: end of block | 0 | ||||||||||||||||||||||||
67 | return never executed: checkedreturn checked ? const_cast<QAbstractButton *>(q) : 0;
never executed: return checked ? const_cast<QAbstractButton *>(q) : 0; | 0 | ||||||||||||||||||||||||
68 | } | - | ||||||||||||||||||||||||
69 | - | |||||||||||||||||||||||||
70 | void QAbstractButtonPrivate::notifyChecked() | - | ||||||||||||||||||||||||
71 | { | - | ||||||||||||||||||||||||
72 | - | |||||||||||||||||||||||||
73 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
74 | if (group
| 0 | ||||||||||||||||||||||||
75 | QAbstractButton *previous = group->d_func()->checkedButton; | - | ||||||||||||||||||||||||
76 | group->d_func()->checkedButton = q; | - | ||||||||||||||||||||||||
77 | if (group->d_func()->exclusive
| 0 | ||||||||||||||||||||||||
78 | previous->nextCheckState(); never executed: previous->nextCheckState(); | 0 | ||||||||||||||||||||||||
79 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
80 | - | |||||||||||||||||||||||||
81 | if (autoExclusive
| 0 | ||||||||||||||||||||||||
82 | if (QAbstractButton *b = queryCheckedButton()
| 0 | ||||||||||||||||||||||||
83 | b->setChecked(false); never executed: b->setChecked(false); | 0 | ||||||||||||||||||||||||
84 | } never executed: end of block | 0 | ||||||||||||||||||||||||
85 | } never executed: end of block | 0 | ||||||||||||||||||||||||
86 | - | |||||||||||||||||||||||||
87 | void QAbstractButtonPrivate::moveFocus(int key) | - | ||||||||||||||||||||||||
88 | { | - | ||||||||||||||||||||||||
89 | QList<QAbstractButton *> buttonList = queryButtonList();; | - | ||||||||||||||||||||||||
90 | - | |||||||||||||||||||||||||
91 | bool exclusive = group
| 0 | ||||||||||||||||||||||||
92 | - | |||||||||||||||||||||||||
93 | - | |||||||||||||||||||||||||
94 | - | |||||||||||||||||||||||||
95 | QWidget *f = QApplication::focusWidget(); | - | ||||||||||||||||||||||||
96 | QAbstractButton *fb = qobject_cast<QAbstractButton *>(f); | - | ||||||||||||||||||||||||
97 | if (!fb
| 0 | ||||||||||||||||||||||||
98 | return; never executed: return; | 0 | ||||||||||||||||||||||||
99 | - | |||||||||||||||||||||||||
100 | QAbstractButton *candidate = 0; | - | ||||||||||||||||||||||||
101 | int bestScore = -1; | - | ||||||||||||||||||||||||
102 | QRect target = f->rect().translated(f->mapToGlobal(QPoint(0,0))); | - | ||||||||||||||||||||||||
103 | QPoint goal = target.center(); | - | ||||||||||||||||||||||||
104 | uint focus_flag = qt_tab_all_widgets()
| 0 | ||||||||||||||||||||||||
105 | - | |||||||||||||||||||||||||
106 | for (int i = 0; i < buttonList.count()
| 0 | ||||||||||||||||||||||||
107 | QAbstractButton *button = buttonList.at(i); | - | ||||||||||||||||||||||||
108 | if (button != f
| 0 | ||||||||||||||||||||||||
109 | (autoExclusive
| 0 | ||||||||||||||||||||||||
110 | QRect buttonRect = button->rect().translated(button->mapToGlobal(QPoint(0,0))); | - | ||||||||||||||||||||||||
111 | QPoint p = buttonRect.center(); | - | ||||||||||||||||||||||||
112 | - | |||||||||||||||||||||||||
113 | - | |||||||||||||||||||||||||
114 | - | |||||||||||||||||||||||||
115 | - | |||||||||||||||||||||||||
116 | int score; | - | ||||||||||||||||||||||||
117 | if ((buttonRect.x() < target.right()
| 0 | ||||||||||||||||||||||||
118 | && (key == Qt::Key_Up
| 0 | ||||||||||||||||||||||||
119 | - | |||||||||||||||||||||||||
120 | score = (qAbs(p.y() - goal.y()) << 16) + qAbs(p.x() - goal.x()); | - | ||||||||||||||||||||||||
121 | } never executed: else if ((buttonRect.y() < target.bottom()end of block
| 0 | ||||||||||||||||||||||||
122 | && (key == Qt::Key_Left
| 0 | ||||||||||||||||||||||||
123 | - | |||||||||||||||||||||||||
124 | score = (qAbs(p.x() - goal.x()) << 16) + qAbs(p.y() - goal.y()); | - | ||||||||||||||||||||||||
125 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
126 | score = (1 << 30) + (p.y() - goal.y()) * (p.y() - goal.y()) + (p.x() - goal.x()) * (p.x() - goal.x()); | - | ||||||||||||||||||||||||
127 | } never executed: end of block | 0 | ||||||||||||||||||||||||
128 | - | |||||||||||||||||||||||||
129 | if (score > bestScore
| 0 | ||||||||||||||||||||||||
130 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
131 | - | |||||||||||||||||||||||||
132 | switch(key) { | - | ||||||||||||||||||||||||
133 | case never executed: Qt::Key_Up:case Qt::Key_Up: never executed: case Qt::Key_Up: | 0 | ||||||||||||||||||||||||
134 | if (p.y() < goal.y()
| 0 | ||||||||||||||||||||||||
135 | candidate = button; | - | ||||||||||||||||||||||||
136 | bestScore = score; | - | ||||||||||||||||||||||||
137 | } never executed: end of block | 0 | ||||||||||||||||||||||||
138 | break; never executed: break; | 0 | ||||||||||||||||||||||||
139 | case never executed: Qt::Key_Down:case Qt::Key_Down: never executed: case Qt::Key_Down: | 0 | ||||||||||||||||||||||||
140 | if (p.y() > goal.y()
| 0 | ||||||||||||||||||||||||
141 | candidate = button; | - | ||||||||||||||||||||||||
142 | bestScore = score; | - | ||||||||||||||||||||||||
143 | } never executed: end of block | 0 | ||||||||||||||||||||||||
144 | break; never executed: break; | 0 | ||||||||||||||||||||||||
145 | case never executed: Qt::Key_Left:case Qt::Key_Left: never executed: case Qt::Key_Left: | 0 | ||||||||||||||||||||||||
146 | if (p.x() < goal.x()
| 0 | ||||||||||||||||||||||||
147 | candidate = button; | - | ||||||||||||||||||||||||
148 | bestScore = score; | - | ||||||||||||||||||||||||
149 | } never executed: end of block | 0 | ||||||||||||||||||||||||
150 | break; never executed: break; | 0 | ||||||||||||||||||||||||
151 | case never executed: Qt::Key_Right:case Qt::Key_Right: never executed: case Qt::Key_Right: | 0 | ||||||||||||||||||||||||
152 | if (p.x() > goal.x()
| 0 | ||||||||||||||||||||||||
153 | candidate = button; | - | ||||||||||||||||||||||||
154 | bestScore = score; | - | ||||||||||||||||||||||||
155 | } never executed: end of block | 0 | ||||||||||||||||||||||||
156 | break; never executed: break; | 0 | ||||||||||||||||||||||||
157 | } | - | ||||||||||||||||||||||||
158 | } never executed: end of block | 0 | ||||||||||||||||||||||||
159 | } never executed: end of block | 0 | ||||||||||||||||||||||||
160 | - | |||||||||||||||||||||||||
161 | if (exclusive
| 0 | ||||||||||||||||||||||||
162 | - | |||||||||||||||||||||||||
163 | - | |||||||||||||||||||||||||
164 | - | |||||||||||||||||||||||||
165 | && candidate
| 0 | ||||||||||||||||||||||||
166 | && fb->d_func()->checked
| 0 | ||||||||||||||||||||||||
167 | && candidate->d_func()->checkable
| 0 | ||||||||||||||||||||||||
168 | candidate->click(); never executed: candidate->click(); | 0 | ||||||||||||||||||||||||
169 | - | |||||||||||||||||||||||||
170 | if (candidate
| 0 | ||||||||||||||||||||||||
171 | if (key == Qt::Key_Up
| 0 | ||||||||||||||||||||||||
172 | candidate->setFocus(Qt::BacktabFocusReason); never executed: candidate->setFocus(Qt::BacktabFocusReason); | 0 | ||||||||||||||||||||||||
173 | else | - | ||||||||||||||||||||||||
174 | candidate->setFocus(Qt::TabFocusReason); never executed: candidate->setFocus(Qt::TabFocusReason); | 0 | ||||||||||||||||||||||||
175 | } | - | ||||||||||||||||||||||||
176 | } never executed: end of block | 0 | ||||||||||||||||||||||||
177 | - | |||||||||||||||||||||||||
178 | void QAbstractButtonPrivate::fixFocusPolicy() | - | ||||||||||||||||||||||||
179 | { | - | ||||||||||||||||||||||||
180 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
181 | - | |||||||||||||||||||||||||
182 | if (!group
| 0 | ||||||||||||||||||||||||
183 | - | |||||||||||||||||||||||||
184 | - | |||||||||||||||||||||||||
185 | - | |||||||||||||||||||||||||
186 | return; never executed: return; | 0 | ||||||||||||||||||||||||
187 | - | |||||||||||||||||||||||||
188 | QList<QAbstractButton *> buttonList = queryButtonList(); | - | ||||||||||||||||||||||||
189 | for (int i = 0; i < buttonList.count()
| 0 | ||||||||||||||||||||||||
190 | QAbstractButton *b = buttonList.at(i); | - | ||||||||||||||||||||||||
191 | if (!b->isCheckable()
| 0 | ||||||||||||||||||||||||
192 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
193 | b->setFocusPolicy((Qt::FocusPolicy) ((b == q || !q->isCheckable()) | - | ||||||||||||||||||||||||
194 | ? (b->focusPolicy() | Qt::TabFocus) | - | ||||||||||||||||||||||||
195 | : (b->focusPolicy() & ~Qt::TabFocus))); | - | ||||||||||||||||||||||||
196 | } never executed: end of block | 0 | ||||||||||||||||||||||||
197 | } never executed: end of block | 0 | ||||||||||||||||||||||||
198 | - | |||||||||||||||||||||||||
199 | void QAbstractButtonPrivate::init() | - | ||||||||||||||||||||||||
200 | { | - | ||||||||||||||||||||||||
201 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
202 | - | |||||||||||||||||||||||||
203 | q->setFocusPolicy(Qt::FocusPolicy(q->style()->styleHint(QStyle::SH_Button_FocusPolicy))); | - | ||||||||||||||||||||||||
204 | q->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed, controlType)); | - | ||||||||||||||||||||||||
205 | q->setAttribute(Qt::WA_WState_OwnSizePolicy, false); | - | ||||||||||||||||||||||||
206 | q->setForegroundRole(QPalette::ButtonText); | - | ||||||||||||||||||||||||
207 | q->setBackgroundRole(QPalette::Button); | - | ||||||||||||||||||||||||
208 | } never executed: end of block | 0 | ||||||||||||||||||||||||
209 | - | |||||||||||||||||||||||||
210 | void QAbstractButtonPrivate::refresh() | - | ||||||||||||||||||||||||
211 | { | - | ||||||||||||||||||||||||
212 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
213 | - | |||||||||||||||||||||||||
214 | if (blockRefresh
| 0 | ||||||||||||||||||||||||
215 | return; never executed: return; | 0 | ||||||||||||||||||||||||
216 | q->update(); | - | ||||||||||||||||||||||||
217 | } never executed: end of block | 0 | ||||||||||||||||||||||||
218 | - | |||||||||||||||||||||||||
219 | void QAbstractButtonPrivate::click() | - | ||||||||||||||||||||||||
220 | { | - | ||||||||||||||||||||||||
221 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
222 | - | |||||||||||||||||||||||||
223 | down = false; | - | ||||||||||||||||||||||||
224 | blockRefresh = true; | - | ||||||||||||||||||||||||
225 | bool changeState = true; | - | ||||||||||||||||||||||||
226 | if (checked
| 0 | ||||||||||||||||||||||||
227 | - | |||||||||||||||||||||||||
228 | - | |||||||||||||||||||||||||
229 | if (group
| 0 | ||||||||||||||||||||||||
230 | - | |||||||||||||||||||||||||
231 | - | |||||||||||||||||||||||||
232 | - | |||||||||||||||||||||||||
233 | changeState = false; never executed: changeState = false; | 0 | ||||||||||||||||||||||||
234 | } never executed: end of block | 0 | ||||||||||||||||||||||||
235 | - | |||||||||||||||||||||||||
236 | QPointer<QAbstractButton> guard(q); | - | ||||||||||||||||||||||||
237 | if (changeState
| 0 | ||||||||||||||||||||||||
238 | q->nextCheckState(); | - | ||||||||||||||||||||||||
239 | if (!guard
| 0 | ||||||||||||||||||||||||
240 | return; never executed: return; | 0 | ||||||||||||||||||||||||
241 | } never executed: end of block | 0 | ||||||||||||||||||||||||
242 | blockRefresh = false; | - | ||||||||||||||||||||||||
243 | refresh(); | - | ||||||||||||||||||||||||
244 | q->repaint(); | - | ||||||||||||||||||||||||
245 | QApplication::flush(); | - | ||||||||||||||||||||||||
246 | if (guard
| 0 | ||||||||||||||||||||||||
247 | emitReleased(); never executed: emitReleased(); | 0 | ||||||||||||||||||||||||
248 | if (guard
| 0 | ||||||||||||||||||||||||
249 | emitClicked(); never executed: emitClicked(); | 0 | ||||||||||||||||||||||||
250 | } never executed: end of block | 0 | ||||||||||||||||||||||||
251 | - | |||||||||||||||||||||||||
252 | void QAbstractButtonPrivate::emitClicked() | - | ||||||||||||||||||||||||
253 | { | - | ||||||||||||||||||||||||
254 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
255 | QPointer<QAbstractButton> guard(q); | - | ||||||||||||||||||||||||
256 | q->clicked(checked); | - | ||||||||||||||||||||||||
257 | - | |||||||||||||||||||||||||
258 | if (guard
| 0 | ||||||||||||||||||||||||
259 | group->buttonClicked(group->id(q)); | - | ||||||||||||||||||||||||
260 | if (guard
| 0 | ||||||||||||||||||||||||
261 | group->buttonClicked(q); never executed: group->buttonClicked(q); | 0 | ||||||||||||||||||||||||
262 | } never executed: end of block | 0 | ||||||||||||||||||||||||
263 | - | |||||||||||||||||||||||||
264 | } never executed: end of block | 0 | ||||||||||||||||||||||||
265 | - | |||||||||||||||||||||||||
266 | void QAbstractButtonPrivate::emitPressed() | - | ||||||||||||||||||||||||
267 | { | - | ||||||||||||||||||||||||
268 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
269 | QPointer<QAbstractButton> guard(q); | - | ||||||||||||||||||||||||
270 | q->pressed(); | - | ||||||||||||||||||||||||
271 | - | |||||||||||||||||||||||||
272 | if (guard
| 0 | ||||||||||||||||||||||||
273 | group->buttonPressed(group->id(q)); | - | ||||||||||||||||||||||||
274 | if (guard
| 0 | ||||||||||||||||||||||||
275 | group->buttonPressed(q); never executed: group->buttonPressed(q); | 0 | ||||||||||||||||||||||||
276 | } never executed: end of block | 0 | ||||||||||||||||||||||||
277 | - | |||||||||||||||||||||||||
278 | } never executed: end of block | 0 | ||||||||||||||||||||||||
279 | - | |||||||||||||||||||||||||
280 | void QAbstractButtonPrivate::emitReleased() | - | ||||||||||||||||||||||||
281 | { | - | ||||||||||||||||||||||||
282 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
283 | QPointer<QAbstractButton> guard(q); | - | ||||||||||||||||||||||||
284 | q->released(); | - | ||||||||||||||||||||||||
285 | - | |||||||||||||||||||||||||
286 | if (guard
| 0 | ||||||||||||||||||||||||
287 | group->buttonReleased(group->id(q)); | - | ||||||||||||||||||||||||
288 | if (guard
| 0 | ||||||||||||||||||||||||
289 | group->buttonReleased(q); never executed: group->buttonReleased(q); | 0 | ||||||||||||||||||||||||
290 | } never executed: end of block | 0 | ||||||||||||||||||||||||
291 | - | |||||||||||||||||||||||||
292 | } never executed: end of block | 0 | ||||||||||||||||||||||||
293 | - | |||||||||||||||||||||||||
294 | void QAbstractButtonPrivate::emitToggled(bool checked) | - | ||||||||||||||||||||||||
295 | { | - | ||||||||||||||||||||||||
296 | QAbstractButton * const q = q_func(); | - | ||||||||||||||||||||||||
297 | QPointer<QAbstractButton> guard(q); | - | ||||||||||||||||||||||||
298 | q->toggled(checked); | - | ||||||||||||||||||||||||
299 | - | |||||||||||||||||||||||||
300 | if (guard
| 0 | ||||||||||||||||||||||||
301 | group->buttonToggled(group->id(q), checked); | - | ||||||||||||||||||||||||
302 | if (guard
| 0 | ||||||||||||||||||||||||
303 | group->buttonToggled(q, checked); never executed: group->buttonToggled(q, checked); | 0 | ||||||||||||||||||||||||
304 | } never executed: end of block | 0 | ||||||||||||||||||||||||
305 | - | |||||||||||||||||||||||||
306 | } never executed: end of block | 0 | ||||||||||||||||||||||||
307 | - | |||||||||||||||||||||||||
308 | - | |||||||||||||||||||||||||
309 | - | |||||||||||||||||||||||||
310 | - | |||||||||||||||||||||||||
311 | QAbstractButton::QAbstractButton(QWidget *parent) | - | ||||||||||||||||||||||||
312 | : QWidget(*new QAbstractButtonPrivate, parent, 0) | - | ||||||||||||||||||||||||
313 | { | - | ||||||||||||||||||||||||
314 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
315 | d->init(); | - | ||||||||||||||||||||||||
316 | } never executed: end of block | 0 | ||||||||||||||||||||||||
317 | - | |||||||||||||||||||||||||
318 | - | |||||||||||||||||||||||||
319 | - | |||||||||||||||||||||||||
320 | - | |||||||||||||||||||||||||
321 | QAbstractButton::~QAbstractButton() | - | ||||||||||||||||||||||||
322 | { | - | ||||||||||||||||||||||||
323 | - | |||||||||||||||||||||||||
324 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
325 | if (d->group
| 0 | ||||||||||||||||||||||||
326 | d->group->removeButton(this); never executed: d->group->removeButton(this); | 0 | ||||||||||||||||||||||||
327 | - | |||||||||||||||||||||||||
328 | } never executed: end of block | 0 | ||||||||||||||||||||||||
329 | - | |||||||||||||||||||||||||
330 | - | |||||||||||||||||||||||||
331 | - | |||||||||||||||||||||||||
332 | - | |||||||||||||||||||||||||
333 | QAbstractButton::QAbstractButton(QAbstractButtonPrivate &dd, QWidget *parent) | - | ||||||||||||||||||||||||
334 | : QWidget(dd, parent, 0) | - | ||||||||||||||||||||||||
335 | { | - | ||||||||||||||||||||||||
336 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
337 | d->init(); | - | ||||||||||||||||||||||||
338 | } never executed: end of block | 0 | ||||||||||||||||||||||||
339 | void QAbstractButton::setText(const QString &text) | - | ||||||||||||||||||||||||
340 | { | - | ||||||||||||||||||||||||
341 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
342 | if (d->text == text
| 0 | ||||||||||||||||||||||||
343 | return; never executed: return; | 0 | ||||||||||||||||||||||||
344 | d->text = text; | - | ||||||||||||||||||||||||
345 | - | |||||||||||||||||||||||||
346 | QKeySequence newMnemonic = QKeySequence::mnemonic(text); | - | ||||||||||||||||||||||||
347 | setShortcut(newMnemonic); | - | ||||||||||||||||||||||||
348 | - | |||||||||||||||||||||||||
349 | d->sizeHint = QSize(); | - | ||||||||||||||||||||||||
350 | update(); | - | ||||||||||||||||||||||||
351 | updateGeometry(); | - | ||||||||||||||||||||||||
352 | - | |||||||||||||||||||||||||
353 | QAccessibleEvent event(this, QAccessible::NameChanged); | - | ||||||||||||||||||||||||
354 | QAccessible::updateAccessibility(&event); | - | ||||||||||||||||||||||||
355 | - | |||||||||||||||||||||||||
356 | } never executed: end of block | 0 | ||||||||||||||||||||||||
357 | - | |||||||||||||||||||||||||
358 | QString QAbstractButton::text() const | - | ||||||||||||||||||||||||
359 | { | - | ||||||||||||||||||||||||
360 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
361 | return never executed: d->text;return d->text; never executed: return d->text; | 0 | ||||||||||||||||||||||||
362 | } | - | ||||||||||||||||||||||||
363 | void QAbstractButton::setIcon(const QIcon &icon) | - | ||||||||||||||||||||||||
364 | { | - | ||||||||||||||||||||||||
365 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
366 | d->icon = icon; | - | ||||||||||||||||||||||||
367 | d->sizeHint = QSize(); | - | ||||||||||||||||||||||||
368 | update(); | - | ||||||||||||||||||||||||
369 | updateGeometry(); | - | ||||||||||||||||||||||||
370 | } never executed: end of block | 0 | ||||||||||||||||||||||||
371 | - | |||||||||||||||||||||||||
372 | QIcon QAbstractButton::icon() const | - | ||||||||||||||||||||||||
373 | { | - | ||||||||||||||||||||||||
374 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
375 | return never executed: d->icon;return d->icon; never executed: return d->icon; | 0 | ||||||||||||||||||||||||
376 | } | - | ||||||||||||||||||||||||
377 | - | |||||||||||||||||||||||||
378 | - | |||||||||||||||||||||||||
379 | - | |||||||||||||||||||||||||
380 | - | |||||||||||||||||||||||||
381 | - | |||||||||||||||||||||||||
382 | - | |||||||||||||||||||||||||
383 | - | |||||||||||||||||||||||||
384 | void QAbstractButton::setShortcut(const QKeySequence &key) | - | ||||||||||||||||||||||||
385 | { | - | ||||||||||||||||||||||||
386 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
387 | if (d->shortcutId != 0
| 0 | ||||||||||||||||||||||||
388 | releaseShortcut(d->shortcutId); never executed: releaseShortcut(d->shortcutId); | 0 | ||||||||||||||||||||||||
389 | d->shortcut = key; | - | ||||||||||||||||||||||||
390 | d->shortcutId = grabShortcut(key); | - | ||||||||||||||||||||||||
391 | } never executed: end of block | 0 | ||||||||||||||||||||||||
392 | - | |||||||||||||||||||||||||
393 | QKeySequence QAbstractButton::shortcut() const | - | ||||||||||||||||||||||||
394 | { | - | ||||||||||||||||||||||||
395 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
396 | return never executed: d->shortcut;return d->shortcut; never executed: return d->shortcut; | 0 | ||||||||||||||||||||||||
397 | } | - | ||||||||||||||||||||||||
398 | void QAbstractButton::setCheckable(bool checkable) | - | ||||||||||||||||||||||||
399 | { | - | ||||||||||||||||||||||||
400 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
401 | if (d->checkable == checkable
| 0 | ||||||||||||||||||||||||
402 | return; never executed: return; | 0 | ||||||||||||||||||||||||
403 | - | |||||||||||||||||||||||||
404 | d->checkable = checkable; | - | ||||||||||||||||||||||||
405 | d->checked = false; | - | ||||||||||||||||||||||||
406 | } never executed: end of block | 0 | ||||||||||||||||||||||||
407 | - | |||||||||||||||||||||||||
408 | bool QAbstractButton::isCheckable() const | - | ||||||||||||||||||||||||
409 | { | - | ||||||||||||||||||||||||
410 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
411 | return never executed: d->checkable;return d->checkable; never executed: return d->checkable; | 0 | ||||||||||||||||||||||||
412 | } | - | ||||||||||||||||||||||||
413 | void QAbstractButton::setChecked(bool checked) | - | ||||||||||||||||||||||||
414 | { | - | ||||||||||||||||||||||||
415 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
416 | if (!d->checkable
| 0 | ||||||||||||||||||||||||
417 | if (!d->blockRefresh
| 0 | ||||||||||||||||||||||||
418 | checkStateSet(); never executed: checkStateSet(); | 0 | ||||||||||||||||||||||||
419 | return; never executed: return; | 0 | ||||||||||||||||||||||||
420 | } | - | ||||||||||||||||||||||||
421 | - | |||||||||||||||||||||||||
422 | if (!checked
| 0 | ||||||||||||||||||||||||
423 | - | |||||||||||||||||||||||||
424 | - | |||||||||||||||||||||||||
425 | if (d->group
| 0 | ||||||||||||||||||||||||
426 | return; never executed: return; | 0 | ||||||||||||||||||||||||
427 | if (d->group
| 0 | ||||||||||||||||||||||||
428 | d->group->d_func()->detectCheckedButton(); never executed: d->group->d_func()->detectCheckedButton(); | 0 | ||||||||||||||||||||||||
429 | - | |||||||||||||||||||||||||
430 | - | |||||||||||||||||||||||||
431 | - | |||||||||||||||||||||||||
432 | - | |||||||||||||||||||||||||
433 | } never executed: end of block | 0 | ||||||||||||||||||||||||
434 | - | |||||||||||||||||||||||||
435 | QPointer<QAbstractButton> guard(this); | - | ||||||||||||||||||||||||
436 | - | |||||||||||||||||||||||||
437 | d->checked = checked; | - | ||||||||||||||||||||||||
438 | if (!d->blockRefresh
| 0 | ||||||||||||||||||||||||
439 | checkStateSet(); never executed: checkStateSet(); | 0 | ||||||||||||||||||||||||
440 | d->refresh(); | - | ||||||||||||||||||||||||
441 | - | |||||||||||||||||||||||||
442 | if (guard
| 0 | ||||||||||||||||||||||||
443 | d->notifyChecked(); never executed: d->notifyChecked(); | 0 | ||||||||||||||||||||||||
444 | if (guard
| 0 | ||||||||||||||||||||||||
445 | d->emitToggled(checked); never executed: d->emitToggled(checked); | 0 | ||||||||||||||||||||||||
446 | - | |||||||||||||||||||||||||
447 | - | |||||||||||||||||||||||||
448 | - | |||||||||||||||||||||||||
449 | QAccessible::State s; | - | ||||||||||||||||||||||||
450 | s.checked = true; | - | ||||||||||||||||||||||||
451 | QAccessibleStateChangeEvent event(this, s); | - | ||||||||||||||||||||||||
452 | QAccessible::updateAccessibility(&event); | - | ||||||||||||||||||||||||
453 | - | |||||||||||||||||||||||||
454 | } never executed: end of block | 0 | ||||||||||||||||||||||||
455 | - | |||||||||||||||||||||||||
456 | bool QAbstractButton::isChecked() const | - | ||||||||||||||||||||||||
457 | { | - | ||||||||||||||||||||||||
458 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
459 | return never executed: d->checked;return d->checked; never executed: return d->checked; | 0 | ||||||||||||||||||||||||
460 | } | - | ||||||||||||||||||||||||
461 | void QAbstractButton::setDown(bool down) | - | ||||||||||||||||||||||||
462 | { | - | ||||||||||||||||||||||||
463 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
464 | if (d->down == down
| 0 | ||||||||||||||||||||||||
465 | return; never executed: return; | 0 | ||||||||||||||||||||||||
466 | d->down = down; | - | ||||||||||||||||||||||||
467 | d->refresh(); | - | ||||||||||||||||||||||||
468 | if (d->autoRepeat
| 0 | ||||||||||||||||||||||||
469 | d->repeatTimer.start(d->autoRepeatDelay, this); never executed: d->repeatTimer.start(d->autoRepeatDelay, this); | 0 | ||||||||||||||||||||||||
470 | else | - | ||||||||||||||||||||||||
471 | d->repeatTimer.stop(); never executed: d->repeatTimer.stop(); | 0 | ||||||||||||||||||||||||
472 | } | - | ||||||||||||||||||||||||
473 | - | |||||||||||||||||||||||||
474 | bool QAbstractButton::isDown() const | - | ||||||||||||||||||||||||
475 | { | - | ||||||||||||||||||||||||
476 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
477 | return never executed: d->down;return d->down; never executed: return d->down; | 0 | ||||||||||||||||||||||||
478 | } | - | ||||||||||||||||||||||||
479 | void QAbstractButton::setAutoRepeat(bool autoRepeat) | - | ||||||||||||||||||||||||
480 | { | - | ||||||||||||||||||||||||
481 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
482 | if (d->autoRepeat == autoRepeat
| 0 | ||||||||||||||||||||||||
483 | return; never executed: return; | 0 | ||||||||||||||||||||||||
484 | d->autoRepeat = autoRepeat; | - | ||||||||||||||||||||||||
485 | if (d->autoRepeat
| 0 | ||||||||||||||||||||||||
486 | d->repeatTimer.start(d->autoRepeatDelay, this); never executed: d->repeatTimer.start(d->autoRepeatDelay, this); | 0 | ||||||||||||||||||||||||
487 | else | - | ||||||||||||||||||||||||
488 | d->repeatTimer.stop(); never executed: d->repeatTimer.stop(); | 0 | ||||||||||||||||||||||||
489 | } | - | ||||||||||||||||||||||||
490 | - | |||||||||||||||||||||||||
491 | bool QAbstractButton::autoRepeat() const | - | ||||||||||||||||||||||||
492 | { | - | ||||||||||||||||||||||||
493 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
494 | return never executed: d->autoRepeat;return d->autoRepeat; never executed: return d->autoRepeat; | 0 | ||||||||||||||||||||||||
495 | } | - | ||||||||||||||||||||||||
496 | void QAbstractButton::setAutoRepeatDelay(int autoRepeatDelay) | - | ||||||||||||||||||||||||
497 | { | - | ||||||||||||||||||||||||
498 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
499 | d->autoRepeatDelay = autoRepeatDelay; | - | ||||||||||||||||||||||||
500 | } never executed: end of block | 0 | ||||||||||||||||||||||||
501 | - | |||||||||||||||||||||||||
502 | int QAbstractButton::autoRepeatDelay() const | - | ||||||||||||||||||||||||
503 | { | - | ||||||||||||||||||||||||
504 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
505 | return never executed: d->autoRepeatDelay;return d->autoRepeatDelay; never executed: return d->autoRepeatDelay; | 0 | ||||||||||||||||||||||||
506 | } | - | ||||||||||||||||||||||||
507 | void QAbstractButton::setAutoRepeatInterval(int autoRepeatInterval) | - | ||||||||||||||||||||||||
508 | { | - | ||||||||||||||||||||||||
509 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
510 | d->autoRepeatInterval = autoRepeatInterval; | - | ||||||||||||||||||||||||
511 | } never executed: end of block | 0 | ||||||||||||||||||||||||
512 | - | |||||||||||||||||||||||||
513 | int QAbstractButton::autoRepeatInterval() const | - | ||||||||||||||||||||||||
514 | { | - | ||||||||||||||||||||||||
515 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
516 | return never executed: d->autoRepeatInterval;return d->autoRepeatInterval; never executed: return d->autoRepeatInterval; | 0 | ||||||||||||||||||||||||
517 | } | - | ||||||||||||||||||||||||
518 | void QAbstractButton::setAutoExclusive(bool autoExclusive) | - | ||||||||||||||||||||||||
519 | { | - | ||||||||||||||||||||||||
520 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
521 | d->autoExclusive = autoExclusive; | - | ||||||||||||||||||||||||
522 | } never executed: end of block | 0 | ||||||||||||||||||||||||
523 | - | |||||||||||||||||||||||||
524 | bool QAbstractButton::autoExclusive() const | - | ||||||||||||||||||||||||
525 | { | - | ||||||||||||||||||||||||
526 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
527 | return never executed: d->autoExclusive;return d->autoExclusive; never executed: return d->autoExclusive; | 0 | ||||||||||||||||||||||||
528 | } | - | ||||||||||||||||||||||||
529 | QButtonGroup *QAbstractButton::group() const | - | ||||||||||||||||||||||||
530 | { | - | ||||||||||||||||||||||||
531 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
532 | return never executed: d->group;return d->group; never executed: return d->group; | 0 | ||||||||||||||||||||||||
533 | } | - | ||||||||||||||||||||||||
534 | void QAbstractButton::animateClick(int msec) | - | ||||||||||||||||||||||||
535 | { | - | ||||||||||||||||||||||||
536 | if (!isEnabled()
| 0 | ||||||||||||||||||||||||
537 | return; never executed: return; | 0 | ||||||||||||||||||||||||
538 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
539 | if (d->checkable
| 0 | ||||||||||||||||||||||||
540 | setFocus(); never executed: setFocus(); | 0 | ||||||||||||||||||||||||
541 | setDown(true); | - | ||||||||||||||||||||||||
542 | repaint(); | - | ||||||||||||||||||||||||
543 | QApplication::flush(); | - | ||||||||||||||||||||||||
544 | if (!d->animateTimer.isActive()
| 0 | ||||||||||||||||||||||||
545 | d->emitPressed(); never executed: d->emitPressed(); | 0 | ||||||||||||||||||||||||
546 | d->animateTimer.start(msec, this); | - | ||||||||||||||||||||||||
547 | } never executed: end of block | 0 | ||||||||||||||||||||||||
548 | void QAbstractButton::click() | - | ||||||||||||||||||||||||
549 | { | - | ||||||||||||||||||||||||
550 | if (!isEnabled()
| 0 | ||||||||||||||||||||||||
551 | return; never executed: return; | 0 | ||||||||||||||||||||||||
552 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
553 | QPointer<QAbstractButton> guard(this); | - | ||||||||||||||||||||||||
554 | d->down = true; | - | ||||||||||||||||||||||||
555 | d->emitPressed(); | - | ||||||||||||||||||||||||
556 | if (guard
| 0 | ||||||||||||||||||||||||
557 | d->down = false; | - | ||||||||||||||||||||||||
558 | nextCheckState(); | - | ||||||||||||||||||||||||
559 | if (guard
| 0 | ||||||||||||||||||||||||
560 | d->emitReleased(); never executed: d->emitReleased(); | 0 | ||||||||||||||||||||||||
561 | if (guard
| 0 | ||||||||||||||||||||||||
562 | d->emitClicked(); never executed: d->emitClicked(); | 0 | ||||||||||||||||||||||||
563 | } never executed: end of block | 0 | ||||||||||||||||||||||||
564 | } never executed: end of block | 0 | ||||||||||||||||||||||||
565 | - | |||||||||||||||||||||||||
566 | - | |||||||||||||||||||||||||
567 | - | |||||||||||||||||||||||||
568 | - | |||||||||||||||||||||||||
569 | - | |||||||||||||||||||||||||
570 | - | |||||||||||||||||||||||||
571 | - | |||||||||||||||||||||||||
572 | void QAbstractButton::toggle() | - | ||||||||||||||||||||||||
573 | { | - | ||||||||||||||||||||||||
574 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
575 | setChecked(!d->checked); | - | ||||||||||||||||||||||||
576 | } never executed: end of block | 0 | ||||||||||||||||||||||||
577 | void QAbstractButton::checkStateSet() | - | ||||||||||||||||||||||||
578 | { | - | ||||||||||||||||||||||||
579 | } | - | ||||||||||||||||||||||||
580 | void QAbstractButton::nextCheckState() | - | ||||||||||||||||||||||||
581 | { | - | ||||||||||||||||||||||||
582 | if (isCheckable()
| 0 | ||||||||||||||||||||||||
583 | setChecked(!isChecked()); never executed: setChecked(!isChecked()); | 0 | ||||||||||||||||||||||||
584 | } never executed: end of block | 0 | ||||||||||||||||||||||||
585 | bool QAbstractButton::hitButton(const QPoint &pos) const | - | ||||||||||||||||||||||||
586 | { | - | ||||||||||||||||||||||||
587 | return never executed: rect().contains(pos);return rect().contains(pos); never executed: return rect().contains(pos); | 0 | ||||||||||||||||||||||||
588 | } | - | ||||||||||||||||||||||||
589 | - | |||||||||||||||||||||||||
590 | - | |||||||||||||||||||||||||
591 | bool QAbstractButton::event(QEvent *e) | - | ||||||||||||||||||||||||
592 | { | - | ||||||||||||||||||||||||
593 | - | |||||||||||||||||||||||||
594 | - | |||||||||||||||||||||||||
595 | if (!isEnabled()
| 0 | ||||||||||||||||||||||||
596 | switch(e->type()) { | - | ||||||||||||||||||||||||
597 | case never executed: QEvent::TabletPress:case QEvent::TabletPress: never executed: case QEvent::TabletPress: | 0 | ||||||||||||||||||||||||
598 | case never executed: QEvent::TabletRelease:case QEvent::TabletRelease: never executed: case QEvent::TabletRelease: | 0 | ||||||||||||||||||||||||
599 | case never executed: QEvent::TabletMove:case QEvent::TabletMove: never executed: case QEvent::TabletMove: | 0 | ||||||||||||||||||||||||
600 | case never executed: QEvent::MouseButtonPress:case QEvent::MouseButtonPress: never executed: case QEvent::MouseButtonPress: | 0 | ||||||||||||||||||||||||
601 | case never executed: QEvent::MouseButtonRelease:case QEvent::MouseButtonRelease: never executed: case QEvent::MouseButtonRelease: | 0 | ||||||||||||||||||||||||
602 | case never executed: QEvent::MouseButtonDblClick:case QEvent::MouseButtonDblClick: never executed: case QEvent::MouseButtonDblClick: | 0 | ||||||||||||||||||||||||
603 | case never executed: QEvent::MouseMove:case QEvent::MouseMove: never executed: case QEvent::MouseMove: | 0 | ||||||||||||||||||||||||
604 | case never executed: QEvent::HoverMove:case QEvent::HoverMove: never executed: case QEvent::HoverMove: | 0 | ||||||||||||||||||||||||
605 | case never executed: QEvent::HoverEnter:case QEvent::HoverEnter: never executed: case QEvent::HoverEnter: | 0 | ||||||||||||||||||||||||
606 | case never executed: QEvent::HoverLeave:case QEvent::HoverLeave: never executed: case QEvent::HoverLeave: | 0 | ||||||||||||||||||||||||
607 | case never executed: QEvent::ContextMenu:case QEvent::ContextMenu: never executed: case QEvent::ContextMenu: | 0 | ||||||||||||||||||||||||
608 | - | |||||||||||||||||||||||||
609 | case never executed: QEvent::Wheel:case QEvent::Wheel: never executed: case QEvent::Wheel: | 0 | ||||||||||||||||||||||||
610 | - | |||||||||||||||||||||||||
611 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||
612 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
613 | break; never executed: break; | 0 | ||||||||||||||||||||||||
614 | } | - | ||||||||||||||||||||||||
615 | } | - | ||||||||||||||||||||||||
616 | - | |||||||||||||||||||||||||
617 | - | |||||||||||||||||||||||||
618 | if (e->type() == QEvent::Shortcut
| 0 | ||||||||||||||||||||||||
619 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
620 | QShortcutEvent *se = static_cast<QShortcutEvent *>(e); | - | ||||||||||||||||||||||||
621 | if (d->shortcutId != se->shortcutId()
| 0 | ||||||||||||||||||||||||
622 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||||||||||||||
623 | if (!se->isAmbiguous()
| 0 | ||||||||||||||||||||||||
624 | if (!d->animateTimer.isActive()
| 0 | ||||||||||||||||||||||||
625 | animateClick(); never executed: animateClick(); | 0 | ||||||||||||||||||||||||
626 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
627 | if (focusPolicy() != Qt::NoFocus
| 0 | ||||||||||||||||||||||||
628 | setFocus(Qt::ShortcutFocusReason); never executed: setFocus(Qt::ShortcutFocusReason); | 0 | ||||||||||||||||||||||||
629 | window()->setAttribute(Qt::WA_KeyboardFocusChange); | - | ||||||||||||||||||||||||
630 | } never executed: end of block | 0 | ||||||||||||||||||||||||
631 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||
632 | } | - | ||||||||||||||||||||||||
633 | - | |||||||||||||||||||||||||
634 | return never executed: QWidget::event(e);return QWidget::event(e); never executed: return QWidget::event(e); | 0 | ||||||||||||||||||||||||
635 | } | - | ||||||||||||||||||||||||
636 | - | |||||||||||||||||||||||||
637 | - | |||||||||||||||||||||||||
638 | void QAbstractButton::mousePressEvent(QMouseEvent *e) | - | ||||||||||||||||||||||||
639 | { | - | ||||||||||||||||||||||||
640 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
641 | if (e->button() != Qt::LeftButton
| 0 | ||||||||||||||||||||||||
642 | e->ignore(); | - | ||||||||||||||||||||||||
643 | return; never executed: return; | 0 | ||||||||||||||||||||||||
644 | } | - | ||||||||||||||||||||||||
645 | if (hitButton(e->pos())
| 0 | ||||||||||||||||||||||||
646 | setDown(true); | - | ||||||||||||||||||||||||
647 | d->pressed = true; | - | ||||||||||||||||||||||||
648 | repaint(); | - | ||||||||||||||||||||||||
649 | QApplication::flush(); | - | ||||||||||||||||||||||||
650 | d->emitPressed(); | - | ||||||||||||||||||||||||
651 | e->accept(); | - | ||||||||||||||||||||||||
652 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
653 | e->ignore(); | - | ||||||||||||||||||||||||
654 | } never executed: end of block | 0 | ||||||||||||||||||||||||
655 | } | - | ||||||||||||||||||||||||
656 | - | |||||||||||||||||||||||||
657 | - | |||||||||||||||||||||||||
658 | void QAbstractButton::mouseReleaseEvent(QMouseEvent *e) | - | ||||||||||||||||||||||||
659 | { | - | ||||||||||||||||||||||||
660 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
661 | d->pressed = false; | - | ||||||||||||||||||||||||
662 | - | |||||||||||||||||||||||||
663 | if (e->button() != Qt::LeftButton
| 0 | ||||||||||||||||||||||||
664 | e->ignore(); | - | ||||||||||||||||||||||||
665 | return; never executed: return; | 0 | ||||||||||||||||||||||||
666 | } | - | ||||||||||||||||||||||||
667 | - | |||||||||||||||||||||||||
668 | if (!d->down
| 0 | ||||||||||||||||||||||||
669 | - | |||||||||||||||||||||||||
670 | d->refresh(); | - | ||||||||||||||||||||||||
671 | e->ignore(); | - | ||||||||||||||||||||||||
672 | return; never executed: return; | 0 | ||||||||||||||||||||||||
673 | } | - | ||||||||||||||||||||||||
674 | - | |||||||||||||||||||||||||
675 | if (hitButton(e->pos())
| 0 | ||||||||||||||||||||||||
676 | d->repeatTimer.stop(); | - | ||||||||||||||||||||||||
677 | d->click(); | - | ||||||||||||||||||||||||
678 | e->accept(); | - | ||||||||||||||||||||||||
679 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
680 | setDown(false); | - | ||||||||||||||||||||||||
681 | e->ignore(); | - | ||||||||||||||||||||||||
682 | } never executed: end of block | 0 | ||||||||||||||||||||||||
683 | } | - | ||||||||||||||||||||||||
684 | - | |||||||||||||||||||||||||
685 | - | |||||||||||||||||||||||||
686 | void QAbstractButton::mouseMoveEvent(QMouseEvent *e) | - | ||||||||||||||||||||||||
687 | { | - | ||||||||||||||||||||||||
688 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
689 | if (!(e->buttons() & Qt::LeftButton)
| 0 | ||||||||||||||||||||||||
690 | e->ignore(); | - | ||||||||||||||||||||||||
691 | return; never executed: return; | 0 | ||||||||||||||||||||||||
692 | } | - | ||||||||||||||||||||||||
693 | - | |||||||||||||||||||||||||
694 | if (hitButton(e->pos()) != d->down
| 0 | ||||||||||||||||||||||||
695 | setDown(!d->down); | - | ||||||||||||||||||||||||
696 | repaint(); | - | ||||||||||||||||||||||||
697 | QApplication::flush(); | - | ||||||||||||||||||||||||
698 | if (d->down
| 0 | ||||||||||||||||||||||||
699 | d->emitPressed(); never executed: d->emitPressed(); | 0 | ||||||||||||||||||||||||
700 | else | - | ||||||||||||||||||||||||
701 | d->emitReleased(); never executed: d->emitReleased(); | 0 | ||||||||||||||||||||||||
702 | e->accept(); | - | ||||||||||||||||||||||||
703 | } never executed: else if (!hitButton(e->pos())end of block
| 0 | ||||||||||||||||||||||||
704 | e->ignore(); | - | ||||||||||||||||||||||||
705 | } never executed: end of block | 0 | ||||||||||||||||||||||||
706 | } never executed: end of block | 0 | ||||||||||||||||||||||||
707 | - | |||||||||||||||||||||||||
708 | - | |||||||||||||||||||||||||
709 | void QAbstractButton::keyPressEvent(QKeyEvent *e) | - | ||||||||||||||||||||||||
710 | { | - | ||||||||||||||||||||||||
711 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
712 | bool next = true; | - | ||||||||||||||||||||||||
713 | switch (e->key()) { | - | ||||||||||||||||||||||||
714 | case never executed: Qt::Key_Enter:case Qt::Key_Enter: never executed: case Qt::Key_Enter: | 0 | ||||||||||||||||||||||||
715 | case never executed: Qt::Key_Return:case Qt::Key_Return: never executed: case Qt::Key_Return: | 0 | ||||||||||||||||||||||||
716 | e->ignore(); | - | ||||||||||||||||||||||||
717 | break; never executed: break; | 0 | ||||||||||||||||||||||||
718 | case never executed: Qt::Key_Select:case Qt::Key_Select: never executed: case Qt::Key_Select: | 0 | ||||||||||||||||||||||||
719 | case never executed: Qt::Key_Space:case Qt::Key_Space: never executed: case Qt::Key_Space: | 0 | ||||||||||||||||||||||||
720 | if (!e->isAutoRepeat()
| 0 | ||||||||||||||||||||||||
721 | setDown(true); | - | ||||||||||||||||||||||||
722 | repaint(); | - | ||||||||||||||||||||||||
723 | QApplication::flush(); | - | ||||||||||||||||||||||||
724 | d->emitPressed(); | - | ||||||||||||||||||||||||
725 | } never executed: end of block | 0 | ||||||||||||||||||||||||
726 | break; never executed: break; | 0 | ||||||||||||||||||||||||
727 | case never executed: Qt::Key_Up:case Qt::Key_Up: never executed: case Qt::Key_Up: | 0 | ||||||||||||||||||||||||
728 | next = false; | - | ||||||||||||||||||||||||
729 | - | |||||||||||||||||||||||||
730 | case never executed: Qt::Key_Left:case Qt::Key_Left: never executed: case Qt::Key_Left: code before this statement never executed: case Qt::Key_Left: | 0 | ||||||||||||||||||||||||
731 | case never executed: Qt::Key_Right:case Qt::Key_Right: never executed: case Qt::Key_Right: | 0 | ||||||||||||||||||||||||
732 | case never executed: Qt::Key_Down:case Qt::Key_Down: never executed: {case Qt::Key_Down: | 0 | ||||||||||||||||||||||||
733 | QWidget *pw = parentWidget(); | - | ||||||||||||||||||||||||
734 | if (d->autoExclusive
| 0 | ||||||||||||||||||||||||
735 | - | |||||||||||||||||||||||||
736 | || d->group
| 0 | ||||||||||||||||||||||||
737 | - | |||||||||||||||||||||||||
738 | - | |||||||||||||||||||||||||
739 | || (pw
| 0 | ||||||||||||||||||||||||
740 | - | |||||||||||||||||||||||||
741 | ) { | - | ||||||||||||||||||||||||
742 | - | |||||||||||||||||||||||||
743 | - | |||||||||||||||||||||||||
744 | - | |||||||||||||||||||||||||
745 | - | |||||||||||||||||||||||||
746 | d->moveFocus(e->key()); | - | ||||||||||||||||||||||||
747 | if (hasFocus()
| 0 | ||||||||||||||||||||||||
748 | e->ignore(); never executed: e->ignore(); | 0 | ||||||||||||||||||||||||
749 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
750 | - | |||||||||||||||||||||||||
751 | QWidget *w = pw
| 0 | ||||||||||||||||||||||||
752 | bool reverse = (w->layoutDirection() == Qt::RightToLeft); | - | ||||||||||||||||||||||||
753 | if ((e->key() == Qt::Key_Left
| 0 | ||||||||||||||||||||||||
754 | || (e->key() == Qt::Key_Right
| 0 | ||||||||||||||||||||||||
755 | next = false; | - | ||||||||||||||||||||||||
756 | } never executed: end of block | 0 | ||||||||||||||||||||||||
757 | focusNextPrevChild(next); | - | ||||||||||||||||||||||||
758 | } never executed: end of block | 0 | ||||||||||||||||||||||||
759 | break; never executed: break; | 0 | ||||||||||||||||||||||||
760 | } | - | ||||||||||||||||||||||||
761 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
762 | if (e->matches(QKeySequence::Cancel)
| 0 | ||||||||||||||||||||||||
763 | setDown(false); | - | ||||||||||||||||||||||||
764 | repaint(); | - | ||||||||||||||||||||||||
765 | QApplication::flush(); | - | ||||||||||||||||||||||||
766 | d->emitReleased(); | - | ||||||||||||||||||||||||
767 | return; never executed: return; | 0 | ||||||||||||||||||||||||
768 | } | - | ||||||||||||||||||||||||
769 | e->ignore(); | - | ||||||||||||||||||||||||
770 | } never executed: end of block | 0 | ||||||||||||||||||||||||
771 | } | - | ||||||||||||||||||||||||
772 | - | |||||||||||||||||||||||||
773 | - | |||||||||||||||||||||||||
774 | void QAbstractButton::keyReleaseEvent(QKeyEvent *e) | - | ||||||||||||||||||||||||
775 | { | - | ||||||||||||||||||||||||
776 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
777 | - | |||||||||||||||||||||||||
778 | if (!e->isAutoRepeat()
| 0 | ||||||||||||||||||||||||
779 | d->repeatTimer.stop(); never executed: d->repeatTimer.stop(); | 0 | ||||||||||||||||||||||||
780 | - | |||||||||||||||||||||||||
781 | switch (e->key()) { | - | ||||||||||||||||||||||||
782 | case never executed: Qt::Key_Select:case Qt::Key_Select: never executed: case Qt::Key_Select: | 0 | ||||||||||||||||||||||||
783 | case never executed: Qt::Key_Space:case Qt::Key_Space: never executed: case Qt::Key_Space: | 0 | ||||||||||||||||||||||||
784 | if (!e->isAutoRepeat()
| 0 | ||||||||||||||||||||||||
785 | d->click(); never executed: d->click(); | 0 | ||||||||||||||||||||||||
786 | break; never executed: break; | 0 | ||||||||||||||||||||||||
787 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
788 | e->ignore(); | - | ||||||||||||||||||||||||
789 | } never executed: end of block | 0 | ||||||||||||||||||||||||
790 | } | - | ||||||||||||||||||||||||
791 | - | |||||||||||||||||||||||||
792 | - | |||||||||||||||||||||||||
793 | - | |||||||||||||||||||||||||
794 | void QAbstractButton::timerEvent(QTimerEvent *e) | - | ||||||||||||||||||||||||
795 | { | - | ||||||||||||||||||||||||
796 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
797 | if (e->timerId() == d->repeatTimer.timerId()
| 0 | ||||||||||||||||||||||||
798 | d->repeatTimer.start(d->autoRepeatInterval, this); | - | ||||||||||||||||||||||||
799 | if (d->down
| 0 | ||||||||||||||||||||||||
800 | QPointer<QAbstractButton> guard(this); | - | ||||||||||||||||||||||||
801 | nextCheckState(); | - | ||||||||||||||||||||||||
802 | if (guard
| 0 | ||||||||||||||||||||||||
803 | d->emitReleased(); never executed: d->emitReleased(); | 0 | ||||||||||||||||||||||||
804 | if (guard
| 0 | ||||||||||||||||||||||||
805 | d->emitClicked(); never executed: d->emitClicked(); | 0 | ||||||||||||||||||||||||
806 | if (guard
| 0 | ||||||||||||||||||||||||
807 | d->emitPressed(); never executed: d->emitPressed(); | 0 | ||||||||||||||||||||||||
808 | } never executed: end of block | 0 | ||||||||||||||||||||||||
809 | } never executed: else if (e->timerId() == d->animateTimer.timerId()end of block
| 0 | ||||||||||||||||||||||||
810 | d->animateTimer.stop(); | - | ||||||||||||||||||||||||
811 | d->click(); | - | ||||||||||||||||||||||||
812 | } never executed: end of block | 0 | ||||||||||||||||||||||||
813 | } never executed: end of block | 0 | ||||||||||||||||||||||||
814 | - | |||||||||||||||||||||||||
815 | - | |||||||||||||||||||||||||
816 | void QAbstractButton::focusInEvent(QFocusEvent *e) | - | ||||||||||||||||||||||||
817 | { | - | ||||||||||||||||||||||||
818 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
819 | - | |||||||||||||||||||||||||
820 | - | |||||||||||||||||||||||||
821 | - | |||||||||||||||||||||||||
822 | d->fixFocusPolicy(); | - | ||||||||||||||||||||||||
823 | QWidget::focusInEvent(e); | - | ||||||||||||||||||||||||
824 | } never executed: end of block | 0 | ||||||||||||||||||||||||
825 | - | |||||||||||||||||||||||||
826 | - | |||||||||||||||||||||||||
827 | void QAbstractButton::focusOutEvent(QFocusEvent *e) | - | ||||||||||||||||||||||||
828 | { | - | ||||||||||||||||||||||||
829 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
830 | if (e->reason() != Qt::PopupFocusReason
| 0 | ||||||||||||||||||||||||
831 | d->down = false; | - | ||||||||||||||||||||||||
832 | d->emitReleased(); | - | ||||||||||||||||||||||||
833 | } never executed: end of block | 0 | ||||||||||||||||||||||||
834 | QWidget::focusOutEvent(e); | - | ||||||||||||||||||||||||
835 | } never executed: end of block | 0 | ||||||||||||||||||||||||
836 | - | |||||||||||||||||||||||||
837 | - | |||||||||||||||||||||||||
838 | void QAbstractButton::changeEvent(QEvent *e) | - | ||||||||||||||||||||||||
839 | { | - | ||||||||||||||||||||||||
840 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
841 | switch (e->type()) { | - | ||||||||||||||||||||||||
842 | case never executed: QEvent::EnabledChange:case QEvent::EnabledChange: never executed: case QEvent::EnabledChange: | 0 | ||||||||||||||||||||||||
843 | if (!isEnabled()
| 0 | ||||||||||||||||||||||||
844 | d->down = false; | - | ||||||||||||||||||||||||
845 | d->emitReleased(); | - | ||||||||||||||||||||||||
846 | } never executed: end of block | 0 | ||||||||||||||||||||||||
847 | break; never executed: break; | 0 | ||||||||||||||||||||||||
848 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
849 | d->sizeHint = QSize(); | - | ||||||||||||||||||||||||
850 | break; never executed: break; | 0 | ||||||||||||||||||||||||
851 | } | - | ||||||||||||||||||||||||
852 | QWidget::changeEvent(e); | - | ||||||||||||||||||||||||
853 | } never executed: end of block | 0 | ||||||||||||||||||||||||
854 | QSize QAbstractButton::iconSize() const | - | ||||||||||||||||||||||||
855 | { | - | ||||||||||||||||||||||||
856 | const QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
857 | if (d->iconSize.isValid()
| 0 | ||||||||||||||||||||||||
858 | return never executed: d->iconSize;return d->iconSize; never executed: return d->iconSize; | 0 | ||||||||||||||||||||||||
859 | int e = style()->pixelMetric(QStyle::PM_ButtonIconSize, 0, this); | - | ||||||||||||||||||||||||
860 | return never executed: QSize(e, e);return QSize(e, e); never executed: return QSize(e, e); | 0 | ||||||||||||||||||||||||
861 | } | - | ||||||||||||||||||||||||
862 | - | |||||||||||||||||||||||||
863 | void QAbstractButton::setIconSize(const QSize &size) | - | ||||||||||||||||||||||||
864 | { | - | ||||||||||||||||||||||||
865 | QAbstractButtonPrivate * const d = d_func(); | - | ||||||||||||||||||||||||
866 | if (d->iconSize == size
| 0 | ||||||||||||||||||||||||
867 | return; never executed: return; | 0 | ||||||||||||||||||||||||
868 | - | |||||||||||||||||||||||||
869 | d->iconSize = size; | - | ||||||||||||||||||||||||
870 | d->sizeHint = QSize(); | - | ||||||||||||||||||||||||
871 | updateGeometry(); | - | ||||||||||||||||||||||||
872 | if (isVisible()
| 0 | ||||||||||||||||||||||||
873 | update(); | - | ||||||||||||||||||||||||
874 | } never executed: end of block | 0 | ||||||||||||||||||||||||
875 | } never executed: end of block | 0 | ||||||||||||||||||||||||
876 | - | |||||||||||||||||||||||||
877 | - | |||||||||||||||||||||||||
878 | - | |||||||||||||||||||||||||
879 | - | |||||||||||||||||||||||||
880 | - | |||||||||||||||||||||||||
Switch to Source code | Preprocessed file |