qabstractbutton.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12__attribute__((visibility("default"))) extern bool qt_tab_all_widgets();-
13QAbstractButtonPrivate::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-
28QList<QAbstractButton *>QAbstractButtonPrivate::queryButtonList() const-
29{-
30-
31 if (group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
32 return
never executed: return group->d_func()->buttonList;
group->d_func()->buttonList;
never executed: return group->d_func()->buttonList;
0
33-
34-
35 QList<QAbstractButton*>candidates = parent->findChildren<QAbstractButton *>();-
36 if (autoExclusive
autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
37 for (int i = candidates.count() - 1; i >= 0
i >= 0Description
TRUEnever evaluated
FALSEnever evaluated
; --i) {
0
38 QAbstractButton *candidate = candidates.at(i);-
39 if (!candidate->autoExclusive()
!candidate->autoExclusive()Description
TRUEnever evaluated
FALSEnever evaluated
0
40-
41 || candidate->group()
candidate->group()Description
TRUEnever evaluated
FALSEnever evaluated
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: return candidates;
candidates;
never executed: return candidates;
0
48}-
49-
50QAbstractButton *QAbstractButtonPrivate::queryCheckedButton() const-
51{-
52-
53 if (group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
54 return
never executed: return group->d_func()->checkedButton;
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
!autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
|| buttonList.count() == 1
buttonList.count() == 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
60 return
never executed: return 0;
0;
never executed: return 0;
0
61-
62 for (int i = 0; i < buttonList.count()
i < buttonList.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
63 QAbstractButton *b = buttonList.at(i);-
64 if (b->d_func()->checked
b->d_func()->checkedDescription
TRUEnever evaluated
FALSEnever evaluated
&& b != q
b != qDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
65 return
never executed: return b;
b;
never executed: return b;
0
66 }
never executed: end of block
0
67 return
never executed: return checked ? const_cast<QAbstractButton *>(q) : 0;
checked
checkedDescription
TRUEnever evaluated
FALSEnever evaluated
? const_cast<QAbstractButton *>(q) : 0;
never executed: return checked ? const_cast<QAbstractButton *>(q) : 0;
0
68}-
69-
70void QAbstractButtonPrivate::notifyChecked()-
71{-
72-
73 QAbstractButton * const q = q_func();-
74 if (group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
75 QAbstractButton *previous = group->d_func()->checkedButton;-
76 group->d_func()->checkedButton = q;-
77 if (group->d_func()->exclusive
group->d_func()->exclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
&& previous
previousDescription
TRUEnever evaluated
FALSEnever evaluated
&& previous != q
previous != qDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
78 previous->nextCheckState();
never executed: previous->nextCheckState();
0
79 }
never executed: end of block
else
0
80-
81 if (autoExclusive
autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
82 if (QAbstractButton *b = queryCheckedButton()
QAbstractButto...heckedButton()Description
TRUEnever evaluated
FALSEnever evaluated
)
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-
87void QAbstractButtonPrivate::moveFocus(int key)-
88{-
89 QList<QAbstractButton *> buttonList = queryButtonList();;-
90-
91 bool exclusive = group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
? group->d_func()->exclusive : autoExclusive;
0
92-
93-
94-
95 QWidget *f = QApplication::focusWidget();-
96 QAbstractButton *fb = qobject_cast<QAbstractButton *>(f);-
97 if (!fb
!fbDescription
TRUEnever evaluated
FALSEnever evaluated
|| !buttonList.contains(fb)
!buttonList.contains(fb)Description
TRUEnever evaluated
FALSEnever evaluated
)
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()
qt_tab_all_widgets()Description
TRUEnever evaluated
FALSEnever evaluated
? Qt::TabFocus : Qt::StrongFocus;
0
105-
106 for (int i = 0; i < buttonList.count()
i < buttonList.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
107 QAbstractButton *button = buttonList.at(i);-
108 if (button != f
button != fDescription
TRUEnever evaluated
FALSEnever evaluated
&& button->window() == f->window()
button->window...== f->window()Description
TRUEnever evaluated
FALSEnever evaluated
&& button->isEnabled()
button->isEnabled()Description
TRUEnever evaluated
FALSEnever evaluated
&& !button->isHidden()
!button->isHidden()Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
109 (autoExclusive
autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(button->focus... == focus_flagDescription
TRUEnever evaluated
FALSEnever evaluated
button->focusPolicy() & focus_flag) == focus_flag
(button->focus... == focus_flagDescription
TRUEnever evaluated
FALSEnever evaluated
)) {
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()
buttonRect.x()...target.right()Description
TRUEnever evaluated
FALSEnever evaluated
&& target.x() < buttonRect.right()
target.x() < b...onRect.right()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
118 && (key == Qt::Key_Up
key == Qt::Key_UpDescription
TRUEnever evaluated
FALSEnever evaluated
|| key == Qt::Key_Down
key == Qt::Key_DownDescription
TRUEnever evaluated
FALSEnever evaluated
)) {
0
119-
120 score = (qAbs(p.y() - goal.y()) << 16) + qAbs(p.x() - goal.x());-
121 }
never executed: end of block
else if ((buttonRect.y() < target.bottom()
buttonRect.y()...arget.bottom()Description
TRUEnever evaluated
FALSEnever evaluated
&& target.y() < buttonRect.bottom()
target.y() < b...nRect.bottom()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
122 && (key == Qt::Key_Left
key == Qt::Key_LeftDescription
TRUEnever evaluated
FALSEnever evaluated
|| key == Qt::Key_Right
key == Qt::Key_RightDescription
TRUEnever evaluated
FALSEnever evaluated
) ) {
0
123-
124 score = (qAbs(p.x() - goal.x()) << 16) + qAbs(p.y() - goal.y());-
125 }
never executed: end of block
else {
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
score > bestScoreDescription
TRUEnever evaluated
FALSEnever evaluated
&& candidate
candidateDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
130 continue;
never executed: continue;
0
131-
132 switch(key) {-
133 case
never executed: case Qt::Key_Up:
Qt::Key_Up:
never executed: case Qt::Key_Up:
0
134 if (p.y() < goal.y()
p.y() < goal.y()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
135 candidate = button;-
136 bestScore = score;-
137 }
never executed: end of block
0
138 break;
never executed: break;
0
139 case
never executed: case Qt::Key_Down:
Qt::Key_Down:
never executed: case Qt::Key_Down:
0
140 if (p.y() > goal.y()
p.y() > goal.y()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
141 candidate = button;-
142 bestScore = score;-
143 }
never executed: end of block
0
144 break;
never executed: break;
0
145 case
never executed: case Qt::Key_Left:
Qt::Key_Left:
never executed: case Qt::Key_Left:
0
146 if (p.x() < goal.x()
p.x() < goal.x()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
147 candidate = button;-
148 bestScore = score;-
149 }
never executed: end of block
0
150 break;
never executed: break;
0
151 case
never executed: case Qt::Key_Right:
Qt::Key_Right:
never executed: case Qt::Key_Right:
0
152 if (p.x() > goal.x()
p.x() > goal.x()Description
TRUEnever evaluated
FALSEnever evaluated
) {
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
exclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
0
162-
163-
164-
165 && candidate
candidateDescription
TRUEnever evaluated
FALSEnever evaluated
0
166 && fb->d_func()->checked
fb->d_func()->checkedDescription
TRUEnever evaluated
FALSEnever evaluated
0
167 && candidate->d_func()->checkable
candidate->d_func()->checkableDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
168 candidate->click();
never executed: candidate->click();
0
169-
170 if (candidate
candidateDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
171 if (key == Qt::Key_Up
key == Qt::Key_UpDescription
TRUEnever evaluated
FALSEnever evaluated
|| key == Qt::Key_Left
key == Qt::Key_LeftDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
178void QAbstractButtonPrivate::fixFocusPolicy()-
179{-
180 QAbstractButton * const q = q_func();-
181-
182 if (!group
!groupDescription
TRUEnever evaluated
FALSEnever evaluated
&& !autoExclusive
!autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
183-
184-
185-
186 return;
never executed: return;
0
187-
188 QList<QAbstractButton *> buttonList = queryButtonList();-
189 for (int i = 0; i < buttonList.count()
i < buttonList.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
190 QAbstractButton *b = buttonList.at(i);-
191 if (!b->isCheckable()
!b->isCheckable()Description
TRUEnever evaluated
FALSEnever evaluated
)
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-
199void 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-
210void QAbstractButtonPrivate::refresh()-
211{-
212 QAbstractButton * const q = q_func();-
213-
214 if (blockRefresh
blockRefreshDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
215 return;
never executed: return;
0
216 q->update();-
217}
never executed: end of block
0
218-
219void QAbstractButtonPrivate::click()-
220{-
221 QAbstractButton * const q = q_func();-
222-
223 down = false;-
224 blockRefresh = true;-
225 bool changeState = true;-
226 if (checked
checkedDescription
TRUEnever evaluated
FALSEnever evaluated
&& queryCheckedButton() == q
queryCheckedButton() == qDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
227-
228-
229 if (group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
? group->d_func()->exclusive : autoExclusive
group ? group-... autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
)
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
changeStateDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
238 q->nextCheckState();-
239 if (!guard
!guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
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
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
247 emitReleased();
never executed: emitReleased();
0
248 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
249 emitClicked();
never executed: emitClicked();
0
250}
never executed: end of block
0
251-
252void QAbstractButtonPrivate::emitClicked()-
253{-
254 QAbstractButton * const q = q_func();-
255 QPointer<QAbstractButton> guard(q);-
256 q->clicked(checked);-
257-
258 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
259 group->buttonClicked(group->id(q));-
260 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
266void QAbstractButtonPrivate::emitPressed()-
267{-
268 QAbstractButton * const q = q_func();-
269 QPointer<QAbstractButton> guard(q);-
270 q->pressed();-
271-
272 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
273 group->buttonPressed(group->id(q));-
274 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
280void QAbstractButtonPrivate::emitReleased()-
281{-
282 QAbstractButton * const q = q_func();-
283 QPointer<QAbstractButton> guard(q);-
284 q->released();-
285-
286 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
287 group->buttonReleased(group->id(q));-
288 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
294void QAbstractButtonPrivate::emitToggled(bool checked)-
295{-
296 QAbstractButton * const q = q_func();-
297 QPointer<QAbstractButton> guard(q);-
298 q->toggled(checked);-
299-
300 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
301 group->buttonToggled(group->id(q), checked);-
302 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& group
groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
311QAbstractButton::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
d->groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
333QAbstractButton::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
339void QAbstractButton::setText(const QString &text)-
340{-
341 QAbstractButtonPrivate * const d = d_func();-
342 if (d->text == text
d->text == textDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
358QString QAbstractButton::text() const-
359{-
360 const QAbstractButtonPrivate * const d = d_func();-
361 return
never executed: return d->text;
d->text;
never executed: return d->text;
0
362}-
363void 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-
372QIcon QAbstractButton::icon() const-
373{-
374 const QAbstractButtonPrivate * const d = d_func();-
375 return
never executed: return d->icon;
d->icon;
never executed: return d->icon;
0
376}-
377-
378-
379-
380-
381-
382-
383-
384void QAbstractButton::setShortcut(const QKeySequence &key)-
385{-
386 QAbstractButtonPrivate * const d = d_func();-
387 if (d->shortcutId != 0
d->shortcutId != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
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-
393QKeySequence QAbstractButton::shortcut() const-
394{-
395 const QAbstractButtonPrivate * const d = d_func();-
396 return
never executed: return d->shortcut;
d->shortcut;
never executed: return d->shortcut;
0
397}-
398void QAbstractButton::setCheckable(bool checkable)-
399{-
400 QAbstractButtonPrivate * const d = d_func();-
401 if (d->checkable == checkable
d->checkable == checkableDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
402 return;
never executed: return;
0
403-
404 d->checkable = checkable;-
405 d->checked = false;-
406}
never executed: end of block
0
407-
408bool QAbstractButton::isCheckable() const-
409{-
410 const QAbstractButtonPrivate * const d = d_func();-
411 return
never executed: return d->checkable;
d->checkable;
never executed: return d->checkable;
0
412}-
413void QAbstractButton::setChecked(bool checked)-
414{-
415 QAbstractButtonPrivate * const d = d_func();-
416 if (!d->checkable
!d->checkableDescription
TRUEnever evaluated
FALSEnever evaluated
|| d->checked == checked
d->checked == checkedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
417 if (!d->blockRefresh
!d->blockRefreshDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
418 checkStateSet();
never executed: checkStateSet();
0
419 return;
never executed: return;
0
420 }-
421-
422 if (!checked
!checkedDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->queryCheckedButton() == this
d->queryChecke...tton() == thisDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
423-
424-
425 if (d->group
d->groupDescription
TRUEnever evaluated
FALSEnever evaluated
? d->group->d_func()->exclusive : d->autoExclusive
d->group ? d->...>autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
426 return;
never executed: return;
0
427 if (d->group
d->groupDescription
TRUEnever evaluated
FALSEnever evaluated
)
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
!d->blockRefreshDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
439 checkStateSet();
never executed: checkStateSet();
0
440 d->refresh();-
441-
442 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
&& checked
checkedDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
443 d->notifyChecked();
never executed: d->notifyChecked();
0
444 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
456bool QAbstractButton::isChecked() const-
457{-
458 const QAbstractButtonPrivate * const d = d_func();-
459 return
never executed: return d->checked;
d->checked;
never executed: return d->checked;
0
460}-
461void QAbstractButton::setDown(bool down)-
462{-
463 QAbstractButtonPrivate * const d = d_func();-
464 if (d->down == down
d->down == downDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
465 return;
never executed: return;
0
466 d->down = down;-
467 d->refresh();-
468 if (d->autoRepeat
d->autoRepeatDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
474bool QAbstractButton::isDown() const-
475{-
476 const QAbstractButtonPrivate * const d = d_func();-
477 return
never executed: return d->down;
d->down;
never executed: return d->down;
0
478}-
479void QAbstractButton::setAutoRepeat(bool autoRepeat)-
480{-
481 QAbstractButtonPrivate * const d = d_func();-
482 if (d->autoRepeat == autoRepeat
d->autoRepeat == autoRepeatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
483 return;
never executed: return;
0
484 d->autoRepeat = autoRepeat;-
485 if (d->autoRepeat
d->autoRepeatDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
491bool QAbstractButton::autoRepeat() const-
492{-
493 const QAbstractButtonPrivate * const d = d_func();-
494 return
never executed: return d->autoRepeat;
d->autoRepeat;
never executed: return d->autoRepeat;
0
495}-
496void QAbstractButton::setAutoRepeatDelay(int autoRepeatDelay)-
497{-
498 QAbstractButtonPrivate * const d = d_func();-
499 d->autoRepeatDelay = autoRepeatDelay;-
500}
never executed: end of block
0
501-
502int QAbstractButton::autoRepeatDelay() const-
503{-
504 const QAbstractButtonPrivate * const d = d_func();-
505 return
never executed: return d->autoRepeatDelay;
d->autoRepeatDelay;
never executed: return d->autoRepeatDelay;
0
506}-
507void QAbstractButton::setAutoRepeatInterval(int autoRepeatInterval)-
508{-
509 QAbstractButtonPrivate * const d = d_func();-
510 d->autoRepeatInterval = autoRepeatInterval;-
511}
never executed: end of block
0
512-
513int QAbstractButton::autoRepeatInterval() const-
514{-
515 const QAbstractButtonPrivate * const d = d_func();-
516 return
never executed: return d->autoRepeatInterval;
d->autoRepeatInterval;
never executed: return d->autoRepeatInterval;
0
517}-
518void QAbstractButton::setAutoExclusive(bool autoExclusive)-
519{-
520 QAbstractButtonPrivate * const d = d_func();-
521 d->autoExclusive = autoExclusive;-
522}
never executed: end of block
0
523-
524bool QAbstractButton::autoExclusive() const-
525{-
526 const QAbstractButtonPrivate * const d = d_func();-
527 return
never executed: return d->autoExclusive;
d->autoExclusive;
never executed: return d->autoExclusive;
0
528}-
529QButtonGroup *QAbstractButton::group() const-
530{-
531 const QAbstractButtonPrivate * const d = d_func();-
532 return
never executed: return d->group;
d->group;
never executed: return d->group;
0
533}-
534void QAbstractButton::animateClick(int msec)-
535{-
536 if (!isEnabled()
!isEnabled()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
537 return;
never executed: return;
0
538 QAbstractButtonPrivate * const d = d_func();-
539 if (d->checkable
d->checkableDescription
TRUEnever evaluated
FALSEnever evaluated
&& focusPolicy() & Qt::ClickFocus
focusPolicy() & Qt::ClickFocusDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
540 setFocus();
never executed: setFocus();
0
541 setDown(true);-
542 repaint();-
543 QApplication::flush();-
544 if (!d->animateTimer.isActive()
!d->animateTimer.isActive()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
545 d->emitPressed();
never executed: d->emitPressed();
0
546 d->animateTimer.start(msec, this);-
547}
never executed: end of block
0
548void QAbstractButton::click()-
549{-
550 if (!isEnabled()
!isEnabled()Description
TRUEnever evaluated
FALSEnever evaluated
)
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
guardDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
557 d->down = false;-
558 nextCheckState();-
559 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
560 d->emitReleased();
never executed: d->emitReleased();
0
561 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
572void QAbstractButton::toggle()-
573{-
574 QAbstractButtonPrivate * const d = d_func();-
575 setChecked(!d->checked);-
576}
never executed: end of block
0
577void QAbstractButton::checkStateSet()-
578{-
579}-
580void QAbstractButton::nextCheckState()-
581{-
582 if (isCheckable()
isCheckable()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
583 setChecked(!isChecked());
never executed: setChecked(!isChecked());
0
584}
never executed: end of block
0
585bool QAbstractButton::hitButton(const QPoint &pos) const-
586{-
587 return
never executed: return rect().contains(pos);
rect().contains(pos);
never executed: return rect().contains(pos);
0
588}-
589-
590-
591bool QAbstractButton::event(QEvent *e)-
592{-
593-
594-
595 if (!isEnabled()
!isEnabled()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
596 switch(e->type()) {-
597 case
never executed: case QEvent::TabletPress:
QEvent::TabletPress:
never executed: case QEvent::TabletPress:
0
598 case
never executed: case QEvent::TabletRelease:
QEvent::TabletRelease:
never executed: case QEvent::TabletRelease:
0
599 case
never executed: case QEvent::TabletMove:
QEvent::TabletMove:
never executed: case QEvent::TabletMove:
0
600 case
never executed: case QEvent::MouseButtonPress:
QEvent::MouseButtonPress:
never executed: case QEvent::MouseButtonPress:
0
601 case
never executed: case QEvent::MouseButtonRelease:
QEvent::MouseButtonRelease:
never executed: case QEvent::MouseButtonRelease:
0
602 case
never executed: case QEvent::MouseButtonDblClick:
QEvent::MouseButtonDblClick:
never executed: case QEvent::MouseButtonDblClick:
0
603 case
never executed: case QEvent::MouseMove:
QEvent::MouseMove:
never executed: case QEvent::MouseMove:
0
604 case
never executed: case QEvent::HoverMove:
QEvent::HoverMove:
never executed: case QEvent::HoverMove:
0
605 case
never executed: case QEvent::HoverEnter:
QEvent::HoverEnter:
never executed: case QEvent::HoverEnter:
0
606 case
never executed: case QEvent::HoverLeave:
QEvent::HoverLeave:
never executed: case QEvent::HoverLeave:
0
607 case
never executed: case QEvent::ContextMenu:
QEvent::ContextMenu:
never executed: case QEvent::ContextMenu:
0
608-
609 case
never executed: case QEvent::Wheel:
QEvent::Wheel:
never executed: case QEvent::Wheel:
0
610-
611 return
never executed: return true;
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
e->type() == QEvent::ShortcutDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
619 QAbstractButtonPrivate * const d = d_func();-
620 QShortcutEvent *se = static_cast<QShortcutEvent *>(e);-
621 if (d->shortcutId != se->shortcutId()
d->shortcutId ...->shortcutId()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
622 return
never executed: return false;
false;
never executed: return false;
0
623 if (!se->isAmbiguous()
!se->isAmbiguous()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
624 if (!d->animateTimer.isActive()
!d->animateTimer.isActive()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
625 animateClick();
never executed: animateClick();
0
626 }
never executed: end of block
else {
0
627 if (focusPolicy() != Qt::NoFocus
focusPolicy() != Qt::NoFocusDescription
TRUEnever evaluated
FALSEnever evaluated
)
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: return true;
true;
never executed: return true;
0
632 }-
633-
634 return
never executed: return QWidget::event(e);
QWidget::event(e);
never executed: return QWidget::event(e);
0
635}-
636-
637-
638void QAbstractButton::mousePressEvent(QMouseEvent *e)-
639{-
640 QAbstractButtonPrivate * const d = d_func();-
641 if (e->button() != Qt::LeftButton
e->button() != Qt::LeftButtonDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
642 e->ignore();-
643 return;
never executed: return;
0
644 }-
645 if (hitButton(e->pos())
hitButton(e->pos())Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
646 setDown(true);-
647 d->pressed = true;-
648 repaint();-
649 QApplication::flush();-
650 d->emitPressed();-
651 e->accept();-
652 }
never executed: end of block
else {
0
653 e->ignore();-
654 }
never executed: end of block
0
655}-
656-
657-
658void QAbstractButton::mouseReleaseEvent(QMouseEvent *e)-
659{-
660 QAbstractButtonPrivate * const d = d_func();-
661 d->pressed = false;-
662-
663 if (e->button() != Qt::LeftButton
e->button() != Qt::LeftButtonDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
664 e->ignore();-
665 return;
never executed: return;
0
666 }-
667-
668 if (!d->down
!d->downDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
669-
670 d->refresh();-
671 e->ignore();-
672 return;
never executed: return;
0
673 }-
674-
675 if (hitButton(e->pos())
hitButton(e->pos())Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
676 d->repeatTimer.stop();-
677 d->click();-
678 e->accept();-
679 }
never executed: end of block
else {
0
680 setDown(false);-
681 e->ignore();-
682 }
never executed: end of block
0
683}-
684-
685-
686void QAbstractButton::mouseMoveEvent(QMouseEvent *e)-
687{-
688 QAbstractButtonPrivate * const d = d_func();-
689 if (!(e->buttons() & Qt::LeftButton)
!(e->buttons()...t::LeftButton)Description
TRUEnever evaluated
FALSEnever evaluated
|| !d->pressed
!d->pressedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
690 e->ignore();-
691 return;
never executed: return;
0
692 }-
693-
694 if (hitButton(e->pos()) != d->down
hitButton(e->pos()) != d->downDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
695 setDown(!d->down);-
696 repaint();-
697 QApplication::flush();-
698 if (d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
)
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: end of block
else if (!hitButton(e->pos())
!hitButton(e->pos())Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
704 e->ignore();-
705 }
never executed: end of block
0
706}
never executed: end of block
0
707-
708-
709void QAbstractButton::keyPressEvent(QKeyEvent *e)-
710{-
711 QAbstractButtonPrivate * const d = d_func();-
712 bool next = true;-
713 switch (e->key()) {-
714 case
never executed: case Qt::Key_Enter:
Qt::Key_Enter:
never executed: case Qt::Key_Enter:
0
715 case
never executed: case Qt::Key_Return:
Qt::Key_Return:
never executed: case Qt::Key_Return:
0
716 e->ignore();-
717 break;
never executed: break;
0
718 case
never executed: case Qt::Key_Select:
Qt::Key_Select:
never executed: case Qt::Key_Select:
0
719 case
never executed: case Qt::Key_Space:
Qt::Key_Space:
never executed: case Qt::Key_Space:
0
720 if (!e->isAutoRepeat()
!e->isAutoRepeat()Description
TRUEnever evaluated
FALSEnever evaluated
) {
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: case Qt::Key_Up:
Qt::Key_Up:
never executed: case Qt::Key_Up:
0
728 next = false;-
729-
730 case
never executed: case Qt::Key_Left:
Qt::Key_Left:
never executed: case Qt::Key_Left:
code before this statement never executed: case Qt::Key_Left:
0
731 case
never executed: case Qt::Key_Right:
Qt::Key_Right:
never executed: case Qt::Key_Right:
0
732 case
never executed: case Qt::Key_Down:
Qt::Key_Down:
never executed: case Qt::Key_Down:
{
0
733 QWidget *pw = parentWidget();-
734 if (d->autoExclusive
d->autoExclusiveDescription
TRUEnever evaluated
FALSEnever evaluated
0
735-
736 || d->group
d->groupDescription
TRUEnever evaluated
FALSEnever evaluated
0
737-
738-
739 || (pw
pwDescription
TRUEnever evaluated
FALSEnever evaluated
&& qobject_cast<QAbstractItemView *>(pw->parentWidget())
qobject_cast<Q...arentWidget())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
740-
741 ) {-
742-
743-
744-
745-
746 d->moveFocus(e->key());-
747 if (hasFocus()
hasFocus()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
748 e->ignore();
never executed: e->ignore();
0
749 }
never executed: end of block
else {
0
750-
751 QWidget *w = pw
pwDescription
TRUEnever evaluated
FALSEnever evaluated
? pw : this;
0
752 bool reverse = (w->layoutDirection() == Qt::RightToLeft);-
753 if ((e->key() == Qt::Key_Left
e->key() == Qt::Key_LeftDescription
TRUEnever evaluated
FALSEnever evaluated
&& !reverse
!reverseDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
754 || (e->key() == Qt::Key_Right
e->key() == Qt::Key_RightDescription
TRUEnever evaluated
FALSEnever evaluated
&& reverse
reverseDescription
TRUEnever evaluated
FALSEnever evaluated
)) {
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)
e->matches(QKe...uence::Cancel)Description
TRUEnever evaluated
FALSEnever evaluated
&& d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
) {
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-
774void QAbstractButton::keyReleaseEvent(QKeyEvent *e)-
775{-
776 QAbstractButtonPrivate * const d = d_func();-
777-
778 if (!e->isAutoRepeat()
!e->isAutoRepeat()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
779 d->repeatTimer.stop();
never executed: d->repeatTimer.stop();
0
780-
781 switch (e->key()) {-
782 case
never executed: case Qt::Key_Select:
Qt::Key_Select:
never executed: case Qt::Key_Select:
0
783 case
never executed: case Qt::Key_Space:
Qt::Key_Space:
never executed: case Qt::Key_Space:
0
784 if (!e->isAutoRepeat()
!e->isAutoRepeat()Description
TRUEnever evaluated
FALSEnever evaluated
&& d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
)
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-
794void QAbstractButton::timerEvent(QTimerEvent *e)-
795{-
796 QAbstractButtonPrivate * const d = d_func();-
797 if (e->timerId() == d->repeatTimer.timerId()
e->timerId() =...imer.timerId()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
798 d->repeatTimer.start(d->autoRepeatInterval, this);-
799 if (d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
800 QPointer<QAbstractButton> guard(this);-
801 nextCheckState();-
802 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
803 d->emitReleased();
never executed: d->emitReleased();
0
804 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
805 d->emitClicked();
never executed: d->emitClicked();
0
806 if (guard
guardDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
807 d->emitPressed();
never executed: d->emitPressed();
0
808 }
never executed: end of block
0
809 }
never executed: end of block
else if (e->timerId() == d->animateTimer.timerId()
e->timerId() =...imer.timerId()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
810 d->animateTimer.stop();-
811 d->click();-
812 }
never executed: end of block
0
813}
never executed: end of block
0
814-
815-
816void 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-
827void QAbstractButton::focusOutEvent(QFocusEvent *e)-
828{-
829 QAbstractButtonPrivate * const d = d_func();-
830 if (e->reason() != Qt::PopupFocusReason
e->reason() !=...pupFocusReasonDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
) {
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-
838void QAbstractButton::changeEvent(QEvent *e)-
839{-
840 QAbstractButtonPrivate * const d = d_func();-
841 switch (e->type()) {-
842 case
never executed: case QEvent::EnabledChange:
QEvent::EnabledChange:
never executed: case QEvent::EnabledChange:
0
843 if (!isEnabled()
!isEnabled()Description
TRUEnever evaluated
FALSEnever evaluated
&& d->down
d->downDescription
TRUEnever evaluated
FALSEnever evaluated
) {
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
854QSize QAbstractButton::iconSize() const-
855{-
856 const QAbstractButtonPrivate * const d = d_func();-
857 if (d->iconSize.isValid()
d->iconSize.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
858 return
never executed: return d->iconSize;
d->iconSize;
never executed: return d->iconSize;
0
859 int e = style()->pixelMetric(QStyle::PM_ButtonIconSize, 0, this);-
860 return
never executed: return QSize(e, e);
QSize(e, e);
never executed: return QSize(e, e);
0
861}-
862-
863void QAbstractButton::setIconSize(const QSize &size)-
864{-
865 QAbstractButtonPrivate * const d = d_func();-
866 if (d->iconSize == size
d->iconSize == sizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
867 return;
never executed: return;
0
868-
869 d->iconSize = size;-
870 d->sizeHint = QSize();-
871 updateGeometry();-
872 if (isVisible()
isVisible()Description
TRUEnever evaluated
FALSEnever evaluated
) {
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 codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9