fixed selection issues in grid view

This commit is contained in:
Luis Ángel San Martín 2015-01-01 11:45:41 +01:00
parent 280c6b96e9
commit 1a04358a83
2 changed files with 16 additions and 1 deletions

View File

@ -102,6 +102,8 @@ void GridComicsView::setModel(ComicModel *model)
void GridComicsView::setCurrentIndex(const QModelIndex &index) void GridComicsView::setCurrentIndex(const QModelIndex &index)
{ {
QLOG_INFO() << "setCurrentIndex"; QLOG_INFO() << "setCurrentIndex";
_selectionModel->select(index, QItemSelectionModel::Select | QItemSelectionModel::Rows);
view->rootContext()->setContextProperty("dummyValue", true);
} }
QModelIndex GridComicsView::currentIndex() QModelIndex GridComicsView::currentIndex()
@ -153,6 +155,11 @@ void GridComicsView::enableFilterMode(bool enabled)
void GridComicsView::selectAll() void GridComicsView::selectAll()
{ {
QLOG_INFO() << "selectAll"; QLOG_INFO() << "selectAll";
QModelIndex top = model->index(0, 0);
QModelIndex bottom = model->index(model->rowCount()-1, 0);
QItemSelection selection(top, bottom);
_selectionModel->select(selection, QItemSelectionModel::Select | QItemSelectionModel::Rows);
view->rootContext()->setContextProperty("dummyValue", true);
} }
void GridComicsView::rate(int index, int rating) void GridComicsView::rate(int index, int rating)

View File

@ -12,7 +12,7 @@ Rectangle {
function selectAll(from,to) function selectAll(from,to)
{ {
for(var i = from+1;i<to;i++) for(var i = from;i<to;i++)
{ {
comicsSelectionHelper.selectIndex(i); comicsSelectionHelper.selectIndex(i);
} }
@ -120,6 +120,14 @@ Rectangle {
} }
onReleased: {
if(mouse.button != Qt.RightButton && !(mouse.modifiers & Qt.ControlModifier || mouse.modifiers & Qt.ShiftModifier))
{
comicsSelectionHelper.clear();
grid.currentIndex = index;
}
}
} }
} }