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