diff options
Diffstat (limited to 'src/widgets/itemviews/qtreeview.cpp')
-rw-r--r-- | src/widgets/itemviews/qtreeview.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 8d27305071..ebeefad682 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -311,7 +311,7 @@ void QTreeView::setHeader(QHeaderView *header) delete d->header; d->header = header; d->header->setParent(this); - d->header->d_func()->setAllowUserMoveOfSection0(false); + d->header->setFirstSectionMovable(false); if (!d->header->model()) { d->header->setModel(d->model); @@ -3057,7 +3057,7 @@ void QTreeViewPrivate::initialize() header->setDefaultAlignment(Qt::AlignLeft|Qt::AlignVCenter); q->setHeader(header); #ifndef QT_NO_ANIMATION - animationsEnabled = q->style()->styleHint(QStyle::SH_Widget_Animate, 0, q); + animationsEnabled = q->style()->styleHint(QStyle::SH_Widget_Animation_Duration, 0, q) > 0; QObject::connect(&animatedOperation, SIGNAL(finished()), q, SLOT(_q_endAnimatedOperation())); #endif //QT_NO_ANIMATION } @@ -4006,6 +4006,27 @@ int QTreeView::visualIndex(const QModelIndex &index) const return d->viewIndex(index); } +/*! + \internal +*/ + +void QTreeView::verticalScrollbarValueChanged(int value) +{ + Q_D(QTreeView); + if (!d->viewItems.isEmpty() && value == verticalScrollBar()->maximum()) { + QModelIndex ret = d->viewItems.last().index; + // Root index will be handled by base class implementation + while (ret.isValid()) { + if (isExpanded(ret) && d->model->canFetchMore(ret)) { + d->model->fetchMore(ret); + break; + } + ret = ret.parent(); + } + } + QAbstractItemView::verticalScrollbarValueChanged(value); +} + QT_END_NAMESPACE #include "moc_qtreeview.cpp" |