Line | Source Code | Coverage |
---|
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | class QDialPrivate : public QAbstractSliderPrivate | - |
10 | { | - |
11 | inline QDial* q_func() { return static_cast<QDial *>(q_ptr); } inline const QDial* q_func() const { return static_cast<const QDial *>(q_ptr); } friend class QDial; | - |
12 | public: | - |
13 | QDialPrivate() | - |
14 | { | - |
15 | wrapping = false; | - |
16 | tracking = true; | - |
17 | doNotEmit = false; | - |
18 | target = qreal(3.7); | - |
19 | } executed: } Execution Count:7 | 7 |
20 | | - |
21 | qreal target; | - |
22 | uint showNotches : 1; | - |
23 | uint wrapping : 1; | - |
24 | uint doNotEmit : 1; | - |
25 | | - |
26 | int valueFromPoint(const QPoint &) const; | - |
27 | double angle(const QPoint &, const QPoint &) const; | - |
28 | void init(); | - |
29 | virtual int bound(int val) const; | - |
30 | }; | - |
31 | | - |
32 | void QDialPrivate::init() | - |
33 | { | - |
34 | QDial * const q = q_func(); | - |
35 | showNotches = false; | - |
36 | q->setFocusPolicy(Qt::WheelFocus); | - |
37 | } executed: } Execution Count:7 | 7 |
38 | | - |
39 | int QDialPrivate::bound(int val) const | - |
40 | { | - |
41 | if (wrapping) { evaluated: wrapping yes Evaluation Count:20 | yes Evaluation Count:27 |
| 20-27 |
42 | if ((val >= minimum) && (val <= maximum)) evaluated: (val >= minimum) yes Evaluation Count:17 | yes Evaluation Count:3 |
evaluated: (val <= maximum) yes Evaluation Count:14 | yes Evaluation Count:3 |
| 3-17 |
43 | return val; executed: return val; Execution Count:14 | 14 |
44 | val = minimum + ((val - minimum) % (maximum - minimum)); | - |
45 | if (val < minimum) evaluated: val < minimum yes Evaluation Count:3 | yes Evaluation Count:3 |
| 3 |
46 | val += maximum - minimum; executed: val += maximum - minimum; Execution Count:3 | 3 |
47 | return val; executed: return val; Execution Count:6 | 6 |
48 | } else { | - |
49 | return QAbstractSliderPrivate::bound(val); executed: return QAbstractSliderPrivate::bound(val); Execution Count:27 | 27 |
50 | } | - |
51 | } | - |
52 | void QDial::initStyleOption(QStyleOptionSlider *option) const | - |
53 | { | - |
54 | if (!option) partially evaluated: !option no Evaluation Count:0 | yes Evaluation Count:3 |
| 0-3 |
55 | return; | 0 |
56 | | - |
57 | const QDialPrivate * const d = d_func(); | - |
58 | option->initFrom(this); | - |
59 | option->minimum = d->minimum; | - |
60 | option->maximum = d->maximum; | - |
61 | option->sliderPosition = d->position; | - |
62 | option->sliderValue = d->value; | - |
63 | option->singleStep = d->singleStep; | - |
64 | option->pageStep = d->pageStep; | - |
65 | option->upsideDown = !d->invertedAppearance; | - |
66 | option->notchTarget = d->target; | - |
67 | option->dialWrapping = d->wrapping; | - |
68 | option->subControls = QStyle::SC_All; | - |
69 | option->activeSubControls = QStyle::SC_None; | - |
70 | if (!d->showNotches) { partially evaluated: !d->showNotches yes Evaluation Count:3 | no Evaluation Count:0 |
| 0-3 |
71 | option->subControls &= ~QStyle::SC_DialTickmarks; | - |
72 | option->tickPosition = QSlider::TicksAbove; | - |
73 | } else { executed: } Execution Count:3 | 3 |
74 | option->tickPosition = QSlider::NoTicks; | - |
75 | } | 0 |
76 | option->tickInterval = notchSize(); | - |
77 | } executed: } Execution Count:3 | 3 |
78 | | - |
79 | int QDialPrivate::valueFromPoint(const QPoint &p) const | - |
80 | { | - |
81 | const QDial * const q = q_func(); | - |
82 | double yy = (double)q->height()/2.0 - p.y(); | - |
83 | double xx = (double)p.x() - q->width()/2.0; | - |
84 | double a = (xx || yy) ? qAtan2(yy, xx) : 0; evaluated: xx yes Evaluation Count:3 | yes Evaluation Count:1 |
partially evaluated: yy yes Evaluation Count:1 | no Evaluation Count:0 |
| 0-3 |
85 | | - |
86 | if (a < Q_PI / -2) partially evaluated: a < Q_PI / -2 no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
87 | a = a + Q_PI * 2; never executed: a = a + Q_PI * 2; | 0 |
88 | | - |
89 | int dist = 0; | - |
90 | int minv = minimum, maxv = maximum; | - |
91 | | - |
92 | if (minimum < 0) { partially evaluated: minimum < 0 no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
93 | dist = -minimum; | - |
94 | minv = 0; | - |
95 | maxv = maximum + dist; | - |
96 | } | 0 |
97 | | - |
98 | int r = maxv - minv; | - |
99 | int v; | - |
100 | if (wrapping) partially evaluated: wrapping no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
101 | 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 |
102 | else | - |
103 | 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 |
104 | | - |
105 | if (dist > 0) partially evaluated: dist > 0 no Evaluation Count:0 | yes Evaluation Count:4 |
| 0-4 |
106 | v -= dist; never executed: v -= dist; | 0 |
107 | | - |
108 | return !invertedAppearance ? bound(v) : maximum - bound(v); executed: return !invertedAppearance ? bound(v) : maximum - bound(v); Execution Count:4 | 4 |
109 | } | - |
110 | QDial::QDial(QWidget *parent) | - |
111 | : QAbstractSlider(*new QDialPrivate, parent) | - |
112 | { | - |
113 | QDialPrivate * const d = d_func(); | - |
114 | d->init(); | - |
115 | } executed: } Execution Count:7 | 7 |
116 | | - |
117 | | - |
118 | | - |
119 | | - |
120 | QDial::~QDial() | - |
121 | { | - |
122 | } | - |
123 | | - |
124 | | - |
125 | void QDial::resizeEvent(QResizeEvent *e) | - |
126 | { | - |
127 | QWidget::resizeEvent(e); | - |
128 | } executed: } Execution Count:7 | 7 |
129 | | - |
130 | | - |
131 | | - |
132 | | - |
133 | | - |
134 | void QDial::paintEvent(QPaintEvent *) | - |
135 | { | - |
136 | QStylePainter p(this); | - |
137 | QStyleOptionSlider option; | - |
138 | initStyleOption(&option); | - |
139 | p.drawComplexControl(QStyle::CC_Dial, option); | - |
140 | } executed: } Execution Count:3 | 3 |
141 | | - |
142 | | - |
143 | | - |
144 | | - |
145 | | - |
146 | void QDial::mousePressEvent(QMouseEvent *e) | - |
147 | { | - |
148 | QDialPrivate * const d = d_func(); | - |
149 | if (d->maximum == d->minimum || partially evaluated: d->maximum == d->minimum no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
150 | (e->button() != Qt::LeftButton) || partially evaluated: (e->button() != Qt::LeftButton) no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
151 | (e->buttons() ^ e->button())) { partially evaluated: (e->buttons() ^ e->button()) no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
152 | e->ignore(); | - |
153 | return; | 0 |
154 | } | - |
155 | e->accept(); | - |
156 | setSliderPosition(d->valueFromPoint(e->pos())); | - |
157 | | - |
158 | | - |
159 | | - |
160 | | - |
161 | setSliderDown(true); | - |
162 | } executed: } Execution Count:1 | 1 |
163 | | - |
164 | | - |
165 | | - |
166 | | - |
167 | | - |
168 | | - |
169 | void QDial::mouseReleaseEvent(QMouseEvent * e) | - |
170 | { | - |
171 | QDialPrivate * const d = d_func(); | - |
172 | if (e->buttons() & (~e->button()) || partially evaluated: e->buttons() & (~e->button()) no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
173 | (e->button() != Qt::LeftButton)) { partially evaluated: (e->button() != Qt::LeftButton) no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
174 | e->ignore(); | - |
175 | return; | 0 |
176 | } | - |
177 | e->accept(); | - |
178 | setValue(d->valueFromPoint(e->pos())); | - |
179 | setSliderDown(false); | - |
180 | } executed: } Execution Count:1 | 1 |
181 | | - |
182 | | - |
183 | | - |
184 | | - |
185 | | - |
186 | | - |
187 | void QDial::mouseMoveEvent(QMouseEvent * e) | - |
188 | { | - |
189 | QDialPrivate * const d = d_func(); | - |
190 | if (!(e->buttons() & Qt::LeftButton)) { partially evaluated: !(e->buttons() & Qt::LeftButton) no Evaluation Count:0 | yes Evaluation Count:2 |
| 0-2 |
191 | e->ignore(); | - |
192 | return; | 0 |
193 | } | - |
194 | e->accept(); | - |
195 | d->doNotEmit = true; | - |
196 | setSliderPosition(d->valueFromPoint(e->pos())); | - |
197 | d->doNotEmit = false; | - |
198 | } executed: } Execution Count:2 | 2 |
199 | | - |
200 | | - |
201 | | - |
202 | | - |
203 | | - |
204 | | - |
205 | void QDial::sliderChange(SliderChange change) | - |
206 | { | - |
207 | QAbstractSlider::sliderChange(change); | - |
208 | } executed: } Execution Count:31 | 31 |
209 | | - |
210 | void QDial::setWrapping(bool enable) | - |
211 | { | - |
212 | QDialPrivate * const d = d_func(); | - |
213 | if (d->wrapping == enable) evaluated: d->wrapping == enable yes Evaluation Count:1 | yes Evaluation Count:4 |
| 1-4 |
214 | return; executed: return; Execution Count:1 | 1 |
215 | d->wrapping = enable; | - |
216 | update(); | - |
217 | } executed: } Execution Count:4 | 4 |
218 | bool QDial::wrapping() const | - |
219 | { | - |
220 | const QDialPrivate * const d = d_func(); | - |
221 | return d->wrapping; executed: return d->wrapping; Execution Count:2 | 2 |
222 | } | - |
223 | int QDial::notchSize() const | - |
224 | { | - |
225 | const QDialPrivate * const d = d_func(); | - |
226 | | - |
227 | int r = qMin(width(), height())/2; | - |
228 | | - |
229 | int l = (int)(r * (d->wrapping ? 6 : 5) * Q_PI / 6); | - |
230 | | - |
231 | if (d->maximum > d->minimum + d->pageStep) partially evaluated: d->maximum > d->minimum + d->pageStep yes Evaluation Count:3 | no Evaluation Count:0 |
| 0-3 |
232 | 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 |
233 | | - |
234 | l = l * d->singleStep / (d->pageStep ? d->pageStep : 1); partially evaluated: d->pageStep yes Evaluation Count:3 | no Evaluation Count:0 |
| 0-3 |
235 | if (l < 1) evaluated: l < 1 yes Evaluation Count:1 | yes Evaluation Count:2 |
| 1-2 |
236 | l = 1; executed: l = 1; Execution Count:1 | 1 |
237 | | - |
238 | l = (int)(0.5 + d->target / l); | - |
239 | | - |
240 | if (!l) partially evaluated: !l no Evaluation Count:0 | yes Evaluation Count:3 |
| 0-3 |
241 | l = 1; | 0 |
242 | return d->singleStep * l; executed: return d->singleStep * l; Execution Count:3 | 3 |
243 | } | - |
244 | | - |
245 | void QDial::setNotchTarget(double target) | - |
246 | { | - |
247 | QDialPrivate * const d = d_func(); | - |
248 | d->target = target; | - |
249 | update(); | - |
250 | } | 0 |
251 | qreal QDial::notchTarget() const | - |
252 | { | - |
253 | const QDialPrivate * const d = d_func(); | - |
254 | return d->target; never executed: return d->target; | 0 |
255 | } | - |
256 | | - |
257 | | - |
258 | void QDial::setNotchesVisible(bool visible) | - |
259 | { | - |
260 | QDialPrivate * const d = d_func(); | - |
261 | d->showNotches = visible; | - |
262 | update(); | - |
263 | } executed: } Execution Count:2 | 2 |
264 | bool QDial::notchesVisible() const | - |
265 | { | - |
266 | const QDialPrivate * const d = d_func(); | - |
267 | return d->showNotches; executed: return d->showNotches; Execution Count:2 | 2 |
268 | } | - |
269 | | - |
270 | | - |
271 | | - |
272 | | - |
273 | | - |
274 | QSize QDial::minimumSizeHint() const | - |
275 | { | - |
276 | return QSize(50, 50); executed: return QSize(50, 50); Execution Count:2 | 2 |
277 | } | - |
278 | | - |
279 | | - |
280 | | - |
281 | | - |
282 | | - |
283 | QSize QDial::sizeHint() const | - |
284 | { | - |
285 | return QSize(100, 100).expandedTo(QApplication::globalStrut()); executed: return QSize(100, 100).expandedTo(QApplication::globalStrut()); Execution Count:5 | 5 |
286 | } | - |
287 | | - |
288 | | - |
289 | | - |
290 | | - |
291 | bool QDial::event(QEvent *e) | - |
292 | { | - |
293 | return QAbstractSlider::event(e); executed: return QAbstractSlider::event(e); Execution Count:74 | 74 |
294 | } | - |
295 | | - |
296 | | - |
297 | | - |
| | |