28 #include <QHeaderView>
30 #include <QWheelEvent>
39 for (
int i = 0; i < topLevelItemCount(); ++i)
41 sz += calcHeight(topLevelItem(i));
43 if (!isHeaderHidden())
45 sz += header()->height();
53 this->wheelTicksPerScrollTick = wheelTicksPerScrollTick;
59 if (event->orientation() == Qt::Horizontal)
61 if (horizontalScrollMode() == QAbstractItemView::ScrollPerPixel)
63 hdelta +=
event->delta();
64 horizontalScrollBar()->setValue(horizontalScrollBar()->
value() -
65 (hdelta / wheelTicksPerScrollTick));
66 hdelta = hdelta % wheelTicksPerScrollTick;
70 QTreeWidget::wheelEvent(event);
75 if (verticalScrollMode() == QAbstractItemView::ScrollPerPixel)
77 vdelta +=
event->delta();
78 verticalScrollBar()->setValue(verticalScrollBar()->
value() -
79 (vdelta / wheelTicksPerScrollTick));
80 vdelta = hdelta % wheelTicksPerScrollTick;
84 QTreeWidget::wheelEvent(event);
93 setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed);
103 connect(
this, SIGNAL(collapsed(QModelIndex)),
this, SLOT(
expand()));
104 connect(
this, SIGNAL(expanded(QModelIndex)),
this, SLOT(
expand()));
108 disconnect(
this, SIGNAL(collapsed(QModelIndex)),
this, SLOT(
expand()));
109 disconnect(
this, SIGNAL(expanded(QModelIndex)),
this, SLOT(
expand()));
114 EnhancedTreeWidget::calcHeight(QTreeWidgetItem* it)
121 for (
int i = 0; i < it->columnCount(); ++i)
123 sz =
std::max(sz, rowHeight(indexFromItem(it, i)));
125 if (it->isExpanded())
127 for (
int i = 0; i < it->childCount(); ++i)
129 sz += calcHeight(it->child(i));