diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-05-09 00:44:24 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-05-13 14:21:22 +0200 |
commit | b5552bab40f2e165cf7196993ffc83785f4d8264 (patch) | |
tree | 5ca863fc90caacebd7bd5ebd2464d4b18efdd0dc /src/widgets | |
parent | 9cfdd66b6452704349b5f986f31b7f1f03748cb5 (diff) | |
parent | 01ce104a3ee3c8af68f6694840931661666984ab (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Manually changed enum to LibGL in
src/plugins/platforms/xcb/qglxintegration.cpp
Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/accessible/simplewidgets.cpp | 4 | ||||
-rw-r--r-- | src/widgets/dialogs/qfiledialog.cpp | 11 | ||||
-rw-r--r-- | src/widgets/graphicsview/qgraphicsview.cpp | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qlistwidget.cpp | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qtreeview.cpp | 13 | ||||
-rw-r--r-- | src/widgets/kernel/qopenglwidget.cpp | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetwindow.cpp | 10 | ||||
-rw-r--r-- | src/widgets/styles/qmacstyle_mac.mm | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qmdiarea.cpp | 3 | ||||
-rw-r--r-- | src/widgets/widgets/qmenubar.cpp | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 6 |
11 files changed, 31 insertions, 30 deletions
diff --git a/src/widgets/accessible/simplewidgets.cpp b/src/widgets/accessible/simplewidgets.cpp index b3170278ee..6e1428323f 100644 --- a/src/widgets/accessible/simplewidgets.cpp +++ b/src/widgets/accessible/simplewidgets.cpp @@ -647,10 +647,6 @@ QAccessible::State QAccessibleLineEdit::state() const if (l->hasSelectedText()) state.selected = true; - if (l->contextMenuPolicy() != Qt::NoContextMenu - && l->contextMenuPolicy() != Qt::PreventContextMenu) - state.hasPopup = true; - return state; } diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index bb8cdec896..6349bdc301 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -2128,6 +2128,11 @@ QString QFileDialog::getOpenFileName(QWidget *parent, return QString(); } +static inline QUrl dialogResultToUrl(const QString &file) +{ + return file.isEmpty() ? QUrl() : QUrl::fromLocalFile(file); +} + /*! This is a convenience static function that returns an existing file selected by the user. If the user presses Cancel, it returns an @@ -2166,7 +2171,7 @@ QUrl QFileDialog::getOpenFileUrl(QWidget *parent, Q_UNUSED(supportedSchemes); // Falls back to local file - return QUrl::fromLocalFile(getOpenFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); + return dialogResultToUrl(getOpenFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); } /*! @@ -2424,7 +2429,7 @@ QUrl QFileDialog::getSaveFileUrl(QWidget *parent, Q_UNUSED(supportedSchemes); // Falls back to local file - return QUrl::fromLocalFile(getSaveFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); + return dialogResultToUrl(getSaveFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); } /*! @@ -2532,7 +2537,7 @@ QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent, Q_UNUSED(supportedSchemes); // Falls back to local file - return QUrl::fromLocalFile(getExistingDirectory(parent, caption, dir.toLocalFile(), options)); + return dialogResultToUrl(getExistingDirectory(parent, caption, dir.toLocalFile(), options)); } inline static QString _qt_get_directory(const QString &path) diff --git a/src/widgets/graphicsview/qgraphicsview.cpp b/src/widgets/graphicsview/qgraphicsview.cpp index 86648c4f26..5bcf52b6a3 100644 --- a/src/widgets/graphicsview/qgraphicsview.cpp +++ b/src/widgets/graphicsview/qgraphicsview.cpp @@ -1655,7 +1655,7 @@ void QGraphicsView::invalidateScene(const QRectF &rect, QGraphicsScene::SceneLay /*! \property QGraphicsView::interactive - \brief whether the view allowed scene interaction. + \brief whether the view allows scene interaction. If enabled, this view is set to allow scene interaction. Otherwise, this view will not allow interaction, and any mouse or key events are ignored diff --git a/src/widgets/itemviews/qlistwidget.cpp b/src/widgets/itemviews/qlistwidget.cpp index 5040192f31..1f954d67dd 100644 --- a/src/widgets/itemviews/qlistwidget.cpp +++ b/src/widgets/itemviews/qlistwidget.cpp @@ -1631,7 +1631,7 @@ QWidget *QListWidget::itemWidget(QListWidgetItem *item) const /*! \since 4.1 - Sets the \a widget to be displayed in the give \a item. + Sets the \a widget to be displayed in the given \a item. This function should only be used to display static content in the place of a list widget item. If you want to display custom dynamic content or diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 781dd345bd..3f952ff768 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtWidgets module of the Qt Toolkit. @@ -1421,15 +1421,8 @@ void QTreeViewPrivate::adjustViewOptionsForIndex(QStyleOptionViewItem *option, c const int right = (spanning ? header->visualIndex(0) : header->count() - 1 ); calcLogicalIndices(&logicalIndices, &viewItemPosList, left, right); - int columnIndex = 0; - for (int visualIndex = 0; visualIndex < current.column(); ++visualIndex) { - int logicalIndex = header->logicalIndex(visualIndex); - if (!header->isSectionHidden(logicalIndex)) { - ++columnIndex; - } - } - - option->viewItemPosition = viewItemPosList.at(columnIndex); + const int visualIndex = logicalIndices.indexOf(current.column()); + option->viewItemPosition = viewItemPosList.at(visualIndex); } diff --git a/src/widgets/kernel/qopenglwidget.cpp b/src/widgets/kernel/qopenglwidget.cpp index 10be5aef16..cbefb8a6bf 100644 --- a/src/widgets/kernel/qopenglwidget.cpp +++ b/src/widgets/kernel/qopenglwidget.cpp @@ -147,7 +147,7 @@ void QOpenGLWidget::paintGL() void QOpenGLWidget::updateGL() { Q_D(QOpenGLWidget); - if (d->uninitialized) + if (d->uninitialized || !d->surface()) return; makeCurrent(); diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 0031d8e965..fc328e7af0 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -440,11 +440,13 @@ void QWidgetWindow::handleMouseEvent(QMouseEvent *event) if (!win) win = w->nativeParentWidget()->windowHandle(); if (win && win->geometry().contains(event->globalPos())) { + // Use postEvent() to ensure the local QEventLoop terminates when called from QMenu::exec() const QPoint localPos = win->mapFromGlobal(event->globalPos()); - QMouseEvent e(QEvent::MouseButtonPress, localPos, localPos, event->globalPos(), event->button(), event->buttons(), event->modifiers()); - QGuiApplicationPrivate::setMouseEventSource(&e, QGuiApplicationPrivate::mouseEventSource(event)); - e.setTimestamp(event->timestamp()); - QApplication::sendSpontaneousEvent(win, &e); + QMouseEvent *e = new QMouseEvent(QEvent::MouseButtonPress, localPos, localPos, event->globalPos(), event->button(), event->buttons(), event->modifiers()); + e->spont = 1; + QGuiApplicationPrivate::setMouseEventSource(e, QGuiApplicationPrivate::mouseEventSource(event)); + e->setTimestamp(event->timestamp()); + QCoreApplication::postEvent(win, e); } } } diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index f3bbe11563..bedd9c74b6 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -1677,7 +1677,7 @@ QMacStylePrivate::QMacStylePrivate() if (ptrHIShapeGetBounds == 0) { QLibrary library(QLatin1String("/System/Library/Frameworks/Carbon.framework/Carbon")); library.setLoadHints(QLibrary::ExportExternalSymbolsHint); - ptrHIShapeGetBounds = reinterpret_cast<PtrHIShapeGetBounds>(library.resolve("HIShapeGetBounds")); + ptrHIShapeGetBounds = reinterpret_cast<PtrHIShapeGetBounds>(library.resolve("HIShapeGetBounds")); } } @@ -5300,7 +5300,7 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox *>(opt)){ HIThemeButtonDrawInfo bdi; d->initComboboxBdi(combo, &bdi, widget, d->getDrawState(opt->state)); - if (!tds == kThemeStateInactive) + if (tds != kThemeStateInactive) QMacStylePrivate::drawCombobox(qt_hirectForQRect(combo->rect), bdi, p); else d->drawColorlessButton(qt_hirectForQRect(combo->rect), &bdi, p, opt); diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp index d0488d5955..beabaa87da 100644 --- a/src/widgets/widgets/qmdiarea.cpp +++ b/src/widgets/widgets/qmdiarea.cpp @@ -2606,6 +2606,9 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event) return QAbstractScrollArea::eventFilter(object, event); } + if (subWindow->mdiArea() != this) + return QAbstractScrollArea::eventFilter(object, event); + // QMdiSubWindow events: switch (event->type()) { case QEvent::Move: diff --git a/src/widgets/widgets/qmenubar.cpp b/src/widgets/widgets/qmenubar.cpp index 729e08c7a5..f523ac2777 100644 --- a/src/widgets/widgets/qmenubar.cpp +++ b/src/widgets/widgets/qmenubar.cpp @@ -384,7 +384,7 @@ void QMenuBarPrivate::setCurrentAction(QAction *action, bool popup, bool activat QAction *previousAction = currentAction; #endif currentAction = action; - if (action) { + if (action && action->isEnabled()) { activateAction(action, QAction::Hover); if(popup) popupAction(action, activateFirst); @@ -1038,7 +1038,7 @@ void QMenuBar::mousePressEvent(QMouseEvent *e) d->mouseDown = true; QAction *action = d->actionAt(e->pos()); - if (!action || !d->isVisible(action)) { + if (!action || !d->isVisible(action) || !action->isEnabled()) { d->setCurrentAction(0); #ifndef QT_NO_WHATSTHIS if (QWhatsThis::inWhatsThisMode()) diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index 9cc62fd10a..54b20e36f5 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -438,7 +438,6 @@ void QWidgetTextControlPrivate::setContent(Qt::TextFormat format, const QString QObject::connect(doc, SIGNAL(contentsChanged()), q, SLOT(_q_updateCurrentCharFormatAndSelection())); QObject::connect(doc, SIGNAL(cursorPositionChanged(QTextCursor)), q, SLOT(_q_emitCursorPosChanged(QTextCursor))); - QObject::connect(doc, SIGNAL(contentsChange(int,int,int)), q, SLOT(_q_contentsChanged(int,int,int))); QObject::connect(doc, SIGNAL(documentLayoutChanged()), q, SLOT(_q_documentLayoutChanged())); // convenience signal forwards @@ -501,6 +500,8 @@ void QWidgetTextControlPrivate::setContent(Qt::TextFormat format, const QString q->ensureCursorVisible(); emit q->cursorPositionChanged(); + + QObject::connect(doc, SIGNAL(contentsChange(int,int,int)), q, SLOT(_q_contentsChanged(int,int,int)), Qt::UniqueConnection); } void QWidgetTextControlPrivate::startDrag() @@ -646,7 +647,8 @@ void QWidgetTextControlPrivate::_q_contentsChanged(int from, int charsRemoved, i { Q_Q(QWidgetTextControl); #ifndef QT_NO_ACCESSIBILITY - if (QAccessible::isActive()) { + + if (QAccessible::isActive() && q->parent() && q->parent()->isWidgetType()) { QTextCursor tmp(doc); tmp.setPosition(from); tmp.setPosition(from + charsAdded, QTextCursor::KeepAnchor); |