widgets/qcombobox.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8 -
9 -
10 -
11 -
12 -
13 -
14 -
15QComboBoxPrivate::QComboBoxPrivate() -
16 : QWidgetPrivate(), -
17 model(0), -
18 lineEdit(0), -
19 container(0), -
20 insertPolicy(QComboBox::InsertAtBottom), -
21 sizeAdjustPolicy(QComboBox::AdjustToContentsOnFirstShow), -
22 minimumContentsLength(0), -
23 shownOnce(false), -
24 autoCompletion(true), -
25 duplicatesEnabled(false), -
26 frame(true), -
27 maxVisibleItems(10), -
28 maxCount(2147483647), -
29 modelColumn(0), -
30 inserting(false), -
31 arrowState(QStyle::State_None), -
32 hoverControl(QStyle::SC_None), -
33 autoCompletionCaseSensitivity(Qt::CaseInsensitive), -
34 indexBeforeChange(-1) -
35 -
36 , completer(0) -
37 -
38{ -
39}
executed: }
Execution Count:558
558
40 -
41QStyleOptionMenuItem QComboMenuDelegate::getStyleOption(const QStyleOptionViewItem &option, -
42 const QModelIndex &index) const -
43{ -
44 QStyleOptionMenuItem menuOption; -
45 -
46 QPalette resolvedpalette = option.palette.resolve(QApplication::palette("QMenu")); -
47 QVariant value = index.data(Qt::ForegroundRole); -
48 if (value.canConvert<QBrush>()) {
never evaluated: value.canConvert<QBrush>()
0
49 resolvedpalette.setBrush(QPalette::WindowText, qvariant_cast<QBrush>(value)); -
50 resolvedpalette.setBrush(QPalette::ButtonText, qvariant_cast<QBrush>(value)); -
51 resolvedpalette.setBrush(QPalette::Text, qvariant_cast<QBrush>(value)); -
52 }
never executed: }
0
53 menuOption.palette = resolvedpalette; -
54 menuOption.state = QStyle::State_None; -
55 if (mCombo->window()->isActiveWindow())
never evaluated: mCombo->window()->isActiveWindow()
0
56 menuOption.state = QStyle::State_Active;
never executed: menuOption.state = QStyle::State_Active;
0
57 if ((option.state & QStyle::State_Enabled) && (index.model()->flags(index) & Qt::ItemIsEnabled))
never evaluated: (option.state & QStyle::State_Enabled)
never evaluated: (index.model()->flags(index) & Qt::ItemIsEnabled)
0
58 menuOption.state |= QStyle::State_Enabled;
never executed: menuOption.state |= QStyle::State_Enabled;
0
59 else -
60 menuOption.palette.setCurrentColorGroup(QPalette::Disabled);
never executed: menuOption.palette.setCurrentColorGroup(QPalette::Disabled);
0
61 if (option.state & QStyle::State_Selected)
never evaluated: option.state & QStyle::State_Selected
0
62 menuOption.state |= QStyle::State_Selected;
never executed: menuOption.state |= QStyle::State_Selected;
0
63 menuOption.checkType = QStyleOptionMenuItem::NonExclusive; -
64 menuOption.checked = mCombo->currentIndex() == index.row(); -
65 if (QComboBoxDelegate::isSeparator(index))
never evaluated: QComboBoxDelegate::isSeparator(index)
0
66 menuOption.menuItemType = QStyleOptionMenuItem::Separator;
never executed: menuOption.menuItemType = QStyleOptionMenuItem::Separator;
0
67 else -
68 menuOption.menuItemType = QStyleOptionMenuItem::Normal;
never executed: menuOption.menuItemType = QStyleOptionMenuItem::Normal;
0
69 -
70 QVariant variant = index.model()->data(index, Qt::DecorationRole); -
71 switch (variant.type()) { -
72 case QVariant::Icon: -
73 menuOption.icon = qvariant_cast<QIcon>(variant); -
74 break;
never executed: break;
0
75 case QVariant::Color: { -
76 static QPixmap pixmap(option.decorationSize); -
77 pixmap.fill(qvariant_cast<QColor>(variant)); -
78 menuOption.icon = pixmap; -
79 break; }
never executed: break;
0
80 default: -
81 menuOption.icon = qvariant_cast<QPixmap>(variant); -
82 break;
never executed: break;
0
83 } -
84 if (index.data(Qt::BackgroundRole).canConvert<QBrush>()) {
never evaluated: index.data(Qt::BackgroundRole).canConvert<QBrush>()
0
85 menuOption.palette.setBrush(QPalette::All, QPalette::Background, -
86 qvariant_cast<QBrush>(index.data(Qt::BackgroundRole))); -
87 }
never executed: }
0
88 menuOption.text = index.model()->data(index, Qt::DisplayRole).toString() -
89 .replace(QLatin1Char('&'), QLatin1String("&&")); -
90 menuOption.tabWidth = 0; -
91 menuOption.maxIconWidth = option.decorationSize.width() + 4; -
92 menuOption.menuRect = option.rect; -
93 menuOption.rect = option.rect; -
94 -
95 -
96 if (mCombo->testAttribute(Qt::WA_SetFont)
never evaluated: mCombo->testAttribute(Qt::WA_SetFont)
0
97 || mCombo->testAttribute(Qt::WA_MacSmallSize)
never evaluated: mCombo->testAttribute(Qt::WA_MacSmallSize)
0
98 || mCombo->testAttribute(Qt::WA_MacMiniSize)
never evaluated: mCombo->testAttribute(Qt::WA_MacMiniSize)
0
99 || mCombo->font() != qt_app_fonts_hash()->value("QComboBox", QFont()))
never evaluated: mCombo->font() != qt_app_fonts_hash()->value("QComboBox", QFont())
0
100 menuOption.font = mCombo->font();
never executed: menuOption.font = mCombo->font();
0
101 else -
102 menuOption.font = qt_app_fonts_hash()->value("QComboMenuItem", mCombo->font());
never executed: menuOption.font = qt_app_fonts_hash()->value("QComboMenuItem", mCombo->font());
0
103 -
104 menuOption.fontMetrics = QFontMetrics(menuOption.font); -
105 -
106 return menuOption;
never executed: return menuOption;
0
107} -
108void QComboBoxPrivate::updateArrow(QStyle::StateFlag state) -
109{ -
110 QComboBox * const q = q_func(); -
111 if (arrowState == state)
partially evaluated: arrowState == state
TRUEFALSE
yes
Evaluation Count:133
no
Evaluation Count:0
0-133
112 return;
executed: return;
Execution Count:133
133
113 arrowState = state; -
114 QStyleOptionComboBox opt; -
115 q->initStyleOption(&opt); -
116 q->update(q->style()->subControlRect(QStyle::CC_ComboBox, &opt, QStyle::SC_ComboBoxArrow, q)); -
117}
never executed: }
0
118 -
119void QComboBoxPrivate::_q_modelReset() -
120{ -
121 QComboBox * const q = q_func(); -
122 if (lineEdit) {
never evaluated: lineEdit
0
123 lineEdit->setText(QString()); -
124 updateLineEditGeometry(); -
125 }
never executed: }
0
126 if (currentIndex.row() != indexBeforeChange)
never evaluated: currentIndex.row() != indexBeforeChange
0
127 _q_emitCurrentIndexChanged(currentIndex);
never executed: _q_emitCurrentIndexChanged(currentIndex);
0
128 q->update(); -
129}
never executed: }
0
130 -
131void QComboBoxPrivate::_q_modelDestroyed() -
132{ -
133 model = QAbstractItemModelPrivate::staticEmptyModel(); -
134}
never executed: }
0
135 -
136 -
137 -
138QRect QComboBoxPrivate::popupGeometry(int screen) const -
139{ -
140 bool useFullScreenForPopupMenu = false; -
141 if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
partially evaluated: const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
142 useFullScreenForPopupMenu = theme->themeHint(QPlatformTheme::UseFullScreenForPopupMenu).toBool();
executed: useFullScreenForPopupMenu = theme->themeHint(QPlatformTheme::UseFullScreenForPopupMenu).toBool();
Execution Count:1
1
143 return useFullScreenForPopupMenu ? 1
144 QApplication::desktop()->screenGeometry(screen) : 1
145 QApplication::desktop()->availableGeometry(screen);
executed: return useFullScreenForPopupMenu ? QApplication::desktop()->screenGeometry(screen) : QApplication::desktop()->availableGeometry(screen);
Execution Count:1
1
146} -
147 -
148bool QComboBoxPrivate::updateHoverControl(const QPoint &pos) -
149{ -
150 -
151 QComboBox * const q = q_func(); -
152 QRect lastHoverRect = hoverRect; -
153 QStyle::SubControl lastHoverControl = hoverControl; -
154 bool doesHover = q->testAttribute(Qt::WA_Hover); -
155 if (lastHoverControl != newHoverControl(pos) && doesHover) {
never evaluated: lastHoverControl != newHoverControl(pos)
never evaluated: doesHover
0
156 q->update(lastHoverRect); -
157 q->update(hoverRect); -
158 return true;
never executed: return true;
0
159 } -
160 return !doesHover;
never executed: return !doesHover;
0
161} -
162 -
163QStyle::SubControl QComboBoxPrivate::newHoverControl(const QPoint &pos) -
164{ -
165 QComboBox * const q = q_func(); -
166 QStyleOptionComboBox opt; -
167 q->initStyleOption(&opt); -
168 opt.subControls = QStyle::SC_All; -
169 hoverControl = q->style()->hitTestComplexControl(QStyle::CC_ComboBox, &opt, pos, q); -
170 hoverRect = (hoverControl != QStyle::SC_None)
never evaluated: (hoverControl != QStyle::SC_None)
0
171 ? q->style()->subControlRect(QStyle::CC_ComboBox, &opt, hoverControl, q) -
172 : QRect(); -
173 return hoverControl;
never executed: return hoverControl;
0
174} -
175 -
176 -
177 -
178 -
179 -
180int QComboBoxPrivate::computeWidthHint() const -
181{ -
182 const QComboBox * const q = q_func(); -
183 -
184 int width = 0; -
185 const int count = q->count(); -
186 const int iconWidth = q->iconSize().width() + 4; -
187 const QFontMetrics &fontMetrics = q->fontMetrics(); -
188 -
189 for (int i = 0; i < count; ++i) {
never evaluated: i < count
0
190 const int textWidth = fontMetrics.width(q->itemText(i)); -
191 if (q->itemIcon(i).isNull())
never evaluated: q->itemIcon(i).isNull()
0
192 width = (qMax(width, textWidth));
never executed: width = (qMax(width, textWidth));
0
193 else -
194 width = (qMax(width, textWidth + iconWidth));
never executed: width = (qMax(width, textWidth + iconWidth));
0
195 } -
196 -
197 QStyleOptionComboBox opt; -
198 q->initStyleOption(&opt); -
199 QSize tmp(width, 0); -
200 tmp = q->style()->sizeFromContents(QStyle::CT_ComboBox, &opt, tmp, q); -
201 return tmp.width();
never executed: return tmp.width();
0
202} -
203 -
204QSize QComboBoxPrivate::recomputeSizeHint(QSize &sh) const -
205{ -
206 const QComboBox * const q = q_func(); -
207 if (!sh.isValid()) {
evaluated: !sh.isValid()
TRUEFALSE
yes
Evaluation Count:995
yes
Evaluation Count:196
196-995
208 bool hasIcon = sizeAdjustPolicy == QComboBox::AdjustToMinimumContentsLengthWithIcon ? true : false;
partially evaluated: sizeAdjustPolicy == QComboBox::AdjustToMinimumContentsLengthWithIcon
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:995
0-995
209 int count = q->count(); -
210 QSize iconSize = q->iconSize(); -
211 const QFontMetrics &fm = q->fontMetrics(); -
212 -
213 -
214 if (&sh == &sizeHint || minimumContentsLength == 0) {
evaluated: &sh == &sizeHint
TRUEFALSE
yes
Evaluation Count:598
yes
Evaluation Count:397
partially evaluated: minimumContentsLength == 0
TRUEFALSE
yes
Evaluation Count:397
no
Evaluation Count:0
0-598
215 switch (sizeAdjustPolicy) { -
216 case QComboBox::AdjustToContents: -
217 case QComboBox::AdjustToContentsOnFirstShow: -
218 if (count == 0) {
evaluated: count == 0
TRUEFALSE
yes
Evaluation Count:170
yes
Evaluation Count:447
170-447
219 sh.rwidth() = 7 * fm.width(QLatin1Char('x')); -
220 } else {
executed: }
Execution Count:170
170
221 for (int i = 0; i < count; ++i) {
evaluated: i < count
TRUEFALSE
yes
Evaluation Count:674
yes
Evaluation Count:447
447-674
222 if (!q->itemIcon(i).isNull()) {
evaluated: !q->itemIcon(i).isNull()
TRUEFALSE
yes
Evaluation Count:414
yes
Evaluation Count:260
260-414
223 hasIcon = true; -
224 sh.setWidth(qMax(sh.width(), fm.boundingRect(q->itemText(i)).width() + iconSize.width() + 4)); -
225 } else {
executed: }
Execution Count:414
414
226 sh.setWidth(qMax(sh.width(), fm.boundingRect(q->itemText(i)).width())); -
227 }
executed: }
Execution Count:260
260
228 } -
229 }
executed: }
Execution Count:447
447
230 break;
executed: break;
Execution Count:617
617
231 case QComboBox::AdjustToMinimumContentsLength: -
232 for (int i = 0; i < count && !hasIcon; ++i)
evaluated: i < count
TRUEFALSE
yes
Evaluation Count:378
yes
Evaluation Count:378
partially evaluated: !hasIcon
TRUEFALSE
yes
Evaluation Count:378
no
Evaluation Count:0
0-378
233 hasIcon = !q->itemIcon(i).isNull();
executed: hasIcon = !q->itemIcon(i).isNull();
Execution Count:378
378
234 default:
code before this statement executed: default:
Execution Count:378
378
235 ; -
236 }
executed: }
Execution Count:378
378
237 } else {
executed: }
Execution Count:995
995
238 for (int i = 0; i < count && !hasIcon; ++i)
never evaluated: i < count
never evaluated: !hasIcon
0
239 hasIcon = !q->itemIcon(i).isNull();
never executed: hasIcon = !q->itemIcon(i).isNull();
0
240 }
never executed: }
0
241 if (minimumContentsLength > 0)
partially evaluated: minimumContentsLength > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:995
0-995
242 sh.setWidth(qMax(sh.width(), minimumContentsLength * fm.width(QLatin1Char('X')) + (hasIcon ? iconSize.width() + 4 : 0)));
never executed: sh.setWidth(qMax(sh.width(), minimumContentsLength * fm.width(QLatin1Char('X')) + (hasIcon ? iconSize.width() + 4 : 0)));
0
243 -
244 -
245 -
246 sh.setHeight(qMax(qCeil(QFontMetricsF(fm).height()), 14) + 2); -
247 if (hasIcon) {
evaluated: hasIcon
TRUEFALSE
yes
Evaluation Count:414
yes
Evaluation Count:581
414-581
248 sh.setHeight(qMax(sh.height(), iconSize.height() + 2)); -
249 }
executed: }
Execution Count:414
414
250 -
251 -
252 QStyleOptionComboBox opt; -
253 q->initStyleOption(&opt); -
254 sh = q->style()->sizeFromContents(QStyle::CT_ComboBox, &opt, sh, q); -
255 }
executed: }
Execution Count:995
995
256 return sh.expandedTo(QApplication::globalStrut());
executed: return sh.expandedTo(QApplication::globalStrut());
Execution Count:1191
1191
257} -
258 -
259void QComboBoxPrivate::adjustComboBoxSize() -
260{ -
261 viewContainer()->adjustSizeTimer.start(20, container); -
262}
executed: }
Execution Count:189
189
263 -
264void QComboBoxPrivate::updateLayoutDirection() -
265{ -
266 const QComboBox * const q = q_func(); -
267 QStyleOptionComboBox opt; -
268 q->initStyleOption(&opt); -
269 Qt::LayoutDirection dir = Qt::LayoutDirection( -
270 q->style()->styleHint(QStyle::SH_ComboBox_LayoutDirection, &opt, q)); -
271 if (lineEdit)
evaluated: lineEdit
TRUEFALSE
yes
Evaluation Count:152
yes
Evaluation Count:339
152-339
272 lineEdit->setLayoutDirection(dir);
executed: lineEdit->setLayoutDirection(dir);
Execution Count:152
152
273 if (container)
partially evaluated: container
TRUEFALSE
yes
Evaluation Count:491
no
Evaluation Count:0
0-491
274 container->setLayoutDirection(dir);
executed: container->setLayoutDirection(dir);
Execution Count:491
491
275}
executed: }
Execution Count:491
491
276 -
277 -
278void QComboBoxPrivateContainer::timerEvent(QTimerEvent *timerEvent) -
279{ -
280 if (timerEvent->timerId() == adjustSizeTimer.timerId()) {
never evaluated: timerEvent->timerId() == adjustSizeTimer.timerId()
0
281 adjustSizeTimer.stop(); -
282 if (combo->sizeAdjustPolicy() == QComboBox::AdjustToContents) {
never evaluated: combo->sizeAdjustPolicy() == QComboBox::AdjustToContents
0
283 combo->updateGeometry(); -
284 combo->adjustSize(); -
285 combo->update(); -
286 }
never executed: }
0
287 }
never executed: }
0
288}
never executed: }
0
289 -
290void QComboBoxPrivateContainer::resizeEvent(QResizeEvent *e) -
291{ -
292 QStyleOptionComboBox opt = comboStyleOption(); -
293 if (combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo)) {
partially evaluated: combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
294 QStyleOption myOpt; -
295 myOpt.initFrom(this); -
296 QStyleHintReturnMask mask; -
297 if (combo->style()->styleHint(QStyle::SH_Menu_Mask, &myOpt, this, &mask)) {
never evaluated: combo->style()->styleHint(QStyle::SH_Menu_Mask, &myOpt, this, &mask)
0
298 setMask(mask.region); -
299 }
never executed: }
0
300 } else {
never executed: }
0
301 clearMask(); -
302 }
executed: }
Execution Count:1
1
303 QFrame::resizeEvent(e); -
304}
executed: }
Execution Count:1
1
305 -
306void QComboBoxPrivateContainer::leaveEvent(QEvent *) -
307{ -
308 -
309 -
310 -
311 -
312 -
313 -
314 -
315} -
316 -
317QComboBoxPrivateContainer::QComboBoxPrivateContainer(QAbstractItemView *itemView, QComboBox *parent) -
318 : QFrame(parent, Qt::Popup), combo(parent), view(0), top(0), bottom(0) -
319{ -
320 -
321 qt_noop(); -
322 qt_noop(); -
323 -
324 setAttribute(Qt::WA_WindowPropagation); -
325 setAttribute(Qt::WA_X11NetWmWindowTypeCombo); -
326 -
327 -
328 blockMouseReleaseTimer.setSingleShot(true); -
329 -
330 -
331 QBoxLayout *layout = new QBoxLayout(QBoxLayout::TopToBottom, this); -
332 layout->setSpacing(0); -
333 layout->setMargin(0); -
334 -
335 -
336 setItemView(itemView); -
337 -
338 -
339 QStyleOptionComboBox opt = comboStyleOption(); -
340 const bool usePopup = combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo); -
341 if (usePopup) {
partially evaluated: usePopup
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
342 top = new QComboBoxPrivateScroller(QAbstractSlider::SliderSingleStepSub, this); -
343 bottom = new QComboBoxPrivateScroller(QAbstractSlider::SliderSingleStepAdd, this); -
344 top->hide(); -
345 bottom->hide(); -
346 } else {
never executed: }
0
347 setLineWidth(1); -
348 }
executed: }
Execution Count:339
339
349 -
350 setFrameStyle(combo->style()->styleHint(QStyle::SH_ComboBox_PopupFrameStyle, &opt, combo)); -
351 -
352 if (top) {
partially evaluated: top
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
353 layout->insertWidget(0, top); -
354 connect(top, "2""doScroll(int)", this, "1""scrollItemView(int)"); -
355 }
never executed: }
0
356 if (bottom) {
partially evaluated: bottom
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
357 layout->addWidget(bottom); -
358 connect(bottom, "2""doScroll(int)", this, "1""scrollItemView(int)"); -
359 }
never executed: }
0
360 -
361 -
362 layout->insertSpacing(0, 0); -
363 layout->addSpacing(0); -
364 updateTopBottomMargin(); -
365}
executed: }
Execution Count:339
339
366 -
367void QComboBoxPrivateContainer::scrollItemView(int action) -
368{ -
369 -
370 if (view->verticalScrollBar())
never evaluated: view->verticalScrollBar()
0
371 view->verticalScrollBar()->triggerAction(static_cast<QAbstractSlider::SliderAction>(action));
never executed: view->verticalScrollBar()->triggerAction(static_cast<QAbstractSlider::SliderAction>(action));
0
372 -
373}
never executed: }
0
374 -
375 -
376 -
377 -
378void QComboBoxPrivateContainer::updateScrollers() -
379{ -
380 -
381 if (!top || !bottom)
partially evaluated: !top
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
never evaluated: !bottom
0-1
382 return;
executed: return;
Execution Count:1
1
383 -
384 if (isVisible() == false)
never evaluated: isVisible() == false
0
385 return;
never executed: return;
0
386 -
387 QStyleOptionComboBox opt = comboStyleOption(); -
388 if (combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo) &&
never evaluated: combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo)
0
389 view->verticalScrollBar()->minimum() < view->verticalScrollBar()->maximum()) {
never evaluated: view->verticalScrollBar()->minimum() < view->verticalScrollBar()->maximum()
0
390 -
391 bool needTop = view->verticalScrollBar()->value() -
392 > (view->verticalScrollBar()->minimum() + spacing()); -
393 bool needBottom = view->verticalScrollBar()->value() -
394 < (view->verticalScrollBar()->maximum() - spacing()*2); -
395 if (needTop)
never evaluated: needTop
0
396 top->show();
never executed: top->show();
0
397 else -
398 top->hide();
never executed: top->hide();
0
399 if (needBottom)
never evaluated: needBottom
0
400 bottom->show();
never executed: bottom->show();
0
401 else -
402 bottom->hide();
never executed: bottom->hide();
0
403 } else { -
404 top->hide(); -
405 bottom->hide(); -
406 }
never executed: }
0
407 -
408} -
409 -
410 -
411 -
412 -
413void QComboBoxPrivateContainer::viewDestroyed() -
414{ -
415 view = 0; -
416 setItemView(new QComboBoxListView()); -
417}
never executed: }
0
418 -
419 -
420 -
421 -
422QAbstractItemView *QComboBoxPrivateContainer::itemView() const -
423{ -
424 return view;
executed: return view;
Execution Count:3409
3409
425} -
426 -
427 -
428 -
429 -
430void QComboBoxPrivateContainer::setItemView(QAbstractItemView *itemView) -
431{ -
432 qt_noop(); -
433 -
434 -
435 if (view) {
partially evaluated: view
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
436 view->removeEventFilter(this); -
437 view->viewport()->removeEventFilter(this); -
438 -
439 disconnect(view->verticalScrollBar(), "2""valueChanged(int)", -
440 this, "1""updateScrollers()"); -
441 disconnect(view->verticalScrollBar(), "2""rangeChanged(int,int)", -
442 this, "1""updateScrollers()"); -
443 -
444 disconnect(view, "2""destroyed()", -
445 this, "1""viewDestroyed()"); -
446 -
447 delete view; -
448 view = 0; -
449 }
never executed: }
0
450 -
451 -
452 view = itemView; -
453 view->setParent(this); -
454 view->setAttribute(Qt::WA_MacShowFocusRect, false); -
455 qobject_cast<QBoxLayout*>(layout())->insertWidget(top ? 2 : 0, view); -
456 view->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); -
457 view->installEventFilter(this); -
458 view->viewport()->installEventFilter(this); -
459 view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -
460 QStyleOptionComboBox opt = comboStyleOption(); -
461 const bool usePopup = combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo); -
462 -
463 if (usePopup)
partially evaluated: usePopup
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
464 view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
never executed: view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
0
465 -
466 if (combo->style()->styleHint(QStyle::SH_ComboBox_ListMouseTracking, &opt, combo) ||
partially evaluated: combo->style()->styleHint(QStyle::SH_ComboBox_ListMouseTracking, &opt, combo)
TRUEFALSE
yes
Evaluation Count:339
no
Evaluation Count:0
0-339
467 usePopup) {
never evaluated: usePopup
0
468 view->setMouseTracking(true); -
469 }
executed: }
Execution Count:339
339
470 view->setSelectionMode(QAbstractItemView::SingleSelection); -
471 view->setFrameStyle(QFrame::NoFrame); -
472 view->setLineWidth(0); -
473 view->setEditTriggers(QAbstractItemView::NoEditTriggers); -
474 -
475 connect(view->verticalScrollBar(), "2""valueChanged(int)", -
476 this, "1""updateScrollers()"); -
477 connect(view->verticalScrollBar(), "2""rangeChanged(int,int)", -
478 this, "1""updateScrollers()"); -
479 -
480 connect(view, "2""destroyed()", -
481 this, "1""viewDestroyed()"); -
482}
executed: }
Execution Count:339
339
483 -
484 -
485 -
486 -
487int QComboBoxPrivateContainer::spacing() const -
488{ -
489 QListView *lview = qobject_cast<QListView*>(view); -
490 if (lview)
partially evaluated: lview
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
491 return lview->spacing();
executed: return lview->spacing();
Execution Count:4
4
492 -
493 QTableView *tview = qobject_cast<QTableView*>(view); -
494 if (tview)
never evaluated: tview
0
495 return tview->showGrid() ? 1 : 0;
never executed: return tview->showGrid() ? 1 : 0;
0
496 -
497 return 0;
never executed: return 0;
0
498} -
499 -
500void QComboBoxPrivateContainer::updateTopBottomMargin() -
501{ -
502 if (!layout() || layout()->count() < 1)
partially evaluated: !layout()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:489
partially evaluated: layout()->count() < 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:489
0-489
503 return;
never executed: return;
0
504 -
505 QBoxLayout *boxLayout = qobject_cast<QBoxLayout *>(layout()); -
506 if (!boxLayout)
partially evaluated: !boxLayout
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:489
0-489
507 return;
never executed: return;
0
508 -
509 const QStyleOptionComboBox opt = comboStyleOption(); -
510 const bool usePopup = combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo); -
511 const int margin = usePopup ? combo->style()->pixelMetric(QStyle::PM_MenuVMargin, &opt, combo) : 0;
partially evaluated: usePopup
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:489
0-489
512 -
513 QSpacerItem *topSpacer = boxLayout->itemAt(0)->spacerItem(); -
514 if (topSpacer)
partially evaluated: topSpacer
TRUEFALSE
yes
Evaluation Count:489
no
Evaluation Count:0
0-489
515 topSpacer->changeSize(0, margin, QSizePolicy::Minimum, QSizePolicy::Fixed);
executed: topSpacer->changeSize(0, margin, QSizePolicy::Minimum, QSizePolicy::Fixed);
Execution Count:489
489
516 -
517 QSpacerItem *bottomSpacer = boxLayout->itemAt(boxLayout->count() - 1)->spacerItem(); -
518 if (bottomSpacer && bottomSpacer != topSpacer)
partially evaluated: bottomSpacer
TRUEFALSE
yes
Evaluation Count:489
no
Evaluation Count:0
partially evaluated: bottomSpacer != topSpacer
TRUEFALSE
yes
Evaluation Count:489
no
Evaluation Count:0
0-489
519 bottomSpacer->changeSize(0, margin, QSizePolicy::Minimum, QSizePolicy::Fixed);
executed: bottomSpacer->changeSize(0, margin, QSizePolicy::Minimum, QSizePolicy::Fixed);
Execution Count:489
489
520 -
521 boxLayout->invalidate(); -
522}
executed: }
Execution Count:489
489
523 -
524void QComboBoxPrivateContainer::changeEvent(QEvent *e) -
525{ -
526 if (e->type() == QEvent::StyleChange) {
evaluated: e->type() == QEvent::StyleChange
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:361
2-361
527 QStyleOptionComboBox opt = comboStyleOption(); -
528 view->setMouseTracking(combo->style()->styleHint(QStyle::SH_ComboBox_ListMouseTracking, &opt, combo) || -
529 combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo)); -
530 setFrameStyle(combo->style()->styleHint(QStyle::SH_ComboBox_PopupFrameStyle, &opt, combo)); -
531 }
executed: }
Execution Count:2
2
532 -
533 QWidget::changeEvent(e); -
534}
executed: }
Execution Count:363
363
535 -
536 -
537bool QComboBoxPrivateContainer::eventFilter(QObject *o, QEvent *e) -
538{ -
539 switch (e->type()) { -
540 case QEvent::ShortcutOverride: -
541 switch (static_cast<QKeyEvent*>(e)->key()) { -
542 case Qt::Key_Enter: -
543 case Qt::Key_Return: -
544 -
545 -
546 -
547 if (view->currentIndex().isValid() && (view->currentIndex().flags() & Qt::ItemIsEnabled) ) {
never evaluated: view->currentIndex().isValid()
never evaluated: (view->currentIndex().flags() & Qt::ItemIsEnabled)
0
548 combo->hidePopup(); -
549 itemSelected(view->currentIndex()); -
550 }
never executed: }
0
551 return true;
never executed: return true;
0
552 case Qt::Key_Down: -
553 if (!(static_cast<QKeyEvent*>(e)->modifiers() & Qt::AltModifier))
never evaluated: !(static_cast<QKeyEvent*>(e)->modifiers() & Qt::AltModifier)
0
554 break;
never executed: break;
0
555 -
556 case Qt::Key_F4:
code before this statement never executed: case Qt::Key_F4:
0
557 case Qt::Key_Escape: -
558 combo->hidePopup(); -
559 return true;
never executed: return true;
0
560 default: -
561 break;
never executed: break;
0
562 } -
563 break;
never executed: break;
0
564 case QEvent::MouseMove: -
565 if (isVisible()) {
never evaluated: isVisible()
0
566 QMouseEvent *m = static_cast<QMouseEvent *>(e); -
567 QWidget *widget = static_cast<QWidget *>(o); -
568 QPoint vector = widget->mapToGlobal(m->pos()) - initialClickPosition; -
569 if (vector.manhattanLength() > 9 && blockMouseReleaseTimer.isActive())
never evaluated: vector.manhattanLength() > 9
never evaluated: blockMouseReleaseTimer.isActive()
0
570 blockMouseReleaseTimer.stop();
never executed: blockMouseReleaseTimer.stop();
0
571 QModelIndex indexUnderMouse = view->indexAt(m->pos()); -
572 if (indexUnderMouse.isValid()
never evaluated: indexUnderMouse.isValid()
0
573 && !QComboBoxDelegate::isSeparator(indexUnderMouse)) {
never evaluated: !QComboBoxDelegate::isSeparator(indexUnderMouse)
0
574 view->setCurrentIndex(indexUnderMouse); -
575 }
never executed: }
0
576 }
never executed: }
0
577 break;
never executed: break;
0
578 case QEvent::MouseButtonRelease: { -
579 QMouseEvent *m = static_cast<QMouseEvent *>(e); -
580 if (isVisible() && view->rect().contains(m->pos()) && view->currentIndex().isValid()
never evaluated: isVisible()
never evaluated: view->rect().contains(m->pos())
never evaluated: view->currentIndex().isValid()
0
581 && !blockMouseReleaseTimer.isActive()
never evaluated: !blockMouseReleaseTimer.isActive()
0
582 && (view->currentIndex().flags() & Qt::ItemIsEnabled)
never evaluated: (view->currentIndex().flags() & Qt::ItemIsEnabled)
0
583 && (view->currentIndex().flags() & Qt::ItemIsSelectable)) {
never evaluated: (view->currentIndex().flags() & Qt::ItemIsSelectable)
0
584 combo->hidePopup(); -
585 itemSelected(view->currentIndex()); -
586 return true;
never executed: return true;
0
587 } -
588 break;
never executed: break;
0
589 } -
590 default: -
591 break;
executed: break;
Execution Count:4192
4192
592 } -
593 return QFrame::eventFilter(o, e);
executed: return QFrame::eventFilter(o, e);
Execution Count:4192
4192
594} -
595 -
596void QComboBoxPrivateContainer::showEvent(QShowEvent *) -
597{ -
598 combo->update(); -
599}
executed: }
Execution Count:1
1
600 -
601void QComboBoxPrivateContainer::hideEvent(QHideEvent *) -
602{ -
603 resetButton(); -
604 combo->update(); -
605 -
606 -
607 -
608 -
609 if (QGraphicsProxyWidget *proxy = graphicsProxyWidget())
never evaluated: QGraphicsProxyWidget *proxy = graphicsProxyWidget()
0
610 proxy->hide();
never executed: proxy->hide();
0
611 -
612}
never executed: }
0
613 -
614void QComboBoxPrivateContainer::mousePressEvent(QMouseEvent *e) -
615{ -
616 -
617 QStyleOptionComboBox opt = comboStyleOption(); -
618 opt.subControls = QStyle::SC_All; -
619 opt.activeSubControls = QStyle::SC_ComboBoxArrow; -
620 QStyle::SubControl sc = combo->style()->hitTestComplexControl(QStyle::CC_ComboBox, &opt, -
621 combo->mapFromGlobal(e->globalPos()), -
622 combo); -
623 if ((combo->isEditable() && sc == QStyle::SC_ComboBoxArrow)
never evaluated: combo->isEditable()
never evaluated: sc == QStyle::SC_ComboBoxArrow
0
624 || (!combo->isEditable() && sc != QStyle::SC_None))
never evaluated: !combo->isEditable()
never evaluated: sc != QStyle::SC_None
0
625 setAttribute(Qt::WA_NoMouseReplay);
never executed: setAttribute(Qt::WA_NoMouseReplay);
0
626 combo->hidePopup(); -
627}
never executed: }
0
628 -
629void QComboBoxPrivateContainer::mouseReleaseEvent(QMouseEvent *e) -
630{ -
631 (void)e;; -
632 if (!blockMouseReleaseTimer.isActive()){
never evaluated: !blockMouseReleaseTimer.isActive()
0
633 combo->hidePopup(); -
634 resetButton(); -
635 }
never executed: }
0
636}
never executed: }
0
637 -
638QStyleOptionComboBox QComboBoxPrivateContainer::comboStyleOption() const -
639{ -
640 -
641 -
642 QStyleOptionComboBox opt; -
643 opt.initFrom(combo); -
644 opt.subControls = QStyle::SC_All; -
645 opt.activeSubControls = QStyle::SC_None; -
646 opt.editable = combo->isEditable(); -
647 return opt;
executed: return opt;
Execution Count:1170
1170
648} -
649QComboBox::QComboBox(QWidget *parent) -
650 : QWidget(*new QComboBoxPrivate(), parent, 0) -
651{ -
652 QComboBoxPrivate * const d = d_func(); -
653 d->init(); -
654}
executed: }
Execution Count:418
418
655 -
656 -
657 -
658 -
659QComboBox::QComboBox(QComboBoxPrivate &dd, QWidget *parent) -
660 : QWidget(dd, parent, 0) -
661{ -
662 QComboBoxPrivate * const d = d_func(); -
663 d->init(); -
664}
executed: }
Execution Count:140
140
665void QComboBoxPrivate::init() -
666{ -
667 QComboBox * const q = q_func(); -
668 q->setFocusPolicy(Qt::WheelFocus); -
669 -
670 q->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed, -
671 QSizePolicy::ComboBox)); -
672 setLayoutItemMargins(QStyle::SE_ComboBoxLayoutItem); -
673 q->setModel(new QStandardItemModel(0, 1, q)); -
674 if (!q->isEditable())
partially evaluated: !q->isEditable()
TRUEFALSE
yes
Evaluation Count:558
no
Evaluation Count:0
0-558
675 q->setAttribute(Qt::WA_InputMethodEnabled, false);
executed: q->setAttribute(Qt::WA_InputMethodEnabled, false);
Execution Count:558
558
676 else -
677 q->setAttribute(Qt::WA_InputMethodEnabled);
never executed: q->setAttribute(Qt::WA_InputMethodEnabled);
0
678} -
679 -
680QComboBoxPrivateContainer* QComboBoxPrivate::viewContainer() -
681{ -
682 if (container)
evaluated: container
TRUEFALSE
yes
Evaluation Count:2113
yes
Evaluation Count:339
339-2113
683 return container;
executed: return container;
Execution Count:2113
2113
684 -
685 QComboBox * const q = q_func(); -
686 container = new QComboBoxPrivateContainer(new QComboBoxListView(q), q); -
687 container->itemView()->setModel(model); -
688 container->itemView()->setTextElideMode(Qt::ElideMiddle); -
689 updateDelegate(true); -
690 updateLayoutDirection(); -
691 updateViewContainerPaletteAndOpacity(); -
692 QObject::connect(container, "2""itemSelected(QModelIndex)", -
693 q, "1""_q_itemSelected(QModelIndex)"); -
694 QObject::connect(container->itemView()->selectionModel(), -
695 "2""currentChanged(QModelIndex,QModelIndex)", -
696 q, "1""_q_emitHighlighted(QModelIndex)"); -
697 QObject::connect(container, "2""resetButton()", q, "1""_q_resetButton()"); -
698 return container;
executed: return container;
Execution Count:339
339
699} -
700 -
701 -
702void QComboBoxPrivate::_q_resetButton() -
703{ -
704 updateArrow(QStyle::State_None); -
705}
executed: }
Execution Count:132
132
706 -
707void QComboBoxPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight) -
708{ -
709 QComboBox * const q = q_func(); -
710 if (inserting || topLeft.parent() != root)
partially evaluated: inserting
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1550
partially evaluated: topLeft.parent() != root
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1550
0-1550
711 return;
never executed: return;
0
712 -
713 if (sizeAdjustPolicy == QComboBox::AdjustToContents) {
partially evaluated: sizeAdjustPolicy == QComboBox::AdjustToContents
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1550
0-1550
714 sizeHint = QSize(); -
715 adjustComboBoxSize(); -
716 q->updateGeometry(); -
717 }
never executed: }
0
718 -
719 if (currentIndex.row() >= topLeft.row() && currentIndex.row() <= bottomRight.row()) {
partially evaluated: currentIndex.row() >= topLeft.row()
TRUEFALSE
yes
Evaluation Count:1550
no
Evaluation Count:0
partially evaluated: currentIndex.row() <= bottomRight.row()
TRUEFALSE
yes
Evaluation Count:1550
no
Evaluation Count:0
0-1550
720 const QString text = q->itemText(currentIndex.row()); -
721 if (lineEdit) {
partially evaluated: lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1550
0-1550
722 lineEdit->setText(text); -
723 updateLineEditGeometry(); -
724 } else {
never executed: }
0
725 q->currentTextChanged(text); -
726 }
executed: }
Execution Count:1550
1550
727 q->update(); -
728 }
executed: }
Execution Count:1550
1550
729 -
730 QAccessibleEvent event(q, QAccessible::NameChanged); -
731 QAccessible::updateAccessibility(&event); -
732 -
733}
executed: }
Execution Count:1550
1550
734 -
735void QComboBoxPrivate::_q_rowsInserted(const QModelIndex &parent, int start, int end) -
736{ -
737 QComboBox * const q = q_func(); -
738 if (inserting || parent != root)
partially evaluated: inserting
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:702
partially evaluated: parent != root
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:702
0-702
739 return;
never executed: return;
0
740 -
741 if (sizeAdjustPolicy == QComboBox::AdjustToContents) {
partially evaluated: sizeAdjustPolicy == QComboBox::AdjustToContents
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:702
0-702
742 sizeHint = QSize(); -
743 adjustComboBoxSize(); -
744 q->updateGeometry(); -
745 }
never executed: }
0
746 -
747 -
748 if (start == 0 && (end - start + 1) == q->count() && !currentIndex.isValid()) {
evaluated: start == 0
TRUEFALSE
yes
Evaluation Count:592
yes
Evaluation Count:110
partially evaluated: (end - start + 1) == q->count()
TRUEFALSE
yes
Evaluation Count:592
no
Evaluation Count:0
partially evaluated: !currentIndex.isValid()
TRUEFALSE
yes
Evaluation Count:592
no
Evaluation Count:0
0-592
749 q->setCurrentIndex(0); -
750 -
751 } else if (currentIndex.row() != indexBeforeChange) {
executed: }
Execution Count:592
partially evaluated: currentIndex.row() != indexBeforeChange
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:110
0-592
752 q->update(); -
753 _q_emitCurrentIndexChanged(currentIndex); -
754 }
never executed: }
0
755} -
756 -
757void QComboBoxPrivate::_q_updateIndexBeforeChange() -
758{ -
759 indexBeforeChange = currentIndex.row(); -
760}
executed: }
Execution Count:901
901
761 -
762void QComboBoxPrivate::_q_rowsRemoved(const QModelIndex &parent, int , int ) -
763{ -
764 QComboBox * const q = q_func(); -
765 if (parent != root)
partially evaluated: parent != root
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:199
0-199
766 return;
never executed: return;
0
767 -
768 if (sizeAdjustPolicy == QComboBox::AdjustToContents) {
partially evaluated: sizeAdjustPolicy == QComboBox::AdjustToContents
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:199
0-199
769 sizeHint = QSize(); -
770 adjustComboBoxSize(); -
771 q->updateGeometry(); -
772 }
never executed: }
0
773 -
774 -
775 if (currentIndex.row() != indexBeforeChange) {
partially evaluated: currentIndex.row() != indexBeforeChange
TRUEFALSE
yes
Evaluation Count:199
no
Evaluation Count:0
0-199
776 if (!currentIndex.isValid() && q->count()) {
partially evaluated: !currentIndex.isValid()
TRUEFALSE
yes
Evaluation Count:199
no
Evaluation Count:0
partially evaluated: q->count()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:199
0-199
777 q->setCurrentIndex(qMin(q->count() - 1, qMax(indexBeforeChange, 0))); -
778 return;
never executed: return;
0
779 } -
780 if (lineEdit) {
partially evaluated: lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:199
0-199
781 lineEdit->setText(q->itemText(currentIndex.row())); -
782 updateLineEditGeometry(); -
783 }
never executed: }
0
784 q->update(); -
785 _q_emitCurrentIndexChanged(currentIndex); -
786 }
executed: }
Execution Count:199
199
787}
executed: }
Execution Count:199
199
788 -
789 -
790void QComboBoxPrivate::updateViewContainerPaletteAndOpacity() -
791{ -
792 if (!container)
partially evaluated: !container
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
793 return;
never executed: return;
0
794 QComboBox * const q = q_func(); -
795 QStyleOptionComboBox opt; -
796 q->initStyleOption(&opt); -
797 -
798 if (q->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, q)) {
partially evaluated: q->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, q)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
799 QMenu menu; -
800 menu.ensurePolished(); -
801 container->setPalette(menu.palette()); -
802 container->setWindowOpacity(menu.windowOpacity()); -
803 } else
never executed: }
0
804 -
805 { -
806 container->setPalette(q->palette()); -
807 container->setWindowOpacity(1.0); -
808 }
executed: }
Execution Count:339
339
809 if (lineEdit)
partially evaluated: lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:339
0-339
810 lineEdit->setPalette(q->palette());
never executed: lineEdit->setPalette(q->palette());
0
811}
executed: }
Execution Count:339
339
812void QComboBox::initStyleOption(QStyleOptionComboBox *option) const -
813{ -
814 if (!option)
partially evaluated: !option
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3153
0-3153
815 return;
never executed: return;
0
816 -
817 const QComboBoxPrivate * const d = d_func(); -
818 option->initFrom(this); -
819 option->editable = isEditable(); -
820 option->frame = d->frame; -
821 if (hasFocus() && !option->editable)
evaluated: hasFocus()
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:3137
evaluated: !option->editable
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:7
7-3137
822 option->state |= QStyle::State_Selected;
executed: option->state |= QStyle::State_Selected;
Execution Count:9
9
823 option->subControls = QStyle::SC_All; -
824 if (d->arrowState == QStyle::State_Sunken) {
partially evaluated: d->arrowState == QStyle::State_Sunken
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3153
0-3153
825 option->activeSubControls = QStyle::SC_ComboBoxArrow; -
826 option->state |= d->arrowState; -
827 } else {
never executed: }
0
828 option->activeSubControls = d->hoverControl; -
829 }
executed: }
Execution Count:3153
3153
830 if (d->currentIndex.isValid()) {
evaluated: d->currentIndex.isValid()
TRUEFALSE
yes
Evaluation Count:1230
yes
Evaluation Count:1923
1230-1923
831 option->currentText = currentText(); -
832 option->currentIcon = d->itemIcon(d->currentIndex); -
833 }
executed: }
Execution Count:1230
1230
834 option->iconSize = iconSize(); -
835 if (d->container && d->container->isVisible())
evaluated: d->container
TRUEFALSE
yes
Evaluation Count:2477
yes
Evaluation Count:676
partially evaluated: d->container->isVisible()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2477
0-2477
836 option->state |= QStyle::State_On;
never executed: option->state |= QStyle::State_On;
0
837}
executed: }
Execution Count:3153
3153
838 -
839void QComboBoxPrivate::updateLineEditGeometry() -
840{ -
841 if (!lineEdit)
evaluated: !lineEdit
TRUEFALSE
yes
Evaluation Count:104
yes
Evaluation Count:567
104-567
842 return;
executed: return;
Execution Count:104
104
843 -
844 QComboBox * const q = q_func(); -
845 QStyleOptionComboBox opt; -
846 q->initStyleOption(&opt); -
847 QRect editRect = q->style()->subControlRect(QStyle::CC_ComboBox, &opt, -
848 QStyle::SC_ComboBoxEditField, q); -
849 if (!q->itemIcon(q->currentIndex()).isNull()) {
partially evaluated: !q->itemIcon(q->currentIndex()).isNull()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:567
0-567
850 QRect comboRect(editRect); -
851 editRect.setWidth(editRect.width() - q->iconSize().width() - 4); -
852 editRect = QStyle::alignedRect(q->layoutDirection(), Qt::AlignRight, -
853 editRect.size(), comboRect); -
854 }
never executed: }
0
855 lineEdit->setGeometry(editRect); -
856}
executed: }
Execution Count:567
567
857 -
858Qt::MatchFlags QComboBoxPrivate::matchFlags() const -
859{ -
860 -
861 Qt::MatchFlags flags = Qt::MatchFixedString; -
862 -
863 if (!lineEdit->completer() || lineEdit->completer()->caseSensitivity() == Qt::CaseSensitive)
partially evaluated: !lineEdit->completer()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9
evaluated: lineEdit->completer()->caseSensitivity() == Qt::CaseSensitive
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:7
0-9
864 -
865 flags |= Qt::MatchCaseSensitive;
executed: flags |= Qt::MatchCaseSensitive;
Execution Count:2
2
866 return flags;
executed: return flags;
Execution Count:9
9
867} -
868 -
869 -
870void QComboBoxPrivate::_q_editingFinished() -
871{ -
872 QComboBox * const q = q_func(); -
873 if (lineEdit && !lineEdit->text().isEmpty()) {
partially evaluated: lineEdit
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
evaluated: !lineEdit->text().isEmpty()
TRUEFALSE
yes
Evaluation Count:7
yes
Evaluation Count:1
0-8
874 -
875 const int index = q_func()->findText(lineEdit->text(), matchFlags()); -
876 if (index != -1 && itemText(currentIndex) != lineEdit->text()) {
evaluated: index != -1
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:2
partially evaluated: itemText(currentIndex) != lineEdit->text()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:5
0-5
877 q->setCurrentIndex(index); -
878 emitActivated(currentIndex); -
879 }
never executed: }
0
880 }
executed: }
Execution Count:7
7
881 -
882}
executed: }
Execution Count:8
8
883 -
884void QComboBoxPrivate::_q_returnPressed() -
885{ -
886 QComboBox * const q = q_func(); -
887 if (lineEdit && !lineEdit->text().isEmpty()) {
partially evaluated: lineEdit
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: !lineEdit->text().isEmpty()
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
888 if (q->count() >= maxCount && !(this->insertPolicy == QComboBox::InsertAtCurrent))
partially evaluated: q->count() >= maxCount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
never evaluated: !(this->insertPolicy == QComboBox::InsertAtCurrent)
0-2
889 return;
never executed: return;
0
890 lineEdit->deselect(); -
891 lineEdit->end(false); -
892 QString text = lineEdit->text(); -
893 -
894 int index = -1; -
895 if (!duplicatesEnabled) {
partially evaluated: !duplicatesEnabled
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
896 index = q->findText(text, matchFlags()); -
897 if (index != -1) {
evaluated: index != -1
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
898 q->setCurrentIndex(index); -
899 emitActivated(currentIndex); -
900 return;
executed: return;
Execution Count:1
1
901 } -
902 }
executed: }
Execution Count:1
1
903 switch (insertPolicy) { -
904 case QComboBox::InsertAtTop: -
905 index = 0; -
906 break;
never executed: break;
0
907 case QComboBox::InsertAtBottom: -
908 index = q->count(); -
909 break;
executed: break;
Execution Count:1
1
910 case QComboBox::InsertAtCurrent: -
911 case QComboBox::InsertAfterCurrent: -
912 case QComboBox::InsertBeforeCurrent: -
913 if (!q->count() || !currentIndex.isValid())
never evaluated: !q->count()
never evaluated: !currentIndex.isValid()
0
914 index = 0;
never executed: index = 0;
0
915 else if (insertPolicy == QComboBox::InsertAtCurrent)
never evaluated: insertPolicy == QComboBox::InsertAtCurrent
0
916 q->setItemText(q->currentIndex(), text);
never executed: q->setItemText(q->currentIndex(), text);
0
917 else if (insertPolicy == QComboBox::InsertAfterCurrent)
never evaluated: insertPolicy == QComboBox::InsertAfterCurrent
0
918 index = q->currentIndex() + 1;
never executed: index = q->currentIndex() + 1;
0
919 else if (insertPolicy == QComboBox::InsertBeforeCurrent)
never evaluated: insertPolicy == QComboBox::InsertBeforeCurrent
0
920 index = q->currentIndex();
never executed: index = q->currentIndex();
0
921 break;
never executed: break;
0
922 case QComboBox::InsertAlphabetically: -
923 index = 0; -
924 for (int i=0; i< q->count(); i++, index++ ) {
never evaluated: i< q->count()
0
925 if (text.toLower() < q->itemText(i).toLower())
never evaluated: text.toLower() < q->itemText(i).toLower()
0
926 break;
never executed: break;
0
927 }
never executed: }
0
928 break;
never executed: break;
0
929 case QComboBox::NoInsert: -
930 default: -
931 break;
never executed: break;
0
932 } -
933 if (index >= 0) {
partially evaluated: index >= 0
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
934 q->insertItem(index, text); -
935 q->setCurrentIndex(index); -
936 emitActivated(currentIndex); -
937 }
executed: }
Execution Count:1
1
938 }
executed: }
Execution Count:1
1
939}
executed: }
Execution Count:1
1
940 -
941void QComboBoxPrivate::_q_itemSelected(const QModelIndex &item) -
942{ -
943 QComboBox * const q = q_func(); -
944 if (item != currentIndex) {
never evaluated: item != currentIndex
0
945 setCurrentIndex(item); -
946 } else if (lineEdit) {
never executed: }
never evaluated: lineEdit
0
947 lineEdit->selectAll(); -
948 lineEdit->setText(q->itemText(currentIndex.row())); -
949 }
never executed: }
0
950 emitActivated(currentIndex); -
951}
never executed: }
0
952 -
953void QComboBoxPrivate::emitActivated(const QModelIndex &index) -
954{ -
955 QComboBox * const q = q_func(); -
956 if (!index.isValid())
partially evaluated: !index.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4
0-4
957 return;
never executed: return;
0
958 QString text(itemText(index)); -
959 q->activated(index.row()); -
960 q->activated(text); -
961}
executed: }
Execution Count:4
4
962 -
963void QComboBoxPrivate::_q_emitHighlighted(const QModelIndex &index) -
964{ -
965 QComboBox * const q = q_func(); -
966 if (!index.isValid())
partially evaluated: !index.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
967 return;
never executed: return;
0
968 QString text(itemText(index)); -
969 q->highlighted(index.row()); -
970 q->highlighted(text); -
971}
executed: }
Execution Count:1
1
972 -
973void QComboBoxPrivate::_q_emitCurrentIndexChanged(const QModelIndex &index) -
974{ -
975 QComboBox * const q = q_func(); -
976 q->currentIndexChanged(index.row()); -
977 const QString text = itemText(index); -
978 q->currentIndexChanged(text); -
979 -
980 if (!lineEdit)
evaluated: !lineEdit
TRUEFALSE
yes
Evaluation Count:818
yes
Evaluation Count:267
267-818
981 q->currentTextChanged(text);
executed: q->currentTextChanged(text);
Execution Count:818
818
982 -
983 QAccessibleEvent event(q, QAccessible::NameChanged); -
984 QAccessible::updateAccessibility(&event); -
985 -
986}
executed: }
Execution Count:1085
1085
987 -
988QString QComboBoxPrivate::itemText(const QModelIndex &index) const -
989{ -
990 return index.isValid() ? model->data(index, itemRole()).toString() : QString();
executed: return index.isValid() ? model->data(index, itemRole()).toString() : QString();
Execution Count:4717
4717
991} -
992 -
993int QComboBoxPrivate::itemRole() const -
994{ -
995 return q_func()->isEditable() ? Qt::EditRole : Qt::DisplayRole;
executed: return q_func()->isEditable() ? Qt::EditRole : Qt::DisplayRole;
Execution Count:4372
4372
996} -
997 -
998 -
999 -
1000 -
1001QComboBox::~QComboBox() -
1002{ -
1003 -
1004 QComboBoxPrivate * const d = d_func(); -
1005 -
1006 if (true) {
partially evaluated: true
TRUEFALSE
yes
Evaluation Count:557
no
Evaluation Count:0
0-557
1007 disconnect(d->model, "2""destroyed()", -
1008 this, "1""_q_modelDestroyed()"); -
1009 } else {
executed: }
Execution Count:557
557
1010 ; -
1011 }
never executed: }
0
1012} -
1013int QComboBox::maxVisibleItems() const -
1014{ -
1015 const QComboBoxPrivate * const d = d_func(); -
1016 return d->maxVisibleItems;
never executed: return d->maxVisibleItems;
0
1017} -
1018 -
1019void QComboBox::setMaxVisibleItems(int maxItems) -
1020{ -
1021 QComboBoxPrivate * const d = d_func(); -
1022 if (maxItems < 0) {
never evaluated: maxItems < 0
0
1023 QMessageLogger("widgets/qcombobox.cpp", 1299, __PRETTY_FUNCTION__).warning("QComboBox::setMaxVisibleItems: " -
1024 "Invalid max visible items (%d) must be >= 0", maxItems); -
1025 return;
never executed: return;
0
1026 } -
1027 d->maxVisibleItems = maxItems; -
1028}
never executed: }
0
1029 -
1030 -
1031 -
1032 -
1033 -
1034 -
1035 -
1036int QComboBox::count() const -
1037{ -
1038 const QComboBoxPrivate * const d = d_func(); -
1039 return d->model->rowCount(d->root);
executed: return d->model->rowCount(d->root);
Execution Count:3637
3637
1040} -
1041void QComboBox::setMaxCount(int max) -
1042{ -
1043 QComboBoxPrivate * const d = d_func(); -
1044 if (max < 0) {
never evaluated: max < 0
0
1045 QMessageLogger("widgets/qcombobox.cpp", 1334, __PRETTY_FUNCTION__).warning("QComboBox::setMaxCount: Invalid count (%d) must be >= 0", max); -
1046 return;
never executed: return;
0
1047 } -
1048 -
1049 if (max < count())
never evaluated: max < count()
0
1050 d->model->removeRows(max, count() - max, d->root);
never executed: d->model->removeRows(max, count() - max, d->root);
0
1051 -
1052 d->maxCount = max; -
1053}
never executed: }
0
1054 -
1055int QComboBox::maxCount() const -
1056{ -
1057 const QComboBoxPrivate * const d = d_func(); -
1058 return d->maxCount;
never executed: return d->maxCount;
0
1059} -
1060bool QComboBox::autoCompletion() const -
1061{ -
1062 const QComboBoxPrivate * const d = d_func(); -
1063 return d->autoCompletion;
never executed: return d->autoCompletion;
0
1064} -
1065 -
1066 -
1067 -
1068 -
1069 -
1070 -
1071void QComboBox::setAutoCompletion(bool enable) -
1072{ -
1073 QComboBoxPrivate * const d = d_func(); -
1074 -
1075 -
1076 -
1077 -
1078 -
1079 -
1080 d->autoCompletion = enable; -
1081 if (!d->lineEdit)
partially evaluated: !d->lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:150
0-150
1082 return;
never executed: return;
0
1083 if (enable) {
partially evaluated: enable
TRUEFALSE
yes
Evaluation Count:150
no
Evaluation Count:0
0-150
1084 if (d->lineEdit->completer())
partially evaluated: d->lineEdit->completer()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:150
0-150
1085 return;
never executed: return;
0
1086 d->completer = new QCompleter(d->model, d->lineEdit); -
1087 d->completer->setCaseSensitivity(d->autoCompletionCaseSensitivity); -
1088 d->completer->setCompletionMode(QCompleter::InlineCompletion); -
1089 d->completer->setCompletionColumn(d->modelColumn); -
1090 d->lineEdit->setCompleter(d->completer); -
1091 d->completer->setWidget(this); -
1092 } else {
executed: }
Execution Count:150
150
1093 d->lineEdit->setCompleter(0); -
1094 }
never executed: }
0
1095} -
1096Qt::CaseSensitivity QComboBox::autoCompletionCaseSensitivity() const -
1097{ -
1098 const QComboBoxPrivate * const d = d_func(); -
1099 return d->autoCompletionCaseSensitivity;
never executed: return d->autoCompletionCaseSensitivity;
0
1100} -
1101 -
1102 -
1103 -
1104 -
1105 -
1106 -
1107void QComboBox::setAutoCompletionCaseSensitivity(Qt::CaseSensitivity sensitivity) -
1108{ -
1109 QComboBoxPrivate * const d = d_func(); -
1110 d->autoCompletionCaseSensitivity = sensitivity; -
1111 if (d->lineEdit && d->lineEdit->completer())
never evaluated: d->lineEdit
never evaluated: d->lineEdit->completer()
0
1112 d->lineEdit->completer()->setCaseSensitivity(sensitivity);
never executed: d->lineEdit->completer()->setCaseSensitivity(sensitivity);
0
1113}
never executed: }
0
1114bool QComboBox::duplicatesEnabled() const -
1115{ -
1116 const QComboBoxPrivate * const d = d_func(); -
1117 return d->duplicatesEnabled;
never executed: return d->duplicatesEnabled;
0
1118} -
1119 -
1120void QComboBox::setDuplicatesEnabled(bool enable) -
1121{ -
1122 QComboBoxPrivate * const d = d_func(); -
1123 d->duplicatesEnabled = enable; -
1124}
executed: }
Execution Count:378
378
1125int QComboBox::findData(const QVariant &data, int role, Qt::MatchFlags flags) const -
1126{ -
1127 const QComboBoxPrivate * const d = d_func(); -
1128 QModelIndexList result; -
1129 QModelIndex start = d->model->index(0, d->modelColumn, d->root); -
1130 result = d->model->match(start, role, data, 1, flags); -
1131 if (result.isEmpty())
evaluated: result.isEmpty()
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:18
10-18
1132 return -1;
executed: return -1;
Execution Count:10
10
1133 return result.first().row();
executed: return result.first().row();
Execution Count:18
18
1134} -
1135QComboBox::InsertPolicy QComboBox::insertPolicy() const -
1136{ -
1137 const QComboBoxPrivate * const d = d_func(); -
1138 return d->insertPolicy;
never executed: return d->insertPolicy;
0
1139} -
1140 -
1141void QComboBox::setInsertPolicy(InsertPolicy policy) -
1142{ -
1143 QComboBoxPrivate * const d = d_func(); -
1144 d->insertPolicy = policy; -
1145}
executed: }
Execution Count:190
190
1146QComboBox::SizeAdjustPolicy QComboBox::sizeAdjustPolicy() const -
1147{ -
1148 const QComboBoxPrivate * const d = d_func(); -
1149 return d->sizeAdjustPolicy;
never executed: return d->sizeAdjustPolicy;
0
1150} -
1151 -
1152void QComboBox::setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy) -
1153{ -
1154 QComboBoxPrivate * const d = d_func(); -
1155 if (policy == d->sizeAdjustPolicy)
partially evaluated: policy == d->sizeAdjustPolicy
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:189
0-189
1156 return;
never executed: return;
0
1157 -
1158 d->sizeAdjustPolicy = policy; -
1159 d->sizeHint = QSize(); -
1160 d->adjustComboBoxSize(); -
1161 updateGeometry(); -
1162}
executed: }
Execution Count:189
189
1163int QComboBox::minimumContentsLength() const -
1164{ -
1165 const QComboBoxPrivate * const d = d_func(); -
1166 return d->minimumContentsLength;
never executed: return d->minimumContentsLength;
0
1167} -
1168 -
1169void QComboBox::setMinimumContentsLength(int characters) -
1170{ -
1171 QComboBoxPrivate * const d = d_func(); -
1172 if (characters == d->minimumContentsLength || characters < 0)
never evaluated: characters == d->minimumContentsLength
never evaluated: characters < 0
0
1173 return;
never executed: return;
0
1174 -
1175 d->minimumContentsLength = characters; -
1176 -
1177 if (d->sizeAdjustPolicy == AdjustToContents
never evaluated: d->sizeAdjustPolicy == AdjustToContents
0
1178 || d->sizeAdjustPolicy == AdjustToMinimumContentsLength
never evaluated: d->sizeAdjustPolicy == AdjustToMinimumContentsLength
0
1179 || d->sizeAdjustPolicy == AdjustToMinimumContentsLengthWithIcon) {
never evaluated: d->sizeAdjustPolicy == AdjustToMinimumContentsLengthWithIcon
0
1180 d->sizeHint = QSize(); -
1181 d->adjustComboBoxSize(); -
1182 updateGeometry(); -
1183 }
never executed: }
0
1184}
never executed: }
0
1185QSize QComboBox::iconSize() const -
1186{ -
1187 const QComboBoxPrivate * const d = d_func(); -
1188 if (d->iconSize.isValid())
partially evaluated: d->iconSize.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:4148
0-4148
1189 return d->iconSize;
never executed: return d->iconSize;
0
1190 -
1191 int iconWidth = style()->pixelMetric(QStyle::PM_SmallIconSize, 0, this); -
1192 return QSize(iconWidth, iconWidth);
executed: return QSize(iconWidth, iconWidth);
Execution Count:4148
4148
1193} -
1194 -
1195void QComboBox::setIconSize(const QSize &size) -
1196{ -
1197 QComboBoxPrivate * const d = d_func(); -
1198 if (size == d->iconSize)
never evaluated: size == d->iconSize
0
1199 return;
never executed: return;
0
1200 -
1201 view()->setIconSize(size); -
1202 d->iconSize = size; -
1203 d->sizeHint = QSize(); -
1204 updateGeometry(); -
1205}
never executed: }
0
1206bool QComboBox::isEditable() const -
1207{ -
1208 const QComboBoxPrivate * const d = d_func(); -
1209 return d->lineEdit != 0;
executed: return d->lineEdit != 0;
Execution Count:9454
9454
1210} -
1211void QComboBoxPrivate::updateDelegate(bool force) -
1212{ -
1213 QComboBox * const q = q_func(); -
1214 QStyleOptionComboBox opt; -
1215 q->initStyleOption(&opt); -
1216 if (q->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, q)) {
partially evaluated: q->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, q)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:491
0-491
1217 if (force || qobject_cast<QComboBoxDelegate *>(q->itemDelegate()))
never evaluated: force
never evaluated: qobject_cast<QComboBoxDelegate *>(q->itemDelegate())
0
1218 q->setItemDelegate(new QComboMenuDelegate(q->view(), q));
never executed: q->setItemDelegate(new QComboMenuDelegate(q->view(), q));
0
1219 } else {
never executed: }
0
1220 if (force || qobject_cast<QComboMenuDelegate *>(q->itemDelegate()))
evaluated: force
TRUEFALSE
yes
Evaluation Count:339
yes
Evaluation Count:152
partially evaluated: qobject_cast<QComboMenuDelegate *>(q->itemDelegate())
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:152
0-339
1221 q->setItemDelegate(new QComboBoxDelegate(q->view(), q));
executed: q->setItemDelegate(new QComboBoxDelegate(q->view(), q));
Execution Count:339
339
1222 }
executed: }
Execution Count:491
491
1223} -
1224 -
1225QIcon QComboBoxPrivate::itemIcon(const QModelIndex &index) const -
1226{ -
1227 QVariant decoration = model->data(index, Qt::DecorationRole); -
1228 if (decoration.type() == QVariant::Pixmap)
partially evaluated: decoration.type() == QVariant::Pixmap
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2849
0-2849
1229 return QIcon(qvariant_cast<QPixmap>(decoration));
never executed: return QIcon(qvariant_cast<QPixmap>(decoration));
0
1230 else -
1231 return qvariant_cast<QIcon>(decoration);
executed: return qvariant_cast<QIcon>(decoration);
Execution Count:2849
2849
1232} -
1233 -
1234void QComboBox::setEditable(bool editable) -
1235{ -
1236 QComboBoxPrivate * const d = d_func(); -
1237 if (isEditable() == editable)
evaluated: isEditable() == editable
TRUEFALSE
yes
Evaluation Count:30
yes
Evaluation Count:150
30-150
1238 return;
executed: return;
Execution Count:30
30
1239 -
1240 d->updateDelegate(); -
1241 -
1242 QStyleOptionComboBox opt; -
1243 initStyleOption(&opt); -
1244 if (editable) {
partially evaluated: editable
TRUEFALSE
yes
Evaluation Count:150
no
Evaluation Count:0
0-150
1245 if (style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, this)) {
partially evaluated: style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, this)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:150
0-150
1246 d->viewContainer()->updateScrollers(); -
1247 view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); -
1248 }
never executed: }
0
1249 QLineEdit *le = new QLineEdit(this); -
1250 setLineEdit(le); -
1251 -
1252 -
1253 -
1254 -
1255 } else {
executed: }
Execution Count:150
150
1256 if (style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, this)) {
never evaluated: style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, this)
0
1257 d->viewContainer()->updateScrollers(); -
1258 view()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -
1259 }
never executed: }
0
1260 setAttribute(Qt::WA_InputMethodEnabled, false); -
1261 d->lineEdit->hide(); -
1262 d->lineEdit->deleteLater(); -
1263 d->lineEdit = 0; -
1264 -
1265 -
1266 -
1267 -
1268 }
never executed: }
0
1269 -
1270 d->viewContainer()->updateTopBottomMargin(); -
1271 if (!testAttribute(Qt::WA_Resized))
evaluated: !testAttribute(Qt::WA_Resized)
TRUEFALSE
yes
Evaluation Count:149
yes
Evaluation Count:1
1-149
1272 adjustSize();
executed: adjustSize();
Execution Count:149
149
1273}
executed: }
Execution Count:150
150
1274 -
1275 -
1276 -
1277 -
1278 -
1279 -
1280void QComboBox::setLineEdit(QLineEdit *edit) -
1281{ -
1282 QComboBoxPrivate * const d = d_func(); -
1283 if (!edit) {
partially evaluated: !edit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:150
0-150
1284 QMessageLogger("widgets/qcombobox.cpp", 1703, __PRETTY_FUNCTION__).warning("QComboBox::setLineEdit: cannot set a 0 line edit"); -
1285 return;
never executed: return;
0
1286 } -
1287 -
1288 if (edit == d->lineEdit)
partially evaluated: edit == d->lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:150
0-150
1289 return;
never executed: return;
0
1290 -
1291 edit->setText(currentText()); -
1292 delete d->lineEdit; -
1293 -
1294 d->lineEdit = edit; -
1295 if (d->lineEdit->parent() != this)
partially evaluated: d->lineEdit->parent() != this
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:150
0-150
1296 d->lineEdit->setParent(this);
never executed: d->lineEdit->setParent(this);
0
1297 connect(d->lineEdit, "2""returnPressed()", this, "1""_q_returnPressed()"); -
1298 connect(d->lineEdit, "2""editingFinished()", this, "1""_q_editingFinished()"); -
1299 connect(d->lineEdit, "2""textChanged(QString)", this, "2""editTextChanged(QString)"); -
1300 connect(d->lineEdit, "2""textChanged(QString)", this, "2""currentTextChanged(QString)"); -
1301 d->lineEdit->setFrame(false); -
1302 d->lineEdit->setContextMenuPolicy(Qt::NoContextMenu); -
1303 d->lineEdit->setFocusProxy(this); -
1304 d->lineEdit->setAttribute(Qt::WA_MacShowFocusRect, false); -
1305 -
1306 setAutoCompletion(d->autoCompletion); -
1307 setAttribute(Qt::WA_InputMethodEnabled); -
1308 d->updateLayoutDirection(); -
1309 d->updateLineEditGeometry(); -
1310 if (isVisible())
evaluated: isVisible()
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:148
2-148
1311 d->lineEdit->show();
executed: d->lineEdit->show();
Execution Count:2
2
1312 -
1313 update(); -
1314}
executed: }
Execution Count:150
150
1315 -
1316 -
1317 -
1318 -
1319 -
1320 -
1321 -
1322QLineEdit *QComboBox::lineEdit() const -
1323{ -
1324 const QComboBoxPrivate * const d = d_func(); -
1325 return d->lineEdit;
executed: return d->lineEdit;
Execution Count:9
9
1326} -
1327void QComboBox::setValidator(const QValidator *v) -
1328{ -
1329 QComboBoxPrivate * const d = d_func(); -
1330 if (d->lineEdit)
never evaluated: d->lineEdit
0
1331 d->lineEdit->setValidator(v);
never executed: d->lineEdit->setValidator(v);
0
1332}
never executed: }
0
1333 -
1334 -
1335 -
1336 -
1337 -
1338 -
1339 -
1340const QValidator *QComboBox::validator() const -
1341{ -
1342 const QComboBoxPrivate * const d = d_func(); -
1343 return d->lineEdit ? d->lineEdit->validator() : 0;
never executed: return d->lineEdit ? d->lineEdit->validator() : 0;
0
1344} -
1345void QComboBox::setCompleter(QCompleter *c) -
1346{ -
1347 QComboBoxPrivate * const d = d_func(); -
1348 if (!d->lineEdit)
partially evaluated: !d->lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
1349 return;
never executed: return;
0
1350 d->lineEdit->setCompleter(c); -
1351 if (c)
partially evaluated: c
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
1352 c->setWidget(this);
executed: c->setWidget(this);
Execution Count:2
2
1353}
executed: }
Execution Count:2
2
1354QCompleter *QComboBox::completer() const -
1355{ -
1356 const QComboBoxPrivate * const d = d_func(); -
1357 return d->lineEdit ? d->lineEdit->completer() : 0;
executed: return d->lineEdit ? d->lineEdit->completer() : 0;
Execution Count:10
10
1358} -
1359QAbstractItemDelegate *QComboBox::itemDelegate() const -
1360{ -
1361 return view()->itemDelegate();
executed: return view()->itemDelegate();
Execution Count:152
152
1362} -
1363void QComboBox::setItemDelegate(QAbstractItemDelegate *delegate) -
1364{ -
1365 if (!delegate) {
partially evaluated: !delegate
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:479
0-479
1366 QMessageLogger("widgets/qcombobox.cpp", 1854, __PRETTY_FUNCTION__).warning("QComboBox::setItemDelegate: cannot set a 0 delegate"); -
1367 return;
never executed: return;
0
1368 } -
1369 delete view()->itemDelegate(); -
1370 view()->setItemDelegate(delegate); -
1371}
executed: }
Execution Count:479
479
1372 -
1373 -
1374 -
1375 -
1376 -
1377QAbstractItemModel *QComboBox::model() const -
1378{ -
1379 const QComboBoxPrivate * const d = d_func(); -
1380 if (d->model == QAbstractItemModelPrivate::staticEmptyModel()) {
partially evaluated: d->model == QAbstractItemModelPrivate::staticEmptyModel()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:326
0-326
1381 QComboBox *that = const_cast<QComboBox*>(this); -
1382 that->setModel(new QStandardItemModel(0, 1, that)); -
1383 }
never executed: }
0
1384 return d->model;
executed: return d->model;
Execution Count:326
326
1385} -
1386 -
1387 -
1388 -
1389 -
1390 -
1391 -
1392 -
1393void QComboBox::setModel(QAbstractItemModel *model) -
1394{ -
1395 QComboBoxPrivate * const d = d_func(); -
1396 -
1397 if (!model) {
partially evaluated: !model
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:887
0-887
1398 QMessageLogger("widgets/qcombobox.cpp", 1886, __PRETTY_FUNCTION__).warning("QComboBox::setModel: cannot set a 0 model"); -
1399 return;
never executed: return;
0
1400 } -
1401 -
1402 -
1403 if (d->lineEdit && d->lineEdit->completer()
evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:140
yes
Evaluation Count:747
partially evaluated: d->lineEdit->completer()
TRUEFALSE
yes
Evaluation Count:140
no
Evaluation Count:0
0-747
1404 && d->lineEdit->completer() == d->completer)
partially evaluated: d->lineEdit->completer() == d->completer
TRUEFALSE
yes
Evaluation Count:140
no
Evaluation Count:0
0-140
1405 d->lineEdit->completer()->setModel(model);
executed: d->lineEdit->completer()->setModel(model);
Execution Count:140
140
1406 -
1407 if (d->model) {
evaluated: d->model
TRUEFALSE
yes
Evaluation Count:329
yes
Evaluation Count:558
329-558
1408 disconnect(d->model, "2""dataChanged(QModelIndex,QModelIndex)", -
1409 this, "1""_q_dataChanged(QModelIndex,QModelIndex)"); -
1410 disconnect(d->model, "2""rowsAboutToBeInserted(QModelIndex,int,int)", -
1411 this, "1""_q_updateIndexBeforeChange()"); -
1412 disconnect(d->model, "2""rowsInserted(QModelIndex,int,int)", -
1413 this, "1""_q_rowsInserted(QModelIndex,int,int)"); -
1414 disconnect(d->model, "2""rowsAboutToBeRemoved(QModelIndex,int,int)", -
1415 this, "1""_q_updateIndexBeforeChange()"); -
1416 disconnect(d->model, "2""rowsRemoved(QModelIndex,int,int)", -
1417 this, "1""_q_rowsRemoved(QModelIndex,int,int)"); -
1418 disconnect(d->model, "2""destroyed()", -
1419 this, "1""_q_modelDestroyed()"); -
1420 disconnect(d->model, "2""modelAboutToBeReset()", -
1421 this, "1""_q_updateIndexBeforeChange()"); -
1422 disconnect(d->model, "2""modelReset()", -
1423 this, "1""_q_modelReset()"); -
1424 if (d->model->QObject::parent() == this)
partially evaluated: d->model->QObject::parent() == this
TRUEFALSE
yes
Evaluation Count:329
no
Evaluation Count:0
0-329
1425 delete d->model;
executed: delete d->model;
Execution Count:329
329
1426 }
executed: }
Execution Count:329
329
1427 -
1428 d->model = model; -
1429 -
1430 connect(model, "2""dataChanged(QModelIndex,QModelIndex)", -
1431 this, "1""_q_dataChanged(QModelIndex,QModelIndex)"); -
1432 connect(model, "2""rowsAboutToBeInserted(QModelIndex,int,int)", -
1433 this, "1""_q_updateIndexBeforeChange()"); -
1434 connect(model, "2""rowsInserted(QModelIndex,int,int)", -
1435 this, "1""_q_rowsInserted(QModelIndex,int,int)"); -
1436 connect(model, "2""rowsAboutToBeRemoved(QModelIndex,int,int)", -
1437 this, "1""_q_updateIndexBeforeChange()"); -
1438 connect(model, "2""rowsRemoved(QModelIndex,int,int)", -
1439 this, "1""_q_rowsRemoved(QModelIndex,int,int)"); -
1440 connect(model, "2""destroyed()", -
1441 this, "1""_q_modelDestroyed()"); -
1442 connect(model, "2""modelAboutToBeReset()", -
1443 this, "1""_q_updateIndexBeforeChange()"); -
1444 connect(model, "2""modelReset()", -
1445 this, "1""_q_modelReset()"); -
1446 -
1447 if (d->container) {
evaluated: d->container
TRUEFALSE
yes
Evaluation Count:140
yes
Evaluation Count:747
140-747
1448 d->container->itemView()->setModel(model); -
1449 connect(d->container->itemView()->selectionModel(), -
1450 "2""currentChanged(QModelIndex,QModelIndex)", -
1451 this, "1""_q_emitHighlighted(QModelIndex)", Qt::UniqueConnection); -
1452 }
executed: }
Execution Count:140
140
1453 -
1454 bool currentReset = false; -
1455 -
1456 if (count()) {
partially evaluated: count()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:887
0-887
1457 for (int pos=0; pos < count(); pos++) {
never evaluated: pos < count()
0
1458 if (d->model->index(pos, d->modelColumn, d->root).flags() & Qt::ItemIsEnabled) {
never evaluated: d->model->index(pos, d->modelColumn, d->root).flags() & Qt::ItemIsEnabled
0
1459 setCurrentIndex(pos); -
1460 currentReset = true; -
1461 break;
never executed: break;
0
1462 } -
1463 }
never executed: }
0
1464 }
never executed: }
0
1465 -
1466 if (!currentReset)
partially evaluated: !currentReset
TRUEFALSE
yes
Evaluation Count:887
no
Evaluation Count:0
0-887
1467 setCurrentIndex(-1);
executed: setCurrentIndex(-1);
Execution Count:887
887
1468 -
1469 d->modelChanged(); -
1470}
executed: }
Execution Count:887
887
1471 -
1472 -
1473 -
1474 -
1475 -
1476 -
1477 -
1478QModelIndex QComboBox::rootModelIndex() const -
1479{ -
1480 const QComboBoxPrivate * const d = d_func(); -
1481 return QModelIndex(d->root);
never executed: return QModelIndex(d->root);
0
1482} -
1483 -
1484 -
1485 -
1486 -
1487 -
1488 -
1489void QComboBox::setRootModelIndex(const QModelIndex &index) -
1490{ -
1491 QComboBoxPrivate * const d = d_func(); -
1492 d->root = QPersistentModelIndex(index); -
1493 view()->setRootIndex(index); -
1494 update(); -
1495}
never executed: }
0
1496int QComboBox::currentIndex() const -
1497{ -
1498 const QComboBoxPrivate * const d = d_func(); -
1499 return d->currentIndex.row();
executed: return d->currentIndex.row();
Execution Count:600
600
1500} -
1501 -
1502void QComboBox::setCurrentIndex(int index) -
1503{ -
1504 QComboBoxPrivate * const d = d_func(); -
1505 QModelIndex mi = d->model->index(index, d->modelColumn, d->root); -
1506 d->setCurrentIndex(mi); -
1507}
executed: }
Execution Count:1786
1786
1508 -
1509void QComboBox::setCurrentText(const QString &text) -
1510{ -
1511 if (isEditable()) {
partially evaluated: isEditable()
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
1512 setEditText(text); -
1513 } else {
executed: }
Execution Count:3
3
1514 const int i = findText(text); -
1515 if (i > -1)
never evaluated: i > -1
0
1516 setCurrentIndex(i);
never executed: setCurrentIndex(i);
0
1517 }
never executed: }
0
1518} -
1519 -
1520void QComboBoxPrivate::setCurrentIndex(const QModelIndex &mi) -
1521{ -
1522 QComboBox * const q = q_func(); -
1523 -
1524 QModelIndex normalized; -
1525 if (mi.column() != modelColumn)
evaluated: mi.column() != modelColumn
TRUEFALSE
yes
Evaluation Count:889
yes
Evaluation Count:897
889-897
1526 normalized = model->index(mi.row(), modelColumn, mi.parent());
executed: normalized = model->index(mi.row(), modelColumn, mi.parent());
Execution Count:889
889
1527 if (!normalized.isValid())
partially evaluated: !normalized.isValid()
TRUEFALSE
yes
Evaluation Count:1786
no
Evaluation Count:0
0-1786
1528 normalized = mi;
executed: normalized = mi;
Execution Count:1786
1786
1529 -
1530 bool indexChanged = (normalized != currentIndex); -
1531 if (indexChanged)
evaluated: indexChanged
TRUEFALSE
yes
Evaluation Count:886
yes
Evaluation Count:900
886-900
1532 currentIndex = QPersistentModelIndex(normalized);
executed: currentIndex = QPersistentModelIndex(normalized);
Execution Count:886
886
1533 if (lineEdit) {
evaluated: lineEdit
TRUEFALSE
yes
Evaluation Count:407
yes
Evaluation Count:1379
407-1379
1534 QString newText = q->itemText(normalized.row()); -
1535 if (lineEdit->text() != newText)
evaluated: lineEdit->text() != newText
TRUEFALSE
yes
Evaluation Count:240
yes
Evaluation Count:167
167-240
1536 lineEdit->setText(newText);
executed: lineEdit->setText(newText);
Execution Count:240
240
1537 updateLineEditGeometry(); -
1538 }
executed: }
Execution Count:407
407
1539 if (indexChanged) {
evaluated: indexChanged
TRUEFALSE
yes
Evaluation Count:886
yes
Evaluation Count:900
886-900
1540 q->update(); -
1541 _q_emitCurrentIndexChanged(currentIndex); -
1542 }
executed: }
Execution Count:886
886
1543}
executed: }
Execution Count:1786
1786
1544QString QComboBox::currentText() const -
1545{ -
1546 const QComboBoxPrivate * const d = d_func(); -
1547 if (d->lineEdit)
evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:299
yes
Evaluation Count:1131
299-1131
1548 return d->lineEdit->text();
executed: return d->lineEdit->text();
Execution Count:299
299
1549 else if (d->currentIndex.isValid())
evaluated: d->currentIndex.isValid()
TRUEFALSE
yes
Evaluation Count:981
yes
Evaluation Count:150
150-981
1550 return d->itemText(d->currentIndex);
executed: return d->itemText(d->currentIndex);
Execution Count:981
981
1551 else -
1552 return QString();
executed: return QString();
Execution Count:150
150
1553} -
1554 -
1555 -
1556 -
1557 -
1558QString QComboBox::itemText(int index) const -
1559{ -
1560 const QComboBoxPrivate * const d = d_func(); -
1561 QModelIndex mi = d->model->index(index, d->modelColumn, d->root); -
1562 return d->itemText(mi);
executed: return d->itemText(mi);
Execution Count:2641
2641
1563} -
1564 -
1565 -
1566 -
1567 -
1568QIcon QComboBox::itemIcon(int index) const -
1569{ -
1570 const QComboBoxPrivate * const d = d_func(); -
1571 QModelIndex mi = d->model->index(index, d->modelColumn, d->root); -
1572 return d->itemIcon(mi);
executed: return d->itemIcon(mi);
Execution Count:1619
1619
1573} -
1574 -
1575 -
1576 -
1577 -
1578 -
1579QVariant QComboBox::itemData(int index, int role) const -
1580{ -
1581 const QComboBoxPrivate * const d = d_func(); -
1582 QModelIndex mi = d->model->index(index, d->modelColumn, d->root); -
1583 return d->model->data(mi, role);
never executed: return d->model->data(mi, role);
0
1584} -
1585void QComboBox::insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData) -
1586{ -
1587 QComboBoxPrivate * const d = d_func(); -
1588 int itemCount = count(); -
1589 index = qBound(0, index, itemCount); -
1590 if (index >= d->maxCount)
partially evaluated: index >= d->maxCount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:132
0-132
1591 return;
never executed: return;
0
1592 -
1593 -
1594 -
1595 if (QStandardItemModel *m = qobject_cast<QStandardItemModel*>(d->model)) {
partially evaluated: QStandardItemModel *m = qobject_cast<QStandardItemModel*>(d->model)
TRUEFALSE
yes
Evaluation Count:132
no
Evaluation Count:0
0-132
1596 QStandardItem *item = new QStandardItem(text); -
1597 if (!icon.isNull()) item->setData(icon, Qt::DecorationRole);
never executed: item->setData(icon, Qt::DecorationRole);
partially evaluated: !icon.isNull()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:132
0-132
1598 if (userData.isValid()) item->setData(userData, Qt::UserRole);
never executed: item->setData(userData, Qt::UserRole);
partially evaluated: userData.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:132
0-132
1599 m->insertRow(index, item); -
1600 ++itemCount; -
1601 } else {
executed: }
Execution Count:132
132
1602 d->inserting = true; -
1603 if (d->model->insertRows(index, 1, d->root)) {
never evaluated: d->model->insertRows(index, 1, d->root)
0
1604 QModelIndex item = d->model->index(index, d->modelColumn, d->root); -
1605 if (icon.isNull() && !userData.isValid()) {
never evaluated: icon.isNull()
never evaluated: !userData.isValid()
0
1606 d->model->setData(item, text, Qt::EditRole); -
1607 } else {
never executed: }
0
1608 QMap<int, QVariant> values; -
1609 if (!text.isNull()) values.insert(Qt::EditRole, text);
never executed: values.insert(Qt::EditRole, text);
never evaluated: !text.isNull()
0
1610 if (!icon.isNull()) values.insert(Qt::DecorationRole, icon);
never executed: values.insert(Qt::DecorationRole, icon);
never evaluated: !icon.isNull()
0
1611 if (userData.isValid()) values.insert(Qt::UserRole, userData);
never executed: values.insert(Qt::UserRole, userData);
never evaluated: userData.isValid()
0
1612 if (!values.isEmpty()) d->model->setItemData(item, values);
never executed: d->model->setItemData(item, values);
never evaluated: !values.isEmpty()
0
1613 }
never executed: }
0
1614 d->inserting = false; -
1615 d->_q_rowsInserted(d->root, index, index); -
1616 ++itemCount; -
1617 } else {
never executed: }
0
1618 d->inserting = false; -
1619 }
never executed: }
0
1620 } -
1621 -
1622 if (itemCount > d->maxCount)
partially evaluated: itemCount > d->maxCount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:132
0-132
1623 d->model->removeRows(itemCount - 1, itemCount - d->maxCount, d->root);
never executed: d->model->removeRows(itemCount - 1, itemCount - d->maxCount, d->root);
0
1624}
executed: }
Execution Count:132
132
1625void QComboBox::insertItems(int index, const QStringList &list) -
1626{ -
1627 QComboBoxPrivate * const d = d_func(); -
1628 if (list.isEmpty())
partially evaluated: list.isEmpty()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:224
0-224
1629 return;
never executed: return;
0
1630 index = qBound(0, index, count()); -
1631 int insertCount = qMin(d->maxCount - index, list.count()); -
1632 if (insertCount <= 0)
partially evaluated: insertCount <= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:224
0-224
1633 return;
never executed: return;
0
1634 -
1635 -
1636 if (QStandardItemModel *m = qobject_cast<QStandardItemModel*>(d->model)) {
partially evaluated: QStandardItemModel *m = qobject_cast<QStandardItemModel*>(d->model)
TRUEFALSE
yes
Evaluation Count:224
no
Evaluation Count:0
0-224
1637 QList<QStandardItem *> items; -
1638 QStandardItem *hiddenRoot = m->invisibleRootItem(); -
1639 for (int i = 0; i < insertCount; ++i)
evaluated: i < insertCount
TRUEFALSE
yes
Evaluation Count:274
yes
Evaluation Count:224
224-274
1640 items.append(new QStandardItem(list.at(i)));
executed: items.append(new QStandardItem(list.at(i)));
Execution Count:274
274
1641 hiddenRoot->insertRows(index, items); -
1642 } else {
executed: }
Execution Count:224
224
1643 d->inserting = true; -
1644 if (d->model->insertRows(index, insertCount, d->root)) {
never evaluated: d->model->insertRows(index, insertCount, d->root)
0
1645 QModelIndex item; -
1646 for (int i = 0; i < insertCount; ++i) {
never evaluated: i < insertCount
0
1647 item = d->model->index(i+index, d->modelColumn, d->root); -
1648 d->model->setData(item, list.at(i), Qt::EditRole); -
1649 }
never executed: }
0
1650 d->inserting = false; -
1651 d->_q_rowsInserted(d->root, index, index + insertCount - 1); -
1652 } else {
never executed: }
0
1653 d->inserting = false; -
1654 }
never executed: }
0
1655 } -
1656 -
1657 int mc = count(); -
1658 if (mc > d->maxCount)
partially evaluated: mc > d->maxCount
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:224
0-224
1659 d->model->removeRows(d->maxCount, mc - d->maxCount, d->root);
never executed: d->model->removeRows(d->maxCount, mc - d->maxCount, d->root);
0
1660}
executed: }
Execution Count:224
224
1661void QComboBox::insertSeparator(int index) -
1662{ -
1663 QComboBoxPrivate * const d = d_func(); -
1664 int itemCount = count(); -
1665 index = qBound(0, index, itemCount); -
1666 if (index >= d->maxCount)
never evaluated: index >= d->maxCount
0
1667 return;
never executed: return;
0
1668 insertItem(index, QIcon(), QString()); -
1669 QComboBoxDelegate::setSeparator(d->model, d->model->index(index, 0, d->root)); -
1670}
never executed: }
0
1671 -
1672 -
1673 -
1674 -
1675 -
1676 -
1677 -
1678void QComboBox::removeItem(int index) -
1679{ -
1680 QComboBoxPrivate * const d = d_func(); -
1681 if (index < 0 || index >= count())
never evaluated: index < 0
never evaluated: index >= count()
0
1682 return;
never executed: return;
0
1683 d->model->removeRows(index, 1, d->root); -
1684}
never executed: }
0
1685 -
1686 -
1687 -
1688 -
1689void QComboBox::setItemText(int index, const QString &text) -
1690{ -
1691 const QComboBoxPrivate * const d = d_func(); -
1692 QModelIndex item = d->model->index(index, d->modelColumn, d->root); -
1693 if (item.isValid()) {
never evaluated: item.isValid()
0
1694 d->model->setData(item, text, Qt::EditRole); -
1695 }
never executed: }
0
1696}
never executed: }
0
1697 -
1698 -
1699 -
1700 -
1701void QComboBox::setItemIcon(int index, const QIcon &icon) -
1702{ -
1703 const QComboBoxPrivate * const d = d_func(); -
1704 QModelIndex item = d->model->index(index, d->modelColumn, d->root); -
1705 if (item.isValid()) {
never evaluated: item.isValid()
0
1706 d->model->setData(item, icon, Qt::DecorationRole); -
1707 }
never executed: }
0
1708}
never executed: }
0
1709 -
1710 -
1711 -
1712 -
1713 -
1714void QComboBox::setItemData(int index, const QVariant &value, int role) -
1715{ -
1716 const QComboBoxPrivate * const d = d_func(); -
1717 QModelIndex item = d->model->index(index, d->modelColumn, d->root); -
1718 if (item.isValid()) {
never evaluated: item.isValid()
0
1719 d->model->setData(item, value, role); -
1720 }
never executed: }
0
1721}
never executed: }
0
1722 -
1723 -
1724 -
1725 -
1726QAbstractItemView *QComboBox::view() const -
1727{ -
1728 const QComboBoxPrivate * const d = d_func(); -
1729 return const_cast<QComboBoxPrivate*>(d)->viewContainer()->itemView();
executed: return const_cast<QComboBoxPrivate*>(d)->viewContainer()->itemView();
Execution Count:2112
2112
1730} -
1731void QComboBox::setView(QAbstractItemView *itemView) -
1732{ -
1733 QComboBoxPrivate * const d = d_func(); -
1734 if (!itemView) {
never evaluated: !itemView
0
1735 QMessageLogger("widgets/qcombobox.cpp", 2308, __PRETTY_FUNCTION__).warning("QComboBox::setView: cannot set a 0 view"); -
1736 return;
never executed: return;
0
1737 } -
1738 -
1739 if (itemView->model() != d->model)
never evaluated: itemView->model() != d->model
0
1740 itemView->setModel(d->model);
never executed: itemView->setModel(d->model);
0
1741 d->viewContainer()->setItemView(itemView); -
1742}
never executed: }
0
1743 -
1744 -
1745 -
1746 -
1747QSize QComboBox::minimumSizeHint() const -
1748{ -
1749 const QComboBoxPrivate * const d = d_func(); -
1750 return d->recomputeSizeHint(d->minimumSizeHint);
executed: return d->recomputeSizeHint(d->minimumSizeHint);
Execution Count:518
518
1751} -
1752QSize QComboBox::sizeHint() const -
1753{ -
1754 const QComboBoxPrivate * const d = d_func(); -
1755 return d->recomputeSizeHint(d->sizeHint);
executed: return d->recomputeSizeHint(d->sizeHint);
Execution Count:673
673
1756} -
1757void QComboBox::showPopup() -
1758{ -
1759 QComboBoxPrivate * const d = d_func(); -
1760 if (count() <= 0)
partially evaluated: count() <= 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1761 return;
never executed: return;
0
1762 QStyle * const style = this->style(); -
1763 -
1764 -
1765 view()->selectionModel()->setCurrentIndex(d->currentIndex, -
1766 QItemSelectionModel::ClearAndSelect); -
1767 QComboBoxPrivateContainer* container = d->viewContainer(); -
1768 QStyleOptionComboBox opt; -
1769 initStyleOption(&opt); -
1770 QRect listRect(style->subControlRect(QStyle::CC_ComboBox, &opt, -
1771 QStyle::SC_ComboBoxListBoxPopup, this)); -
1772 QRect screen = d->popupGeometry(QApplication::desktop()->screenNumber(this)); -
1773 -
1774 QPoint below = mapToGlobal(listRect.bottomLeft()); -
1775 int belowHeight = screen.bottom() - below.y(); -
1776 QPoint above = mapToGlobal(listRect.topLeft()); -
1777 int aboveHeight = above.y() - screen.y(); -
1778 bool boundToScreen = !window()->testAttribute(Qt::WA_DontShowOnScreen); -
1779 -
1780 const bool usePopup = style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this); -
1781 { -
1782 int listHeight = 0; -
1783 int count = 0; -
1784 QStack<QModelIndex> toCheck; -
1785 toCheck.push(view()->rootIndex()); -
1786 -
1787 QTreeView *treeView = qobject_cast<QTreeView*>(view()); -
1788 if (treeView && treeView->header() && !treeView->header()->isHidden())
partially evaluated: treeView
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never evaluated: treeView->header()
never evaluated: !treeView->header()->isHidden()
0-1
1789 listHeight += treeView->header()->height();
never executed: listHeight += treeView->header()->height();
0
1790 -
1791 while (!toCheck.isEmpty()) {
evaluated: !toCheck.isEmpty()
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
1792 QModelIndex parent = toCheck.pop(); -
1793 for (int i = 0; i < d->model->rowCount(parent); ++i) {
evaluated: i < d->model->rowCount(parent)
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:1
1-3
1794 QModelIndex idx = d->model->index(i, d->modelColumn, parent); -
1795 if (!idx.isValid())
partially evaluated: !idx.isValid()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
1796 continue;
never executed: continue;
0
1797 listHeight += view()->visualRect(idx).height() + container->spacing(); -
1798 -
1799 if (d->model->hasChildren(idx) && treeView && treeView->isExpanded(idx))
partially evaluated: d->model->hasChildren(idx)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
never evaluated: treeView
never evaluated: treeView->isExpanded(idx)
0-3
1800 toCheck.push(idx);
never executed: toCheck.push(idx);
0
1801 -
1802 ++count; -
1803 if (!usePopup && count >= d->maxVisibleItems) {
partially evaluated: !usePopup
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
partially evaluated: count >= d->maxVisibleItems
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
1804 toCheck.clear(); -
1805 break;
never executed: break;
0
1806 } -
1807 }
executed: }
Execution Count:3
3
1808 }
executed: }
Execution Count:1
1
1809 listRect.setHeight(listHeight); -
1810 } -
1811 -
1812 { -
1813 -
1814 int heightMargin = 2*container->spacing(); -
1815 -
1816 -
1817 int marginTop, marginBottom; -
1818 container->getContentsMargins(0, &marginTop, 0, &marginBottom); -
1819 heightMargin += marginTop + marginBottom; -
1820 -
1821 -
1822 view()->getContentsMargins(0, &marginTop, 0, &marginBottom); -
1823 marginTop += static_cast<QAbstractScrollAreaPrivate *>(QObjectPrivate::get(view()))->top; -
1824 marginBottom += static_cast<QAbstractScrollAreaPrivate *>(QObjectPrivate::get(view()))->bottom; -
1825 heightMargin += marginTop + marginBottom; -
1826 -
1827 listRect.setHeight(listRect.height() + heightMargin); -
1828 } -
1829 -
1830 -
1831 if (usePopup)
partially evaluated: usePopup
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1832 listRect.setHeight(listRect.height() + style->pixelMetric(QStyle::PM_MenuVMargin, &opt, this) * 2);
never executed: listRect.setHeight(listRect.height() + style->pixelMetric(QStyle::PM_MenuVMargin, &opt, this) * 2);
0
1833 -
1834 -
1835 if (usePopup) {
partially evaluated: usePopup
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1836 const int diff = d->computeWidthHint() - width(); -
1837 if (diff > 0)
never evaluated: diff > 0
0
1838 listRect.setWidth(listRect.width() + diff);
never executed: listRect.setWidth(listRect.width() + diff);
0
1839 }
never executed: }
0
1840 -
1841 -
1842 container->layout()->activate(); -
1843 -
1844 listRect.setSize( listRect.size().expandedTo(container->minimumSize()) -
1845 .boundedTo(container->maximumSize())); -
1846 -
1847 -
1848 if (boundToScreen) {
partially evaluated: boundToScreen
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
1849 if (listRect.width() > screen.width() )
partially evaluated: listRect.width() > screen.width()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1850 listRect.setWidth(screen.width());
never executed: listRect.setWidth(screen.width());
0
1851 if (mapToGlobal(listRect.bottomRight()).x() > screen.right()) {
partially evaluated: mapToGlobal(listRect.bottomRight()).x() > screen.right()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1852 below.setX(screen.x() + screen.width() - listRect.width()); -
1853 above.setX(screen.x() + screen.width() - listRect.width()); -
1854 }
never executed: }
0
1855 if (mapToGlobal(listRect.topLeft()).x() < screen.x() ) {
partially evaluated: mapToGlobal(listRect.topLeft()).x() < screen.x()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1856 below.setX(screen.x()); -
1857 above.setX(screen.x()); -
1858 }
never executed: }
0
1859 }
executed: }
Execution Count:1
1
1860 -
1861 if (usePopup) {
partially evaluated: usePopup
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1862 -
1863 listRect.moveLeft(above.x()); -
1864 -
1865 -
1866 -
1867 const QRect currentItemRect = view()->visualRect(view()->currentIndex()); -
1868 const int offset = listRect.top() - currentItemRect.top(); -
1869 listRect.moveTop(above.y() + offset - listRect.top()); -
1870 -
1871 -
1872 -
1873 -
1874 const int height = !boundToScreen ? listRect.height() : qMin(listRect.height(), screen.height());
never evaluated: !boundToScreen
0
1875 listRect.setHeight(height); -
1876 -
1877 if (boundToScreen) {
never evaluated: boundToScreen
0
1878 if (listRect.top() < screen.top())
never evaluated: listRect.top() < screen.top()
0
1879 listRect.moveTop(screen.top());
never executed: listRect.moveTop(screen.top());
0
1880 if (listRect.bottom() > screen.bottom())
never evaluated: listRect.bottom() > screen.bottom()
0
1881 listRect.moveBottom(screen.bottom());
never executed: listRect.moveBottom(screen.bottom());
0
1882 }
never executed: }
0
1883 } else if (!boundToScreen || listRect.height() <= belowHeight) {
never executed: }
partially evaluated: !boundToScreen
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: listRect.height() <= belowHeight
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
1884 listRect.moveTopLeft(below); -
1885 } else if (listRect.height() <= aboveHeight) {
executed: }
Execution Count:1
never evaluated: listRect.height() <= aboveHeight
0-1
1886 listRect.moveBottomLeft(above); -
1887 } else if (belowHeight >= aboveHeight) {
never executed: }
never evaluated: belowHeight >= aboveHeight
0
1888 listRect.setHeight(belowHeight); -
1889 listRect.moveTopLeft(below); -
1890 } else {
never executed: }
0
1891 listRect.setHeight(aboveHeight); -
1892 listRect.moveBottomLeft(above); -
1893 }
never executed: }
0
1894 -
1895 if ((static_cast<QApplication *>(QCoreApplication::instance()))) {
partially evaluated: (static_cast<QApplication *>(QCoreApplication::instance()))
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
1896 (static_cast<QApplication *>(QCoreApplication::instance()))->inputMethod()->reset(); -
1897 }
executed: }
Execution Count:1
1
1898 -
1899 QScrollBar *sb = view()->horizontalScrollBar(); -
1900 Qt::ScrollBarPolicy policy = view()->horizontalScrollBarPolicy(); -
1901 bool needHorizontalScrollBar = (policy == Qt::ScrollBarAsNeeded || policy == Qt::ScrollBarAlwaysOn)
partially evaluated: policy == Qt::ScrollBarAsNeeded
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: policy == Qt::ScrollBarAlwaysOn
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1902 && sb->minimum() < sb->maximum();
never evaluated: sb->minimum() < sb->maximum()
0
1903 if (needHorizontalScrollBar) {
partially evaluated: needHorizontalScrollBar
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1904 listRect.adjust(0, 0, 0, sb->height()); -
1905 }
never executed: }
0
1906 container->setGeometry(listRect); -
1907 -
1908 -
1909 const bool updatesEnabled = container->updatesEnabled(); -
1910 -
1911 -
1912 -
1913 bool scrollDown = (listRect.topLeft() == below); -
1914 if (QApplication::isEffectEnabled(Qt::UI_AnimateCombo)
partially evaluated: QApplication::isEffectEnabled(Qt::UI_AnimateCombo)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
1915 && !style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this) && !window()->testAttribute(Qt::WA_DontShowOnScreen))
never evaluated: !style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this)
never evaluated: !window()->testAttribute(Qt::WA_DontShowOnScreen)
0
1916 qScrollEffect(container, scrollDown ? QEffects::DownScroll : QEffects::UpScroll, 150);
never executed: qScrollEffect(container, scrollDown ? QEffects::DownScroll : QEffects::UpScroll, 150);
0
1917 container->setUpdatesEnabled(false); -
1918 -
1919 -
1920 container->raise(); -
1921 container->show(); -
1922 container->updateScrollers(); -
1923 view()->setFocus(); -
1924 -
1925 view()->scrollTo(view()->currentIndex(), -
1926 style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this) -
1927 ? QAbstractItemView::PositionAtCenter -
1928 : QAbstractItemView::EnsureVisible); -
1929 -
1930 -
1931 container->setUpdatesEnabled(updatesEnabled); -
1932 -
1933 -
1934 container->update(); -
1935 -
1936 -
1937 -
1938 -
1939}
executed: }
Execution Count:1
1
1940void QComboBox::hidePopup() -
1941{ -
1942 QComboBoxPrivate * const d = d_func(); -
1943 if (d->container && d->container->isVisible()) {
evaluated: d->container
TRUEFALSE
yes
Evaluation Count:57
yes
Evaluation Count:75
partially evaluated: d->container->isVisible()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:57
0-75
1944 -
1945 d->model->blockSignals(true); -
1946 d->container->itemView()->blockSignals(true); -
1947 d->container->blockSignals(true); -
1948 -
1949 if (style()->styleHint(QStyle::SH_Menu_FlashTriggeredItem)) {
never evaluated: style()->styleHint(QStyle::SH_Menu_FlashTriggeredItem)
0
1950 QItemSelectionModel *selectionModel = view() ? view()->selectionModel() : 0;
never evaluated: view()
0
1951 if (selectionModel && selectionModel->hasSelection()) {
never evaluated: selectionModel
never evaluated: selectionModel->hasSelection()
0
1952 QEventLoop eventLoop; -
1953 const QItemSelection selection = selectionModel->selection(); -
1954 -
1955 -
1956 selectionModel->select(selection, QItemSelectionModel::Toggle); -
1957 QTimer::singleShot(60, &eventLoop, "1""quit()"); -
1958 eventLoop.exec(); -
1959 -
1960 -
1961 selectionModel->select(selection, QItemSelectionModel::Toggle); -
1962 QTimer::singleShot(20, &eventLoop, "1""quit()"); -
1963 eventLoop.exec(); -
1964 }
never executed: }
0
1965 }
never executed: }
0
1966 -
1967 -
1968 bool needFade = style()->styleHint(QStyle::SH_Menu_FadeOutOnHide); -
1969 bool didFade = false; -
1970 if (needFade) {
never evaluated: needFade
0
1971 }
never executed: }
0
1972 d->model->blockSignals(false); -
1973 d->container->itemView()->blockSignals(false); -
1974 d->container->blockSignals(false); -
1975 -
1976 if (!didFade)
never evaluated: !didFade
0
1977 -
1978 -
1979 d->container->hide();
never executed: d->container->hide();
0
1980 }
never executed: }
0
1981 -
1982 -
1983 -
1984 -
1985 d->_q_resetButton(); -
1986}
executed: }
Execution Count:132
132
1987 -
1988 -
1989 -
1990 -
1991 -
1992 -
1993 -
1994void QComboBox::clear() -
1995{ -
1996 QComboBoxPrivate * const d = d_func(); -
1997 d->model->removeRows(0, d->model->rowCount(d->root), d->root); -
1998 -
1999 QAccessibleEvent event(this, QAccessible::NameChanged); -
2000 QAccessible::updateAccessibility(&event); -
2001 -
2002}
executed: }
Execution Count:238
238
2003 -
2004 -
2005 -
2006 -
2007void QComboBox::clearEditText() -
2008{ -
2009 QComboBoxPrivate * const d = d_func(); -
2010 if (d->lineEdit)
partially evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
0-1
2011 d->lineEdit->clear();
executed: d->lineEdit->clear();
Execution Count:1
1
2012 -
2013 QAccessibleEvent event(this, QAccessible::NameChanged); -
2014 QAccessible::updateAccessibility(&event); -
2015 -
2016}
executed: }
Execution Count:1
1
2017 -
2018 -
2019 -
2020 -
2021void QComboBox::setEditText(const QString &text) -
2022{ -
2023 QComboBoxPrivate * const d = d_func(); -
2024 if (d->lineEdit)
partially evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
2025 d->lineEdit->setText(text);
executed: d->lineEdit->setText(text);
Execution Count:4
4
2026 -
2027 QAccessibleEvent event(this, QAccessible::NameChanged); -
2028 QAccessible::updateAccessibility(&event); -
2029 -
2030}
executed: }
Execution Count:4
4
2031 -
2032 -
2033 -
2034 -
2035void QComboBox::focusInEvent(QFocusEvent *e) -
2036{ -
2037 QComboBoxPrivate * const d = d_func(); -
2038 update(); -
2039 if (d->lineEdit) {
evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:7
7-9
2040 d->lineEdit->event(e); -
2041 -
2042 if (d->lineEdit->completer())
partially evaluated: d->lineEdit->completer()
TRUEFALSE
yes
Evaluation Count:9
no
Evaluation Count:0
0-9
2043 d->lineEdit->completer()->setWidget(this);
executed: d->lineEdit->completer()->setWidget(this);
Execution Count:9
9
2044 -
2045 }
executed: }
Execution Count:9
9
2046}
executed: }
Execution Count:16
16
2047 -
2048 -
2049 -
2050 -
2051void QComboBox::focusOutEvent(QFocusEvent *e) -
2052{ -
2053 QComboBoxPrivate * const d = d_func(); -
2054 update(); -
2055 if (d->lineEdit)
evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:5
5-6
2056 d->lineEdit->event(e);
executed: d->lineEdit->event(e);
Execution Count:6
6
2057}
executed: }
Execution Count:11
11
2058 -
2059 -
2060void QComboBox::changeEvent(QEvent *e) -
2061{ -
2062 QComboBoxPrivate * const d = d_func(); -
2063 switch (e->type()) { -
2064 case QEvent::StyleChange: -
2065 d->updateDelegate(); -
2066 -
2067 -
2068 -
2069 d->sizeHint = QSize(); -
2070 d->minimumSizeHint = QSize(); -
2071 d->updateLayoutDirection(); -
2072 if (d->lineEdit)
partially evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
2073 d->updateLineEditGeometry();
executed: d->updateLineEditGeometry();
Execution Count:2
2
2074 d->setLayoutItemMargins(QStyle::SE_ComboBoxLayoutItem); -
2075 -
2076 -
2077 break;
executed: break;
Execution Count:2
2
2078 case QEvent::EnabledChange: -
2079 if (!isEnabled())
evaluated: !isEnabled()
TRUEFALSE
yes
Evaluation Count:16
yes
Evaluation Count:12
12-16
2080 hidePopup();
executed: hidePopup();
Execution Count:16
16
2081 break;
executed: break;
Execution Count:28
28
2082 case QEvent::PaletteChange: { -
2083 d->updateViewContainerPaletteAndOpacity(); -
2084 break;
never executed: break;
0
2085 } -
2086 case QEvent::FontChange: -
2087 d->sizeHint = QSize(); -
2088 d->viewContainer()->setFont(font()); -
2089 if (d->lineEdit)
never evaluated: d->lineEdit
0
2090 d->updateLineEditGeometry();
never executed: d->updateLineEditGeometry();
0
2091 break;
never executed: break;
0
2092 default: -
2093 break;
executed: break;
Execution Count:23
23
2094 } -
2095 QWidget::changeEvent(e); -
2096}
executed: }
Execution Count:53
53
2097 -
2098 -
2099 -
2100 -
2101void QComboBox::resizeEvent(QResizeEvent *) -
2102{ -
2103 QComboBoxPrivate * const d = d_func(); -
2104 d->updateLineEditGeometry(); -
2105}
executed: }
Execution Count:112
112
2106 -
2107 -
2108 -
2109 -
2110void QComboBox::paintEvent(QPaintEvent *) -
2111{ -
2112 QStylePainter painter(this); -
2113 painter.setPen(palette().color(QPalette::Text)); -
2114 -
2115 -
2116 QStyleOptionComboBox opt; -
2117 initStyleOption(&opt); -
2118 painter.drawComplexControl(QStyle::CC_ComboBox, opt); -
2119 -
2120 -
2121 painter.drawControl(QStyle::CE_ComboBoxLabel, opt); -
2122}
executed: }
Execution Count:60
60
2123 -
2124 -
2125 -
2126 -
2127void QComboBox::showEvent(QShowEvent *e) -
2128{ -
2129 QComboBoxPrivate * const d = d_func(); -
2130 if (!d->shownOnce && d->sizeAdjustPolicy == QComboBox::AdjustToContentsOnFirstShow) {
evaluated: !d->shownOnce
TRUEFALSE
yes
Evaluation Count:109
yes
Evaluation Count:7
evaluated: d->sizeAdjustPolicy == QComboBox::AdjustToContentsOnFirstShow
TRUEFALSE
yes
Evaluation Count:67
yes
Evaluation Count:42
7-109
2131 d->sizeHint = QSize(); -
2132 updateGeometry(); -
2133 }
executed: }
Execution Count:67
67
2134 d->shownOnce = true; -
2135 QWidget::showEvent(e); -
2136}
executed: }
Execution Count:116
116
2137 -
2138 -
2139 -
2140 -
2141void QComboBox::hideEvent(QHideEvent *) -
2142{ -
2143 hidePopup(); -
2144}
executed: }
Execution Count:116
116
2145 -
2146 -
2147 -
2148 -
2149bool QComboBox::event(QEvent *event) -
2150{ -
2151 QComboBoxPrivate * const d = d_func(); -
2152 switch(event->type()) { -
2153 case QEvent::LayoutDirectionChange: -
2154 case QEvent::ApplicationLayoutDirectionChange: -
2155 d->updateLayoutDirection(); -
2156 d->updateLineEditGeometry(); -
2157 break;
never executed: break;
0
2158 case QEvent::HoverEnter: -
2159 case QEvent::HoverLeave: -
2160 case QEvent::HoverMove: -
2161 if (const QHoverEvent *he = static_cast<const QHoverEvent *>(event))
never evaluated: const QHoverEvent *he = static_cast<const QHoverEvent *>(event)
0
2162 d->updateHoverControl(he->pos());
never executed: d->updateHoverControl(he->pos());
0
2163 break;
never executed: break;
0
2164 case QEvent::ShortcutOverride: -
2165 if (d->lineEdit)
evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:1
1-8
2166 return d->lineEdit->event(event);
executed: return d->lineEdit->event(event);
Execution Count:8
8
2167 break;
executed: break;
Execution Count:1
1
2168 default: -
2169 break;
executed: break;
Execution Count:4080
4080
2170 } -
2171 return QWidget::event(event);
executed: return QWidget::event(event);
Execution Count:4081
4081
2172} -
2173 -
2174 -
2175 -
2176 -
2177void QComboBox::mousePressEvent(QMouseEvent *e) -
2178{ -
2179 QComboBoxPrivate * const d = d_func(); -
2180 QStyleOptionComboBox opt; -
2181 initStyleOption(&opt); -
2182 QStyle::SubControl sc = style()->hitTestComplexControl(QStyle::CC_ComboBox, &opt, e->pos(), -
2183 this); -
2184 if (e->button() == Qt::LeftButton && (sc == QStyle::SC_ComboBoxArrow || !isEditable())
partially evaluated: e->button() == Qt::LeftButton
TRUEFALSE
yes
Evaluation Count:1
no
Evaluation Count:0
partially evaluated: sc == QStyle::SC_ComboBoxArrow
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: !isEditable()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2185 && !d->viewContainer()->isVisible()) {
never evaluated: !d->viewContainer()->isVisible()
0
2186 if (sc == QStyle::SC_ComboBoxArrow)
never evaluated: sc == QStyle::SC_ComboBoxArrow
0
2187 d->updateArrow(QStyle::State_Sunken);
never executed: d->updateArrow(QStyle::State_Sunken);
0
2188 -
2189 -
2190 -
2191 -
2192 -
2193 -
2194 d->viewContainer()->blockMouseReleaseTimer.start(QApplication::doubleClickInterval()); -
2195 d->viewContainer()->initialClickPosition = mapToGlobal(e->pos()); -
2196 -
2197 -
2198 -
2199 showPopup(); -
2200 } else {
never executed: }
0
2201 -
2202 -
2203 -
2204 -
2205 -
2206 -
2207 QWidget::mousePressEvent(e); -
2208 }
executed: }
Execution Count:1
1
2209} -
2210 -
2211 -
2212 -
2213 -
2214void QComboBox::mouseReleaseEvent(QMouseEvent *e) -
2215{ -
2216 QComboBoxPrivate * const d = d_func(); -
2217 (void)e;; -
2218 d->updateArrow(QStyle::State_None); -
2219}
executed: }
Execution Count:1
1
2220 -
2221 -
2222 -
2223 -
2224void QComboBox::keyPressEvent(QKeyEvent *e) -
2225{ -
2226 QComboBoxPrivate * const d = d_func(); -
2227 -
2228 -
2229 if (d->lineEdit
evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:1
1-6
2230 && d->lineEdit->completer()
partially evaluated: d->lineEdit->completer()
TRUEFALSE
yes
Evaluation Count:6
no
Evaluation Count:0
0-6
2231 && d->lineEdit->completer()->popup()
evaluated: d->lineEdit->completer()->popup()
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:4
2-4
2232 && d->lineEdit->completer()->popup()->isVisible()) {
evaluated: d->lineEdit->completer()->popup()->isVisible()
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:1
1
2233 -
2234 d->lineEdit->event(e); -
2235 return;
executed: return;
Execution Count:1
1
2236 } -
2237 -
2238 -
2239 enum Move { NoMove=0 , MoveUp , MoveDown , MoveFirst , MoveLast}; -
2240 -
2241 Move move = NoMove; -
2242 int newIndex = currentIndex(); -
2243 switch (e->key()) { -
2244 case Qt::Key_Up: -
2245 if (e->modifiers() & Qt::ControlModifier)
never evaluated: e->modifiers() & Qt::ControlModifier
0
2246 break;
never executed: break;
0
2247 case Qt::Key_PageUp:
code before this statement never executed: case Qt::Key_PageUp:
0
2248 -
2249 -
2250 -
2251 -
2252 -
2253 move = MoveUp; -
2254 break;
never executed: break;
0
2255 case Qt::Key_Down: -
2256 if (e->modifiers() & Qt::AltModifier) {
partially evaluated: e->modifiers() & Qt::AltModifier
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
2257 showPopup(); -
2258 return;
never executed: return;
0
2259 } else if (e->modifiers() & Qt::ControlModifier)
partially evaluated: e->modifiers() & Qt::ControlModifier
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
2260 break;
never executed: break;
0
2261 -
2262 case Qt::Key_PageDown:
code before this statement executed: case Qt::Key_PageDown:
Execution Count:2
2
2263 -
2264 -
2265 -
2266 -
2267 -
2268 move = MoveDown; -
2269 break;
executed: break;
Execution Count:2
2
2270 case Qt::Key_Home: -
2271 if (!d->lineEdit)
never evaluated: !d->lineEdit
0
2272 move = MoveFirst;
never executed: move = MoveFirst;
0
2273 break;
never executed: break;
0
2274 case Qt::Key_End: -
2275 if (!d->lineEdit)
never evaluated: !d->lineEdit
0
2276 move = MoveLast;
never executed: move = MoveLast;
0
2277 break;
never executed: break;
0
2278 case Qt::Key_F4: -
2279 if (!e->modifiers()) {
never evaluated: !e->modifiers()
0
2280 showPopup(); -
2281 return;
never executed: return;
0
2282 } -
2283 break;
never executed: break;
0
2284 case Qt::Key_Space: -
2285 if (!d->lineEdit) {
never evaluated: !d->lineEdit
0
2286 showPopup(); -
2287 return;
never executed: return;
0
2288 } -
2289 case Qt::Key_Enter:
code before this statement never executed: case Qt::Key_Enter:
0
2290 case Qt::Key_Return: -
2291 case Qt::Key_Escape: -
2292 if (!d->lineEdit)
partially evaluated: !d->lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
2293 e->ignore();
never executed: e->ignore();
0
2294 break;
executed: break;
Execution Count:1
1
2295 default: -
2296 if (!d->lineEdit) {
partially evaluated: !d->lineEdit
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
0-3
2297 if (!e->text().isEmpty())
never evaluated: !e->text().isEmpty()
0
2298 d->keyboardSearchString(e->text());
never executed: d->keyboardSearchString(e->text());
0
2299 else -
2300 e->ignore();
never executed: e->ignore();
0
2301 } -
2302 }
executed: }
Execution Count:3
3
2303 -
2304 if (move != NoMove) {
evaluated: move != NoMove
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:4
2-4
2305 e->accept(); -
2306 switch (move) { -
2307 case MoveFirst: -
2308 newIndex = -1; -
2309 case MoveDown:
code before this statement never executed: case MoveDown:
0
2310 newIndex++; -
2311 while ((newIndex < count()) && !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled))
partially evaluated: (newIndex < count())
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
2312 newIndex++;
never executed: newIndex++;
0
2313 break;
executed: break;
Execution Count:2
2
2314 case MoveLast: -
2315 newIndex = count(); -
2316 case MoveUp:
code before this statement never executed: case MoveUp:
0
2317 newIndex--; -
2318 while ((newIndex >= 0) && !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled))
never evaluated: (newIndex >= 0)
never evaluated: !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled)
0
2319 newIndex--;
never executed: newIndex--;
0
2320 break;
never executed: break;
0
2321 default: -
2322 e->ignore(); -
2323 break;
never executed: break;
0
2324 } -
2325 -
2326 if (newIndex >= 0 && newIndex < count() && newIndex != currentIndex()) {
partially evaluated: newIndex >= 0
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: newIndex < count()
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
partially evaluated: newIndex != currentIndex()
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
2327 setCurrentIndex(newIndex); -
2328 d->emitActivated(d->currentIndex); -
2329 }
executed: }
Execution Count:2
2
2330 } else if (d->lineEdit) {
executed: }
Execution Count:2
partially evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
2331 d->lineEdit->event(e); -
2332 }
executed: }
Execution Count:4
4
2333} -
2334 -
2335 -
2336 -
2337 -
2338 -
2339void QComboBox::keyReleaseEvent(QKeyEvent *e) -
2340{ -
2341 QComboBoxPrivate * const d = d_func(); -
2342 if (d->lineEdit)
never evaluated: d->lineEdit
0
2343 d->lineEdit->event(e);
never executed: d->lineEdit->event(e);
0
2344}
never executed: }
0
2345 -
2346 -
2347 -
2348 -
2349 -
2350void QComboBox::wheelEvent(QWheelEvent *e) -
2351{ -
2352 QComboBoxPrivate * const d = d_func(); -
2353 if (!d->viewContainer()->isVisible()) {
never evaluated: !d->viewContainer()->isVisible()
0
2354 int newIndex = currentIndex(); -
2355 -
2356 if (e->delta() > 0) {
never evaluated: e->delta() > 0
0
2357 newIndex--; -
2358 while ((newIndex >= 0) && !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled))
never evaluated: (newIndex >= 0)
never evaluated: !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled)
0
2359 newIndex--;
never executed: newIndex--;
0
2360 } else {
never executed: }
0
2361 newIndex++; -
2362 while ((newIndex < count()) && !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled))
never evaluated: (newIndex < count())
never evaluated: !(d->model->flags(d->model->index(newIndex,d->modelColumn,d->root)) & Qt::ItemIsEnabled)
0
2363 newIndex++;
never executed: newIndex++;
0
2364 }
never executed: }
0
2365 -
2366 if (newIndex >= 0 && newIndex < count() && newIndex != currentIndex()) {
never evaluated: newIndex >= 0
never evaluated: newIndex < count()
never evaluated: newIndex != currentIndex()
0
2367 setCurrentIndex(newIndex); -
2368 d->emitActivated(d->currentIndex); -
2369 }
never executed: }
0
2370 e->accept(); -
2371 }
never executed: }
0
2372}
never executed: }
0
2373 -
2374 -
2375 -
2376 -
2377 -
2378 -
2379void QComboBox::contextMenuEvent(QContextMenuEvent *e) -
2380{ -
2381 QComboBoxPrivate * const d = d_func(); -
2382 if (d->lineEdit) {
never evaluated: d->lineEdit
0
2383 Qt::ContextMenuPolicy p = d->lineEdit->contextMenuPolicy(); -
2384 d->lineEdit->setContextMenuPolicy(Qt::DefaultContextMenu); -
2385 d->lineEdit->event(e); -
2386 d->lineEdit->setContextMenuPolicy(p); -
2387 }
never executed: }
0
2388}
never executed: }
0
2389 -
2390 -
2391void QComboBoxPrivate::keyboardSearchString(const QString &text) -
2392{ -
2393 -
2394 QAbstractItemView *view = viewContainer()->itemView(); -
2395 view->setCurrentIndex(currentIndex); -
2396 int currentRow = view->currentIndex().row(); -
2397 view->keyboardSearch(text); -
2398 if (currentRow != view->currentIndex().row()) {
never evaluated: currentRow != view->currentIndex().row()
0
2399 setCurrentIndex(view->currentIndex()); -
2400 emitActivated(currentIndex); -
2401 }
never executed: }
0
2402}
never executed: }
0
2403 -
2404void QComboBoxPrivate::modelChanged() -
2405{ -
2406 QComboBox * const q = q_func(); -
2407 -
2408 if (sizeAdjustPolicy == QComboBox::AdjustToContents) {
partially evaluated: sizeAdjustPolicy == QComboBox::AdjustToContents
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:887
0-887
2409 sizeHint = QSize(); -
2410 adjustComboBoxSize(); -
2411 q->updateGeometry(); -
2412 }
never executed: }
0
2413}
executed: }
Execution Count:887
887
2414 -
2415 -
2416 -
2417 -
2418void QComboBox::inputMethodEvent(QInputMethodEvent *e) -
2419{ -
2420 QComboBoxPrivate * const d = d_func(); -
2421 if (d->lineEdit) {
never evaluated: d->lineEdit
0
2422 d->lineEdit->event(e); -
2423 } else {
never executed: }
0
2424 if (!e->commitString().isEmpty())
never evaluated: !e->commitString().isEmpty()
0
2425 d->keyboardSearchString(e->commitString());
never executed: d->keyboardSearchString(e->commitString());
0
2426 else -
2427 e->ignore();
never executed: e->ignore();
0
2428 } -
2429} -
2430 -
2431 -
2432 -
2433 -
2434QVariant QComboBox::inputMethodQuery(Qt::InputMethodQuery query) const -
2435{ -
2436 const QComboBoxPrivate * const d = d_func(); -
2437 if (d->lineEdit)
partially evaluated: d->lineEdit
TRUEFALSE
yes
Evaluation Count:30
no
Evaluation Count:0
0-30
2438 return d->lineEdit->inputMethodQuery(query);
executed: return d->lineEdit->inputMethodQuery(query);
Execution Count:30
30
2439 return QWidget::inputMethodQuery(query);
never executed: return QWidget::inputMethodQuery(query);
0
2440} -
2441bool QComboBox::hasFrame() const -
2442{ -
2443 const QComboBoxPrivate * const d = d_func(); -
2444 return d->frame;
never executed: return d->frame;
0
2445} -
2446 -
2447 -
2448void QComboBox::setFrame(bool enable) -
2449{ -
2450 QComboBoxPrivate * const d = d_func(); -
2451 d->frame = enable; -
2452 update(); -
2453 updateGeometry(); -
2454}
executed: }
Execution Count:1
1
2455int QComboBox::modelColumn() const -
2456{ -
2457 const QComboBoxPrivate * const d = d_func(); -
2458 return d->modelColumn;
never executed: return d->modelColumn;
0
2459} -
2460 -
2461void QComboBox::setModelColumn(int visibleColumn) -
2462{ -
2463 QComboBoxPrivate * const d = d_func(); -
2464 d->modelColumn = visibleColumn; -
2465 QListView *lv = qobject_cast<QListView *>(d->viewContainer()->itemView()); -
2466 if (lv)
never evaluated: lv
0
2467 lv->setModelColumn(visibleColumn);
never executed: lv->setModelColumn(visibleColumn);
0
2468 -
2469 if (d->lineEdit && d->lineEdit->completer()
never evaluated: d->lineEdit
never evaluated: d->lineEdit->completer()
0
2470 && d->lineEdit->completer() == d->completer)
never evaluated: d->lineEdit->completer() == d->completer
0
2471 d->lineEdit->completer()->setCompletionColumn(visibleColumn);
never executed: d->lineEdit->completer()->setCompletionColumn(visibleColumn);
0
2472 -
2473 setCurrentIndex(currentIndex()); -
2474}
never executed: }
0
2475 -
2476 -
2477 -
2478 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial