This commit is contained in:
Petr Mrázek
2014-02-02 18:30:52 +01:00
parent 2cd9b06476
commit ddedd077b6
2 changed files with 37 additions and 18 deletions

View File

@@ -727,19 +727,14 @@ QList<QPair<QRect, QModelIndex>> GroupView::draggablePaintPairs(const QModelInde
{
Q_ASSERT(r);
QRect &rect = *r;
const QRect viewportRect = viewport()->rect();
QList<QPair<QRect, QModelIndex>> 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<int, int> pos = categoryInternalPosition(current);
int row = beginning_row + pos.second;
qDebug() << "row: " << row;
qDebug() << "column: " << pos.first;
}
return current;
}