diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-11-20 12:18:23 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-11-20 12:18:23 +0100 |
commit | c83c08d84fe00a4033d7ba61fd95c150f643736d (patch) | |
tree | 088927e1b2e9d67300253c29ba73be6be6d8ae31 /src/widgets | |
parent | 1e446fc99167a992b1a8342168b6254f43b097fe (diff) | |
parent | 72ea7900858a31c1c6b93e6fed9f2f4dc30291e4 (diff) |
Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/itemviews/qtreeview.cpp | 20 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qkeysequenceedit.h | 2 |
3 files changed, 21 insertions, 3 deletions
diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index fc0d639483..4d0eb5c3ad 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -2858,6 +2858,21 @@ int QTreeView::sizeHintForColumn(int column) const int offset = 0; int start = d->firstVisibleItem(&offset); int end = d->lastVisibleItem(start, offset); + if (start < 0 || end < 0 || end == viewItems.size() - 1) { + end = viewItems.size() - 1; + if (maximumProcessRows < 0) { + start = 0; + } else if (maximumProcessRows == 0) { + start = qMax(0, end - 1); + int remainingHeight = viewport()->height(); + while (start > 0 && remainingHeight > 0) { + remainingHeight -= d->itemHeight(start); + --start; + } + } else { + start = qMax(0, end - maximumProcessRows); + } + } int rowsProcessed = 0; @@ -3606,8 +3621,11 @@ int QTreeViewPrivate::firstVisibleItem(int *offset) const int QTreeViewPrivate::lastVisibleItem(int firstVisual, int offset) const { - if (firstVisual < 0 || offset < 0) + if (firstVisual < 0 || offset < 0) { firstVisual = firstVisibleItem(&offset); + if (firstVisual < 0) + return -1; + } int y = - offset; int value = viewport->height(); diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index a41d14e7d0..933294e21f 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -7012,7 +7012,7 @@ void QWidget::show() bool isPopup = data->window_flags & Qt::Popup & ~Qt::Window; if (isWindow() && !isPopup && qApp->styleHints()->showIsFullScreen()) showFullScreen(); - else if (isWindow() && !isPopup && QGuiApplicationPrivate::platformIntegration()->styleHint(QPlatformIntegration::ShowIsMaximized).toBool()) + else if (isWindow() && !(data->window_flags & Qt::Dialog & ~Qt::Window) && !isPopup && QGuiApplicationPrivate::platformIntegration()->styleHint(QPlatformIntegration::ShowIsMaximized).toBool()) showMaximized(); else setVisible(true); diff --git a/src/widgets/widgets/qkeysequenceedit.h b/src/widgets/widgets/qkeysequenceedit.h index 5d827a3be8..7eeff4e504 100644 --- a/src/widgets/widgets/qkeysequenceedit.h +++ b/src/widgets/widgets/qkeysequenceedit.h @@ -53,7 +53,7 @@ class QKeySequenceEditPrivate; class Q_WIDGETS_EXPORT QKeySequenceEdit : public QWidget { Q_OBJECT - Q_PROPERTY(QKeySequence keySequence READ keySequence WRITE setKeySequence RESET clear NOTIFY keySequenceChanged USER true) + Q_PROPERTY(QKeySequence keySequence READ keySequence WRITE setKeySequence NOTIFY keySequenceChanged USER true) public: explicit QKeySequenceEdit(QWidget *parent = 0); |