12 #include "kdgantttreeviewrowcontroller_p.h"
14 #include <QAbstractProxyModel>
15 #include <QHeaderView>
28 QAbstractProxyModel *proxy)
31 _d->treeview =
static_cast<Private::HackTreeView *
>(tv);
46 return d->treeview->viewport()->y() -
d->treeview->frameWidth();
51 return d->treeview->fontMetrics().height();
56 return d->treeview->verticalScrollBar()->maximum() +
d->treeview->viewport()->height();
62 const QModelIndex idx =
d->proxy->mapToSource(_idx);
63 assert(idx.isValid() ? (idx.model() ==
d->treeview->model()) : (
true));
64 return d->treeview->visualRect(idx).isValid();
69 const QModelIndex idx =
d->proxy->mapToSource(_idx);
70 assert(idx.isValid() ? (idx.model() ==
d->treeview->model()) : (
true));
71 return d->treeview->isExpanded(idx);
76 const QModelIndex idx =
d->proxy->mapToSource(_idx);
77 assert(idx.isValid() ? (idx.model() ==
d->treeview->model()) : (
true));
78 QRect r =
d->treeview->visualRect(idx).translated(QPoint(0,
d->treeview->verticalOffset()));
79 return Span(r.y(), r.height());
91 if (!
d->treeview->model())
93 int y =
d->treeview->verticalOffset();
94 QModelIndex idx =
d->treeview->model()->index(0, 0,
d->treeview->rootIndex());
98 y +=
d->treeview->rowHeight(idx);
99 idx =
d->treeview->indexBelow(idx);
100 }
while (idx.isValid());
101 return d->proxy->mapFromSource(idx);
106 const QModelIndex idx =
d->proxy->mapToSource(_idx);
107 return d->proxy->mapFromSource(
d->treeview->indexAbove(idx));
112 const QModelIndex idx =
d->proxy->mapToSource(_idx);
113 return d->proxy->mapFromSource(
d->treeview->indexBelow(idx));
A class representing a start point and a length.
bool isRowExpanded(const QModelIndex &idx) const override
QModelIndex indexBelow(const QModelIndex &idx) const override
int headerHeight() const override
bool isRowVisible(const QModelIndex &idx) const override
QModelIndex indexAbove(const QModelIndex &idx) const override
int totalHeight() const override
~TreeViewRowController() override
int maximumItemHeight() const override
QModelIndex indexAt(int height) const override
TreeViewRowController(QTreeView *tv, QAbstractProxyModel *proxy)
Span rowGeometry(const QModelIndex &idx) const override