widgets/qdial.cpp

Source codeSwitch to Preprocessed file
LineSource CodeCoverage
1/**************************************************************************** -
2** -
3** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -
4** Contact: http://www.qt-project.org/legal -
5** -
6** This file is part of the QtGui module of the Qt Toolkit. -
7** -
8** $QT_BEGIN_LICENSE:LGPL$ -
9** Commercial License Usage -
10** Licensees holding valid commercial Qt licenses may use this file in -
11** accordance with the commercial license agreement provided with the -
12** Software or, alternatively, in accordance with the terms contained in -
13** a written agreement between you and Digia. For licensing terms and -
14** conditions see http://qt.digia.com/licensing. For further information -
15** use the contact form at http://qt.digia.com/contact-us. -
16** -
17** GNU Lesser General Public License Usage -
18** Alternatively, this file may be used under the terms of the GNU Lesser -
19** General Public License version 2.1 as published by the Free Software -
20** Foundation and appearing in the file LICENSE.LGPL included in the -
21** packaging of this file. Please review the following information to -
22** ensure the GNU Lesser General Public License version 2.1 requirements -
23** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -
24** -
25** In addition, as a special exception, Digia gives you certain additional -
26** rights. These rights are described in the Digia Qt LGPL Exception -
27** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -
28** -
29** GNU General Public License Usage -
30** Alternatively, this file may be used under the terms of the GNU -
31** General Public License version 3.0 as published by the Free Software -
32** Foundation and appearing in the file LICENSE.GPL included in the -
33** packaging of this file. Please review the following information to -
34** ensure the GNU General Public License version 3.0 requirements will be -
35** met: http://www.gnu.org/copyleft/gpl.html. -
36** -
37** -
38** $QT_END_LICENSE$ -
39** -
40****************************************************************************/ -
41 -
42#include "qdial.h" -
43 -
44#ifndef QT_NO_DIAL -
45 -
46#include <qapplication.h> -
47#include <qbitmap.h> -
48#include <qcolor.h> -
49#include <qevent.h> -
50#include <qpainter.h> -
51#include <qpolygon.h> -
52#include <qregion.h> -
53#include <qstyle.h> -
54#include <qstylepainter.h> -
55#include <qstyleoption.h> -
56#include <qslider.h> -
57#include <private/qabstractslider_p.h> -
58#include <private/qmath_p.h> -
59#ifndef QT_NO_ACCESSIBILITY -
60#include "qaccessible.h" -
61#endif -
62#include <qmath.h> -
63 -
64QT_BEGIN_NAMESPACE -
65 -
66class QDialPrivate : public QAbstractSliderPrivate -
67{ -
68 Q_DECLARE_PUBLIC(QDial) -
69public: -
70 QDialPrivate() -
71 { -
72 wrapping = false;
executed (the execution status of this line is deduced): wrapping = false;
-
73 tracking = true;
executed (the execution status of this line is deduced): tracking = true;
-
74 doNotEmit = false;
executed (the execution status of this line is deduced): doNotEmit = false;
-
75 target = qreal(3.7);
executed (the execution status of this line is deduced): target = qreal(3.7);
-
76 }
executed: }
Execution Count:7
7
77 -
78 qreal target; -
79 uint showNotches : 1; -
80 uint wrapping : 1; -
81 uint doNotEmit : 1; -
82 -
83 int valueFromPoint(const QPoint &) const; -
84 double angle(const QPoint &, const QPoint &) const; -
85 void init(); -
86 virtual int bound(int val) const; -
87}; -
88 -
89void QDialPrivate::init() -
90{ -
91 Q_Q(QDial);
executed (the execution status of this line is deduced): QDial * const q = q_func();
-
92 showNotches = false;
executed (the execution status of this line is deduced): showNotches = false;
-
93 q->setFocusPolicy(Qt::WheelFocus);
executed (the execution status of this line is deduced): q->setFocusPolicy(Qt::WheelFocus);
-
94}
executed: }
Execution Count:7
7
95 -
96int QDialPrivate::bound(int val) const -
97{ -
98 if (wrapping) {
evaluated: wrapping
TRUEFALSE
yes
Evaluation Count:20
yes
Evaluation Count:27
20-27
99 if ((val >= minimum) && (val <= maximum))
evaluated: (val >= minimum)
TRUEFALSE
yes
Evaluation Count:17
yes
Evaluation Count:3
evaluated: (val <= maximum)
TRUEFALSE
yes
Evaluation Count:14
yes
Evaluation Count:3
3-17
100 return val;
executed: return val;
Execution Count:14
14
101 val = minimum + ((val - minimum) % (maximum - minimum));
executed (the execution status of this line is deduced): val = minimum + ((val - minimum) % (maximum - minimum));
-
102 if (val < minimum)
evaluated: val < minimum
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:3
3
103 val += maximum - minimum;
executed: val += maximum - minimum;
Execution Count:3
3
104 return val;
executed: return val;
Execution Count:6
6
105 } else { -
106 return QAbstractSliderPrivate::bound(val);
executed: return QAbstractSliderPrivate::bound(val);
Execution Count:27
27
107 } -
108} -
109 -
110/*! -
111 Initialize \a option with the values from this QDial. This method -
112 is useful for subclasses when they need a QStyleOptionSlider, but don't want -
113 to fill in all the information themselves. -
114 -
115 \sa QStyleOption::initFrom() -
116*/ -
117void QDial::initStyleOption(QStyleOptionSlider *option) const -
118{ -
119 if (!option)
partially evaluated: !option
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
120 return;
never executed: return;
0
121 -
122 Q_D(const QDial);
executed (the execution status of this line is deduced): const QDialPrivate * const d = d_func();
-
123 option->initFrom(this);
executed (the execution status of this line is deduced): option->initFrom(this);
-
124 option->minimum = d->minimum;
executed (the execution status of this line is deduced): option->minimum = d->minimum;
-
125 option->maximum = d->maximum;
executed (the execution status of this line is deduced): option->maximum = d->maximum;
-
126 option->sliderPosition = d->position;
executed (the execution status of this line is deduced): option->sliderPosition = d->position;
-
127 option->sliderValue = d->value;
executed (the execution status of this line is deduced): option->sliderValue = d->value;
-
128 option->singleStep = d->singleStep;
executed (the execution status of this line is deduced): option->singleStep = d->singleStep;
-
129 option->pageStep = d->pageStep;
executed (the execution status of this line is deduced): option->pageStep = d->pageStep;
-
130 option->upsideDown = !d->invertedAppearance;
executed (the execution status of this line is deduced): option->upsideDown = !d->invertedAppearance;
-
131 option->notchTarget = d->target;
executed (the execution status of this line is deduced): option->notchTarget = d->target;
-
132 option->dialWrapping = d->wrapping;
executed (the execution status of this line is deduced): option->dialWrapping = d->wrapping;
-
133 option->subControls = QStyle::SC_All;
executed (the execution status of this line is deduced): option->subControls = QStyle::SC_All;
-
134 option->activeSubControls = QStyle::SC_None;
executed (the execution status of this line is deduced): option->activeSubControls = QStyle::SC_None;
-
135 if (!d->showNotches) {
partially evaluated: !d->showNotches
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
136 option->subControls &= ~QStyle::SC_DialTickmarks;
executed (the execution status of this line is deduced): option->subControls &= ~QStyle::SC_DialTickmarks;
-
137 option->tickPosition = QSlider::TicksAbove;
executed (the execution status of this line is deduced): option->tickPosition = QSlider::TicksAbove;
-
138 } else {
executed: }
Execution Count:3
3
139 option->tickPosition = QSlider::NoTicks;
never executed (the execution status of this line is deduced): option->tickPosition = QSlider::NoTicks;
-
140 }
never executed: }
0
141 option->tickInterval = notchSize();
executed (the execution status of this line is deduced): option->tickInterval = notchSize();
-
142}
executed: }
Execution Count:3
3
143 -
144int QDialPrivate::valueFromPoint(const QPoint &p) const -
145{ -
146 Q_Q(const QDial);
executed (the execution status of this line is deduced): const QDial * const q = q_func();
-
147 double yy = (double)q->height()/2.0 - p.y();
executed (the execution status of this line is deduced): double yy = (double)q->height()/2.0 - p.y();
-
148 double xx = (double)p.x() - q->width()/2.0;
executed (the execution status of this line is deduced): double xx = (double)p.x() - q->width()/2.0;
-
149 double a = (xx || yy) ? qAtan2(yy, xx) : 0;
evaluated: xx
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1
partially evaluated: yy
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-3
150 -
151 if (a < Q_PI / -2)
partially evaluated: a < Q_PI / -2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
152 a = a + Q_PI * 2;
never executed: a = a + Q_PI * 2;
0
153 -
154 int dist = 0;
executed (the execution status of this line is deduced): int dist = 0;
-
155 int minv = minimum, maxv = maximum;
executed (the execution status of this line is deduced): int minv = minimum, maxv = maximum;
-
156 -
157 if (minimum < 0) {
partially evaluated: minimum < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
158 dist = -minimum;
never executed (the execution status of this line is deduced): dist = -minimum;
-
159 minv = 0;
never executed (the execution status of this line is deduced): minv = 0;
-
160 maxv = maximum + dist;
never executed (the execution status of this line is deduced): maxv = maximum + dist;
-
161 }
never executed: }
0
162 -
163 int r = maxv - minv;
executed (the execution status of this line is deduced): int r = maxv - minv;
-
164 int v;
executed (the execution status of this line is deduced): int v;
-
165 if (wrapping)
partially evaluated: wrapping
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
166 v = (int)(0.5 + minv + r * (Q_PI * 3 / 2 - a) / (2 * Q_PI));
never executed: v = (int)(0.5 + minv + r * (Q_PI * 3 / 2 - a) / (2 * Q_PI));
0
167 else -
168 v = (int)(0.5 + minv + r* (Q_PI * 4 / 3 - a) / (Q_PI * 10 / 6));
executed: v = (int)(0.5 + minv + r* (Q_PI * 4 / 3 - a) / (Q_PI * 10 / 6));
Execution Count:4
4
169 -
170 if (dist > 0)
partially evaluated: dist > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
171 v -= dist;
never executed: v -= dist;
0
172 -
173 return !invertedAppearance ? bound(v) : maximum - bound(v);
executed: return !invertedAppearance ? bound(v) : maximum - bound(v);
Execution Count:4
4
174} -
175 -
176/*! -
177 \class QDial -
178 -
179 \brief The QDial class provides a rounded range control (like a speedometer or potentiometer). -
180 -
181 \ingroup basicwidgets -
182 \inmodule QtWidgets -
183 -
184 QDial is used when the user needs to control a value within a -
185 program-definable range, and the range either wraps around -
186 (for example, with angles measured from 0 to 359 degrees) or the -
187 dialog layout needs a square widget. -
188 -
189 Since QDial inherits from QAbstractSlider, the dial behaves in -
190 a similar way to a \l{QSlider}{slider}. When wrapping() is false -
191 (the default setting) there is no real difference between a slider -
192 and a dial. They both share the same signals, slots and member -
193 functions. Which one you use depends on the expectations of -
194 your users and on the type of application. -
195 -
196 The dial initially emits valueChanged() signals continuously while -
197 the slider is being moved; you can make it emit the signal less -
198 often by disabling the \l{QAbstractSlider::tracking} {tracking} -
199 property. The sliderMoved() signal is emitted continuously even -
200 when tracking is disabled. -
201 -
202 The dial also emits sliderPressed() and sliderReleased() signals -
203 when the mouse button is pressed and released. Note that the -
204 dial's value can change without these signals being emitted since -
205 the keyboard and wheel can also be used to change the value. -
206 -
207 Unlike the slider, QDial attempts to draw a "nice" number of -
208 notches rather than one per line step. If possible, the number of -
209 notches drawn is one per line step, but if there aren't enough pixels -
210 to draw every one, QDial will skip notches to try and draw a uniform -
211 set (e.g. by drawing every second or third notch). -
212 -
213 Like the slider, the dial makes the QAbstractSlider functions -
214 setValue(), addLine(), subtractLine(), addPage() and -
215 subtractPage() available as slots. -
216 -
217 The dial's keyboard interface is fairly simple: The -
218 \uicontrol{left}/\uicontrol{up} and \uicontrol{right}/\uicontrol{down} arrow keys adjust -
219 the dial's \l {QAbstractSlider::value} {value} by the defined -
220 \l {QAbstractSlider::singleStep} {singleStep}, \uicontrol{Page Up} and -
221 \uicontrol{Page Down} by the defined \l {QAbstractSlider::pageStep} -
222 {pageStep}, and the \uicontrol Home and \uicontrol End keys set the value to -
223 the defined \l {QAbstractSlider::minimum} {minimum} and -
224 \l {QAbstractSlider::maximum} {maximum} values. -
225 -
226 If you are using the mouse wheel to adjust the dial, the increment -
227 value is determined by the lesser value of -
228 \l{QApplication::wheelScrollLines()} {wheelScrollLines} multipled -
229 by \l {QAbstractSlider::singleStep} {singleStep}, and -
230 \l {QAbstractSlider::pageStep} {pageStep}. -
231 -
232 \table -
233 \row \li \inlineimage fusion-dial.png Screenshot of a dial in the Fusion widget style -
234 \li \inlineimage windowsvista-dial.png Screenshot of a dial in the Windows Vista widget style -
235 \li \inlineimage macintosh-dial.png Screenshot of a dial in the Macintosh widget style -
236 \row \li {3,1} Dials shown in various widget styles (from left to right): -
237 \l{Fusion Style Widget Gallery}{Fusion}, -
238 \l{Windows Vista Style Widget Gallery}{Windows Vista}, -
239 \l{Macintosh Style Widget Gallery}{Macintosh}. -
240 \endtable -
241 -
242 \sa QScrollBar, QSpinBox, QSlider, {fowler}{GUI Design Handbook: Slider}, {Sliders Example} -
243*/ -
244 -
245/*! -
246 Constructs a dial. -
247 -
248 The \a parent argument is sent to the QAbstractSlider constructor. -
249*/ -
250QDial::QDial(QWidget *parent) -
251 : QAbstractSlider(*new QDialPrivate, parent) -
252{ -
253 Q_D(QDial);
executed (the execution status of this line is deduced): QDialPrivate * const d = d_func();
-
254 d->init();
executed (the execution status of this line is deduced): d->init();
-
255}
executed: }
Execution Count:7
7
256 -
257/*! -
258 Destroys the dial. -
259*/ -
260QDial::~QDial() -
261{ -
262} -
263 -
264/*! \reimp */ -
265void QDial::resizeEvent(QResizeEvent *e) -
266{ -
267 QWidget::resizeEvent(e);
executed (the execution status of this line is deduced): QWidget::resizeEvent(e);
-
268}
executed: }
Execution Count:7
7
269 -
270/*! -
271 \reimp -
272*/ -
273 -
274void QDial::paintEvent(QPaintEvent *) -
275{ -
276 QStylePainter p(this);
executed (the execution status of this line is deduced): QStylePainter p(this);
-
277 QStyleOptionSlider option;
executed (the execution status of this line is deduced): QStyleOptionSlider option;
-
278 initStyleOption(&option);
executed (the execution status of this line is deduced): initStyleOption(&option);
-
279 p.drawComplexControl(QStyle::CC_Dial, option);
executed (the execution status of this line is deduced): p.drawComplexControl(QStyle::CC_Dial, option);
-
280}
executed: }
Execution Count:3
3
281 -
282/*! -
283 \reimp -
284*/ -
285 -
286void QDial::mousePressEvent(QMouseEvent *e) -
287{ -
288 Q_D(QDial);
executed (the execution status of this line is deduced): QDialPrivate * const d = d_func();
-
289 if (d->maximum == d->minimum ||
partially evaluated: d->maximum == d->minimum
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
290 (e->button() != Qt::LeftButton) ||
partially evaluated: (e->button() != Qt::LeftButton)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
291 (e->buttons() ^ e->button())) {
partially evaluated: (e->buttons() ^ e->button())
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
292 e->ignore();
never executed (the execution status of this line is deduced): e->ignore();
-
293 return;
never executed: return;
0
294 } -
295 e->accept();
executed (the execution status of this line is deduced): e->accept();
-
296 setSliderPosition(d->valueFromPoint(e->pos()));
executed (the execution status of this line is deduced): setSliderPosition(d->valueFromPoint(e->pos()));
-
297 // ### This isn't quite right, -
298 // we should be doing a hit test and only setting this if it's -
299 // the actual dial thingie (similar to what QSlider does), but we have no -
300 // subControls for QDial. -
301 setSliderDown(true);
executed (the execution status of this line is deduced): setSliderDown(true);
-
302}
executed: }
Execution Count:1
1
303 -
304 -
305/*! -
306 \reimp -
307*/ -
308 -
309void QDial::mouseReleaseEvent(QMouseEvent * e) -
310{ -
311 Q_D(QDial);
executed (the execution status of this line is deduced): QDialPrivate * const d = d_func();
-
312 if (e->buttons() & (~e->button()) ||
partially evaluated: e->buttons() & (~e->button())
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
313 (e->button() != Qt::LeftButton)) {
partially evaluated: (e->button() != Qt::LeftButton)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
314 e->ignore();
never executed (the execution status of this line is deduced): e->ignore();
-
315 return;
never executed: return;
0
316 } -
317 e->accept();
executed (the execution status of this line is deduced): e->accept();
-
318 setValue(d->valueFromPoint(e->pos()));
executed (the execution status of this line is deduced): setValue(d->valueFromPoint(e->pos()));
-
319 setSliderDown(false);
executed (the execution status of this line is deduced): setSliderDown(false);
-
320}
executed: }
Execution Count:1
1
321 -
322 -
323/*! -
324 \reimp -
325*/ -
326 -
327void QDial::mouseMoveEvent(QMouseEvent * e) -
328{ -
329 Q_D(QDial);
executed (the execution status of this line is deduced): QDialPrivate * const d = d_func();
-
330 if (!(e->buttons() & Qt::LeftButton)) {
partially evaluated: !(e->buttons() & Qt::LeftButton)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
331 e->ignore();
never executed (the execution status of this line is deduced): e->ignore();
-
332 return;
never executed: return;
0
333 } -
334 e->accept();
executed (the execution status of this line is deduced): e->accept();
-
335 d->doNotEmit = true;
executed (the execution status of this line is deduced): d->doNotEmit = true;
-
336 setSliderPosition(d->valueFromPoint(e->pos()));
executed (the execution status of this line is deduced): setSliderPosition(d->valueFromPoint(e->pos()));
-
337 d->doNotEmit = false;
executed (the execution status of this line is deduced): d->doNotEmit = false;
-
338}
executed: }
Execution Count:2
2
339 -
340 -
341/*! -
342 \reimp -
343*/ -
344 -
345void QDial::sliderChange(SliderChange change) -
346{ -
347 QAbstractSlider::sliderChange(change);
executed (the execution status of this line is deduced): QAbstractSlider::sliderChange(change);
-
348}
executed: }
Execution Count:31
31
349 -
350void QDial::setWrapping(bool enable) -
351{ -
352 Q_D(QDial);
executed (the execution status of this line is deduced): QDialPrivate * const d = d_func();
-
353 if (d->wrapping == enable)
evaluated: d->wrapping == enable
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:4
1-4
354 return;
executed: return;
Execution Count:1
1
355 d->wrapping = enable;
executed (the execution status of this line is deduced): d->wrapping = enable;
-
356 update();
executed (the execution status of this line is deduced): update();
-
357}
executed: }
Execution Count:4
4
358 -
359 -
360/*! -
361 \property QDial::wrapping -
362 \brief whether wrapping is enabled -
363 -
364 If true, wrapping is enabled; otherwise some space is inserted at the bottom -
365 of the dial to separate the ends of the range of valid values. -
366 -
367 If enabled, the arrow can be oriented at any angle on the dial. If disabled, -
368 the arrow will be restricted to the upper part of the dial; if it is rotated -
369 into the space at the bottom of the dial, it will be clamped to the closest -
370 end of the valid range of values. -
371 -
372 By default this property is false. -
373*/ -
374 -
375bool QDial::wrapping() const -
376{ -
377 Q_D(const QDial);
executed (the execution status of this line is deduced): const QDialPrivate * const d = d_func();
-
378 return d->wrapping;
executed: return d->wrapping;
Execution Count:2
2
379} -
380 -
381 -
382/*! -
383 \property QDial::notchSize -
384 \brief the current notch size -
385 -
386 The notch size is in range control units, not pixels, and if -
387 possible it is a multiple of singleStep() that results in an -
388 on-screen notch size near notchTarget(). -
389 -
390 By default, this property has a value of 1. -
391 -
392 \sa notchTarget(), singleStep() -
393*/ -
394 -
395int QDial::notchSize() const -
396{ -
397 Q_D(const QDial);
executed (the execution status of this line is deduced): const QDialPrivate * const d = d_func();
-
398 // radius of the arc -
399 int r = qMin(width(), height())/2;
executed (the execution status of this line is deduced): int r = qMin(width(), height())/2;
-
400 // length of the whole arc -
401 int l = (int)(r * (d->wrapping ? 6 : 5) * Q_PI / 6);
executed (the execution status of this line is deduced): int l = (int)(r * (d->wrapping ? 6 : 5) * Q_PI / 6);
-
402 // length of the arc from minValue() to minValue()+pageStep() -
403 if (d->maximum > d->minimum + d->pageStep)
partially evaluated: d->maximum > d->minimum + d->pageStep
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
404 l = (int)(0.5 + l * d->pageStep / (d->maximum - d->minimum));
executed: l = (int)(0.5 + l * d->pageStep / (d->maximum - d->minimum));
Execution Count:3
3
405 // length of a singleStep arc -
406 l = l * d->singleStep / (d->pageStep ? d->pageStep : 1);
partially evaluated: d->pageStep
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
407 if (l < 1)
evaluated: l < 1
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:2
1-2
408 l = 1;
executed: l = 1;
Execution Count:1
1
409 // how many times singleStep can be draw in d->target pixels -
410 l = (int)(0.5 + d->target / l);
executed (the execution status of this line is deduced): l = (int)(0.5 + d->target / l);
-
411 // we want notchSize() to be a non-zero multiple of lineStep() -
412 if (!l)
partially evaluated: !l
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
413 l = 1;
never executed: l = 1;
0
414 return d->singleStep * l;
executed: return d->singleStep * l;
Execution Count:3
3
415} -
416 -
417void QDial::setNotchTarget(double target) -
418{ -
419 Q_D(QDial);
never executed (the execution status of this line is deduced): QDialPrivate * const d = d_func();
-
420 d->target = target;
never executed (the execution status of this line is deduced): d->target = target;
-
421 update();
never executed (the execution status of this line is deduced): update();
-
422}
never executed: }
0
423 -
424/*! -
425 \property QDial::notchTarget -
426 \brief the target number of pixels between notches -
427 -
428 The notch target is the number of pixels QDial attempts to put -
429 between each notch. -
430 -
431 The actual size may differ from the target size. -
432 -
433 The default notch target is 3.7 pixels. -
434*/ -
435qreal QDial::notchTarget() const -
436{ -
437 Q_D(const QDial);
never executed (the execution status of this line is deduced): const QDialPrivate * const d = d_func();
-
438 return d->target;
never executed: return d->target;
0
439} -
440 -
441 -
442void QDial::setNotchesVisible(bool visible) -
443{ -
444 Q_D(QDial);
executed (the execution status of this line is deduced): QDialPrivate * const d = d_func();
-
445 d->showNotches = visible;
executed (the execution status of this line is deduced): d->showNotches = visible;
-
446 update();
executed (the execution status of this line is deduced): update();
-
447}
executed: }
Execution Count:2
2
448 -
449/*! -
450 \property QDial::notchesVisible -
451 \brief whether the notches are shown -
452 -
453 If the property is true, a series of notches are drawn around the dial -
454 to indicate the range of values available; otherwise no notches are -
455 shown. -
456 -
457 By default, this property is disabled. -
458*/ -
459bool QDial::notchesVisible() const -
460{ -
461 Q_D(const QDial);
executed (the execution status of this line is deduced): const QDialPrivate * const d = d_func();
-
462 return d->showNotches;
executed: return d->showNotches;
Execution Count:2
2
463} -
464 -
465/*! -
466 \reimp -
467*/ -
468 -
469QSize QDial::minimumSizeHint() const -
470{ -
471 return QSize(50, 50);
executed: return QSize(50, 50);
Execution Count:2
2
472} -
473 -
474/*! -
475 \reimp -
476*/ -
477 -
478QSize QDial::sizeHint() const -
479{ -
480 return QSize(100, 100).expandedTo(QApplication::globalStrut());
executed: return QSize(100, 100).expandedTo(QApplication::globalStrut());
Execution Count:5
5
481} -
482 -
483/*! -
484 \reimp -
485*/ -
486bool QDial::event(QEvent *e) -
487{ -
488 return QAbstractSlider::event(e);
executed: return QAbstractSlider::event(e);
Execution Count:74
74
489} -
490 -
491QT_END_NAMESPACE -
492 -
493#endif // QT_NO_DIAL -
494 -
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial