diff --git a/GroupView.cpp b/GroupView.cpp index b47cf93f..3296ccfb 100644 --- a/GroupView.cpp +++ b/GroupView.cpp @@ -727,19 +727,14 @@ QList> GroupView::draggablePaintPairs(const QModelInde { Q_ASSERT(r); QRect &rect = *r; - const QRect viewportRect = viewport()->rect(); QList> ret; for (int i = 0; i < indices.count(); ++i) { const QModelIndex &index = indices.at(i); const QRect current = geometryRect(index); - //if (current.intersects(viewportRect)) - //{ - ret += qMakePair(current, index); - rect |= current; - //} + ret += qMakePair(current, index); + rect |= current; } - //rect &= viewportRect; return ret; } @@ -876,3 +871,34 @@ QRegion GroupView::visualRegionForSelection(const QItemSelection &selection) con } return region; } +QModelIndex GroupView::moveCursor(QAbstractItemView::CursorAction cursorAction, + Qt::KeyboardModifiers modifiers) +{ + auto current = currentIndex(); + if(!current.isValid()) + { + qDebug() << "model row: invalid"; + return current; + } + qDebug() << "model row: " << current.row(); + auto cat = category(current); + int i = m_categories.indexOf(cat); + if(i >= 0) + { + // this is a pile of something foul + auto real_cat = m_categories[i]; + int beginning_row = 0; + for(auto catt: m_categories) + { + if(catt == real_cat) + break; + beginning_row += catt->numRows(); + } + qDebug() << "category: " << real_cat->text; + QPair pos = categoryInternalPosition(current); + int row = beginning_row + pos.second; + qDebug() << "row: " << row; + qDebug() << "column: " << pos.first; + } + return current; +} diff --git a/GroupView.h b/GroupView.h index 2c60f0e9..a7ed8e9d 100644 --- a/GroupView.h +++ b/GroupView.h @@ -30,10 +30,6 @@ public: void setSelection(const QRect &rect, const QItemSelectionModel::SelectionFlags commands) override; - /* - * BS - */ - virtual int horizontalOffset() const override { return horizontalScrollBar()->value(); @@ -50,22 +46,19 @@ public: viewport()->scroll(dx, dy); } + /* + * TODO! + */ virtual void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) override { return; } virtual QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) - override - { - return QModelIndex(); - } + override; virtual QRegion visualRegionForSelection(const QItemSelection &selection) const override; - /* - * End of BS - */ protected slots: