From a9bb1c63dc12034ebac1dd9402c9719dca7a92e1 Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Tue, 3 Mar 2015 11:27:28 +0100 Subject: Adjust wiki links to the new redirect it looks nicer this way Change-Id: I872976bdef5f581187a758aa92b02e2f5f32b130 Reviewed-by: Oswald Buddenhagen --- src/widgets/doc/src/modelview.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/widgets') diff --git a/src/widgets/doc/src/modelview.qdoc b/src/widgets/doc/src/modelview.qdoc index 31a24204fe..b95a3ebba5 100644 --- a/src/widgets/doc/src/modelview.qdoc +++ b/src/widgets/doc/src/modelview.qdoc @@ -576,7 +576,7 @@ problem. Qt Labs provides software called - \l{http://wiki.qt.io/?title=Model_Test}{ModelTest}, + \l{http://wiki.qt.io/Model_Test}{ModelTest}, which checks models while your programming is running. Every time the model is changed, ModelTest scans the model and reports errors with an assert. This is especially important for tree models, since their hierarchical -- cgit v1.2.3 From 8a60f57462cab5203aae5892a590a8bf767acd63 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Sun, 8 Mar 2015 21:33:02 +0100 Subject: [Android]: Ensure clicking on the arrow shows the popup This was a problem with editable comboboxes specifically as there is an edit field area which is separate to the arrow. Giving a valid rectangle for the arrow allows QComboBox to know that it was clicked on. Task-number: QTBUG-44931 Change-Id: Ie1d06a6631d6c7f5e813419a5e76f67ec9dcd7e8 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/widgets/styles/qandroidstyle.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/widgets') diff --git a/src/widgets/styles/qandroidstyle.cpp b/src/widgets/styles/qandroidstyle.cpp index a5a75dae02..18074b7aed 100644 --- a/src/widgets/styles/qandroidstyle.cpp +++ b/src/widgets/styles/qandroidstyle.cpp @@ -1811,6 +1811,10 @@ QRect QAndroidStyle::AndroidSpinnerControl::subControlRect(const QStyleOptionCom { if (sc == QStyle::SC_ComboBoxListBoxPopup) return option->rect; + if (sc == QStyle::SC_ComboBoxArrow) { + const QRect editField = subControlRect(option, QStyle::SC_ComboBoxEditField, widget); + return QRect(editField.topRight(), QSize(option->rect.width() - editField.width(), option->rect.height())); + } return AndroidControl::subControlRect(option, sc, widget); } -- cgit v1.2.3 From 6589fb7e0da291a3d93ff1803d66fb7942bf393e Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Tue, 10 Mar 2015 09:41:35 +0100 Subject: Workaround for programs depending on previous layout bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change 2bfee10f made QDockAreaLayout respect the maximum size of the central widget. This broke some existing programs which would set sizePolicy to Fixed on a central widget without a sizeHint. This patch restores the old behaviour for the special case where there are no dock areas. It is highly unlikely that the intention in this case is to have a very small central widget with huge blank areas on either side. Task-number: QTBUG-43797 Change-Id: I1e1fb17204f72166da3b0b054a7777e8183604a7 Reviewed-by: Jan Arve Sæther --- src/widgets/widgets/qdockarealayout.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/widgets') diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index 702cd8bac9..340d2772f8 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -2681,6 +2681,8 @@ void QDockAreaLayout::getGrid(QVector *_ver_struct_list, ver_struct_list[i].sizeHint = qMax(ver_struct_list[i].sizeHint, ver_struct_list[i].minimumSize); } + if (have_central && ver_struct_list[0].empty && ver_struct_list[2].empty) + ver_struct_list[1].maximumSize = QWIDGETSIZE_MAX; } if (_hor_struct_list != 0) { @@ -2740,6 +2742,9 @@ void QDockAreaLayout::getGrid(QVector *_ver_struct_list, hor_struct_list[i].sizeHint = qMax(hor_struct_list[i].sizeHint, hor_struct_list[i].minimumSize); } + if (have_central && hor_struct_list[0].empty && hor_struct_list[2].empty) + hor_struct_list[1].maximumSize = QWIDGETSIZE_MAX; + } } -- cgit v1.2.3 From 5bee3ac1da725489f760810d69289a96ebf9ea75 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 13 Mar 2015 12:26:55 +0100 Subject: Do not colorizing images to invalid premultiplied colors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In some combinations the fusion style colorizeImage method would generate invalid colors causing odd colors in the end result. Task-number: QTBUG-41515 Change-Id: Ib16049be1f3e93ae4976524df2827076eac7d94f Reviewed-by: Friedemann Kleint Reviewed-by: Jørgen Lind Reviewed-by: Jens Bache-Wiig --- src/widgets/styles/qfusionstyle.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/widgets') diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index 0cc1211cc0..62097a2cee 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -209,7 +209,10 @@ static QPixmap colorizedImage(const QString &fileName, const QColor &color, int unsigned char green = gray + qt_div_255(sourceGreen * colorDiff); unsigned char blue = gray + qt_div_255(sourceBlue * colorDiff); unsigned char alpha = qt_div_255(qAlpha(col) * qAlpha(source)); - data[x] = qRgba(red, green, blue, alpha); + data[x] = qRgba(std::min(alpha, red), + std::min(alpha, green), + std::min(alpha, blue), + alpha); } } if (rotation != 0) { -- cgit v1.2.3 From e610ef8c8d156f8e70a51c719458eaea1b2266a8 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Mon, 29 Dec 2014 10:35:09 +0100 Subject: QComboBox: Update completer on setCurrentIndex() When the ComboBox currentText() was changed by key LineUp or LineDown or mouse click, the completer still contained the last inserted characters. If now all text was selected (by Ctrl+A or selectAll()), the old item and index was restored on next Enter press. Task-number: QTBUG-41288 Change-Id: I6916fd31c8b8fbacfb12e1a62c3e46823cf918b4 Reviewed-by: Timur Pocheptsov --- src/widgets/widgets/qcombobox.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/widgets') diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index 40cf2f0f95..3555c5f261 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -2074,8 +2074,11 @@ void QComboBoxPrivate::setCurrentIndex(const QModelIndex &mi) currentIndex = QPersistentModelIndex(normalized); if (lineEdit) { const QString newText = itemText(normalized); - if (lineEdit->text() != newText) + if (lineEdit->text() != newText) { lineEdit->setText(newText); + if (lineEdit->completer()) + lineEdit->completer()->setCompletionPrefix(newText); + } updateLineEditGeometry(); } if (indexChanged) { -- cgit v1.2.3 From d41368b4e9e8d3abc0ced08392cd1be2e37c9d37 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Thu, 23 Oct 2014 13:49:56 +0200 Subject: Doc: warn about resize event bug The resize event for QMdiSubWindow may occasionally have an invalid oldSize(). This has been the case since 2007. Fixing this looks like a high risk, low reward endeavour. Task-number: QTBUG-32446 Change-Id: I80ce43987c7b6e346cd44f7ac4cef01b01e5472b Reviewed-by: Venugopal Shivashankar --- src/widgets/widgets/qmdisubwindow.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/widgets') diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp index 2340c8fe4b..41e32028d9 100644 --- a/src/widgets/widgets/qmdisubwindow.cpp +++ b/src/widgets/widgets/qmdisubwindow.cpp @@ -3058,6 +3058,9 @@ void QMdiSubWindow::leaveEvent(QEvent * /*leaveEvent*/) /*! \reimp + + \warning When maximizing or restoring a subwindow, the resulting call to this function + may have an invalid QResizeEvent::oldSize(). */ void QMdiSubWindow::resizeEvent(QResizeEvent *resizeEvent) { -- cgit v1.2.3 From 7baaec17edb06634f1d6235a55c7adbd112cba3e Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Thu, 26 Feb 2015 16:16:56 +0300 Subject: Fix use of the window geometry specification Until now we applied the geometry in QWidget::setVisible() by calling QWidget::move() and QWidget::resize(). But these methods are unreliable when the window is created but not visible yet. For example, specifying the window position by "-geometry +0+0" will take no effect. Apply the geometry directly to QWindow in QWindow::setVisible(). QWidget will update its geometry after the response of the window system. Besides it allows to specify the geometry for QML applications. Task-number: QTBUG-44713 Change-Id: I9a0e110e81e569c81da802729707fec104fef887 Reviewed-by: Friedemann Kleint Reviewed-by: Shawn Rutledge --- src/widgets/kernel/qwidget.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'src/widgets') diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index cb2e9e0bec..637afb3888 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -8029,28 +8029,13 @@ void QWidget::setVisible(bool visible) && !parentWidget()->testAttribute(Qt::WA_WState_Created)) parentWidget()->window()->d_func()->createRecursively(); - //we have to at least create toplevels before applyX11SpecificCommandLineArguments - //but not children of non-visible parents + //create toplevels but not children of non-visible parents QWidget *pw = parentWidget(); if (!testAttribute(Qt::WA_WState_Created) && (isWindow() || pw->testAttribute(Qt::WA_WState_Created))) { create(); } - // Handling of the -qwindowgeometry, -geometry command line arguments - if (windowType() == Qt::Window && windowHandle()) { - static bool done = false; - if (!done) { - done = true; - const QRect oldGeometry = frameGeometry(); - const QRect geometry = QGuiApplicationPrivate::applyWindowGeometrySpecification(oldGeometry, windowHandle()); - if (oldGeometry.size() != geometry.size()) - resize(geometry.size()); - if (geometry.topLeft() != oldGeometry.topLeft()) - move(geometry.topLeft()); - } // done - } - bool wasResized = testAttribute(Qt::WA_Resized); Qt::WindowStates initialWindowState = windowState(); -- cgit v1.2.3 From 2012c8e866dfe0344b6a801354af6541ba1acf43 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 1 Apr 2015 13:20:31 +0200 Subject: Improve debug operator for QGraphicsItem/QGraphicsObject. Introduce QDebugStateSaver, use new formatting helpers and output parent, flags and z only when necessary. Output the widget contained in QGraphicsProxyWidget. For example, QGraphicsProxyWidget (this = 0x1877550 , parent = 0x0 , pos = QPointF(870,491) , z = 1e+30 , flags = ( ItemIsFocusable | ItemUsesExtendedStyleOpton | ItemSendsGeometryChanges | ItemIsPanel ) ) becomes: QGraphicsProxyWidget(0x1877550, widget=ItemDialog(0x1e29dc0), pos=870,491, z=1e+30, flags=(ItemIsFocusable|ItemUsesExtendedStyleOption|ItemSendsGeometryChanges|ItemIsPanel)) Change-Id: Ia554dc3e2eb6f16d9d9220d1067194a4424b7cf5 Reviewed-by: Kai Koehne --- src/widgets/graphicsview/qgraphicsitem.cpp | 53 ++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 13 deletions(-) (limited to 'src/widgets') diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp index 533564c1dc..eaa5cb99e4 100644 --- a/src/widgets/graphicsview/qgraphicsitem.cpp +++ b/src/widgets/graphicsview/qgraphicsitem.cpp @@ -736,7 +736,6 @@ #include "qgraphicsproxywidget.h" #include "qgraphicsscenebsptreeindex_p.h" #include -#include #include #include #include @@ -761,6 +760,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -11283,8 +11283,24 @@ QPixmap QGraphicsItemEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QP #endif //QT_NO_GRAPHICSEFFECT #ifndef QT_NO_DEBUG_STREAM +static void formatGraphicsItemHelper(QDebug debug, const QGraphicsItem *item) +{ + if (const QGraphicsItem *parent = item->parentItem()) + debug << ", parent=" << static_cast(parent); + debug << ", pos="; + QtDebugUtils::formatQPoint(debug, item->pos()); + if (const qreal z = item->zValue()) + debug << ", z=" << item->zValue(); + if (item->flags()) + debug << ", flags=" << item->flags(); +} + +// FIXME: Qt 6: Make this QDebug operator<<(QDebug debug, const QGraphicsItem *item) QDebug operator<<(QDebug debug, QGraphicsItem *item) { + QDebugStateSaver saver(debug); + debug.nospace(); + if (!item) { debug << "QGraphicsItem(0)"; return debug; @@ -11294,29 +11310,40 @@ QDebug operator<<(QDebug debug, QGraphicsItem *item) debug << o->metaObject()->className(); else debug << "QGraphicsItem"; - debug << "(this =" << (void*)item - << ", parent =" << (void*)item->parentItem() - << ", pos =" << item->pos() - << ", z =" << item->zValue() << ", flags = " - << item->flags() << ")"; + debug << '(' << static_cast(item); + if (const QGraphicsProxyWidget *pw = qgraphicsitem_cast(item)) { + debug << ", widget="; + if (const QWidget *w = pw->widget()) { + debug << w->metaObject()->className() << '(' << static_cast(w); + if (!w->objectName().isEmpty()) + debug << ", name=" << w->objectName(); + debug << ')'; + } else { + debug << "QWidget(0)"; + } + } + formatGraphicsItemHelper(debug, item); + debug << ')'; return debug; } +// FIXME: Qt 6: Make this QDebug operator<<(QDebug debug, const QGraphicsObject *item) QDebug operator<<(QDebug debug, QGraphicsObject *item) { + QDebugStateSaver saver(debug); + debug.nospace(); + if (!item) { debug << "QGraphicsObject(0)"; return debug; } - debug.nospace() << item->metaObject()->className() << '(' << (void*)item; + debug << item->metaObject()->className() << '(' << static_cast(item); if (!item->objectName().isEmpty()) - debug << ", name = " << item->objectName(); - debug.nospace() << ", parent = " << ((void*)item->parentItem()) - << ", pos = " << item->pos() - << ", z = " << item->zValue() << ", flags = " - << item->flags() << ')'; - return debug.space(); + debug << ", name=" << item->objectName(); + formatGraphicsItemHelper(debug, item); + debug << ')'; + return debug; } QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemChange change) -- cgit v1.2.3 From 85f94782278113c97f87a53c14fc5b732548d376 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 1 Apr 2015 12:25:42 +0200 Subject: Fix debug stream operators. - Use QDebugStateSaver to restore space setting in stream operators instead of returning dbg.space() which breaks formatting on streams that already have nospace() set. - Fix some single character string constants. Change-Id: I0fe86bb1adbdd4a76ab6d2f8c19e063b45ddcf3b Reviewed-by: Kai Koehne --- src/widgets/kernel/qlayoutitem.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/widgets') diff --git a/src/widgets/kernel/qlayoutitem.cpp b/src/widgets/kernel/qlayoutitem.cpp index 0e69bbc8ae..b21925e1d4 100644 --- a/src/widgets/kernel/qlayoutitem.cpp +++ b/src/widgets/kernel/qlayoutitem.cpp @@ -850,9 +850,10 @@ int QWidgetItemV2::heightForWidth(int width) const #ifndef QT_NO_DEBUG_STREAM QDebug operator<<(QDebug dbg, const QSizePolicy &p) { + QDebugStateSaver saver(dbg); dbg.nospace() << "QSizePolicy(horizontalPolicy = " << p.horizontalPolicy() << ", verticalPolicy = " << p.verticalPolicy() << ')'; - return dbg.space(); + return dbg; } #endif -- cgit v1.2.3 From d3277bdf02b701f78d21a5495a55fcaac08caf3d Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Wed, 25 Mar 2015 11:23:39 +0100 Subject: QComboBox: open popup on touch release if QStyleHints has setFocusOnTouchRelease() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If we give focus to the combobox on touch release, we need to await opening the popup until touch release as well. Otherwise we might end up showing a popup for an unfocused combobox. Especially on iOS, there is a strong coupling between focus object and popup menus, which means that we effectively require the combobox to gain focus before it can show the popup. Change-Id: Ifb7ba091bb39b77f325cdbf61e00ab3e8ff2e522 Reviewed-by: Tor Arne Vestbø --- src/widgets/widgets/qcombobox.cpp | 46 +++++++++++++++++++++++++-------------- src/widgets/widgets/qcombobox_p.h | 2 ++ 2 files changed, 32 insertions(+), 16 deletions(-) (limited to 'src/widgets') diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index 4350572c45..390478f911 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -3017,39 +3018,51 @@ bool QComboBox::event(QEvent *event) void QComboBox::mousePressEvent(QMouseEvent *e) { Q_D(QComboBox); + if (!QGuiApplication::styleHints()->setFocusOnTouchRelease()) + d->showPopupFromMouseEvent(e); +} + +/*! + \reimp +*/ +void QComboBoxPrivate::showPopupFromMouseEvent(QMouseEvent *e) +{ + Q_Q(QComboBox); QStyleOptionComboBox opt; - initStyleOption(&opt); - QStyle::SubControl sc = style()->hitTestComplexControl(QStyle::CC_ComboBox, &opt, e->pos(), - this); - if (e->button() == Qt::LeftButton && (sc == QStyle::SC_ComboBoxArrow || !isEditable()) - && !d->viewContainer()->isVisible()) { + q->initStyleOption(&opt); + QStyle::SubControl sc = q->style()->hitTestComplexControl(QStyle::CC_ComboBox, &opt, e->pos(), q); + + if (e->button() == Qt::LeftButton + && sc != QStyle::SC_None + && (sc == QStyle::SC_ComboBoxArrow || !q->isEditable()) + && !viewContainer()->isVisible()) { if (sc == QStyle::SC_ComboBoxArrow) - d->updateArrow(QStyle::State_Sunken); + updateArrow(QStyle::State_Sunken); #ifdef QT_KEYPAD_NAVIGATION //if the container already exists, then d->viewContainer() is safe to call - if (d->container) { + if (container) { #endif // We've restricted the next couple of lines, because by not calling // viewContainer(), we avoid creating the QComboBoxPrivateContainer. - d->viewContainer()->blockMouseReleaseTimer.start(QApplication::doubleClickInterval()); - d->viewContainer()->initialClickPosition = mapToGlobal(e->pos()); + viewContainer()->blockMouseReleaseTimer.start(QApplication::doubleClickInterval()); + viewContainer()->initialClickPosition = q->mapToGlobal(e->pos()); #ifdef QT_KEYPAD_NAVIGATION } #endif - showPopup(); + q->showPopup(); // The code below ensures that regular mousepress and pick item still works // If it was not called the viewContainer would ignore event since it didn't have // a mousePressEvent first. - if (d->viewContainer()) - d->viewContainer()->maybeIgnoreMouseButtonRelease = false; + if (viewContainer()) + viewContainer()->maybeIgnoreMouseButtonRelease = false; } else { #ifdef QT_KEYPAD_NAVIGATION - if (QApplication::keypadNavigationEnabled() && sc == QStyle::SC_ComboBoxEditField && d->lineEdit) { - d->lineEdit->event(e); //so lineedit can move cursor, etc + if (QApplication::keypadNavigationEnabled() && sc == QStyle::SC_ComboBoxEditField && lineEdit) { + lineEdit->event(e); //so lineedit can move cursor, etc return; } #endif - QWidget::mousePressEvent(e); + e->ignore(); } } @@ -3059,8 +3072,9 @@ void QComboBox::mousePressEvent(QMouseEvent *e) void QComboBox::mouseReleaseEvent(QMouseEvent *e) { Q_D(QComboBox); - Q_UNUSED(e); d->updateArrow(QStyle::State_None); + if (QGuiApplication::styleHints()->setFocusOnTouchRelease() && hasFocus()) + d->showPopupFromMouseEvent(e); } /*! diff --git a/src/widgets/widgets/qcombobox_p.h b/src/widgets/widgets/qcombobox_p.h index 580054780f..3fdfdcc22f 100644 --- a/src/widgets/widgets/qcombobox_p.h +++ b/src/widgets/widgets/qcombobox_p.h @@ -253,6 +253,7 @@ private: QElapsedTimer popupTimer; friend class QComboBox; + friend class QComboBoxPrivate; }; class Q_AUTOTEST_EXPORT QComboMenuDelegate : public QAbstractItemDelegate @@ -372,6 +373,7 @@ public: void modelChanged(); void updateViewContainerPaletteAndOpacity(); void updateFocusPolicy(); + void showPopupFromMouseEvent(QMouseEvent *e); #ifdef Q_OS_MAC void cleanupNativePopup(); -- cgit v1.2.3 From 5aa40e5b00eb8f54157bc1aa01205a8a87e0c661 Mon Sep 17 00:00:00 2001 From: David Faure Date: Mon, 30 Mar 2015 10:20:07 +0200 Subject: QComboBox: also adjust size on model reset, with AdjustToContents When the size adjust policy is QComboBox::AdjustToContents, the combobox sizeHint was recalculated on dataChanged, rowsInserted, rowsRemoved, and setModel, but not when the model was reset. This led to truncated items in the combobox when models are filled asynchronously. Task-number: QTBUG-5413 Change-Id: I3456c327d680dfffa58d6dcb26c79456c67b2a32 Reviewed-by: Friedemann Kleint Reviewed-by: Marc Mutz --- src/widgets/widgets/qcombobox.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/widgets') diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index 390478f911..76f923904d 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -226,6 +226,7 @@ void QComboBoxPrivate::_q_modelReset() } if (currentIndex.row() != indexBeforeChange) _q_emitCurrentIndexChanged(currentIndex); + modelChanged(); q->update(); } -- cgit v1.2.3