src/document.cpp

changeset 63
f7dd937667a5
parent 51
1a9eac27698d
child 73
97df974b5ed5
equal deleted inserted replaced
62:3e92760fe00a 63:f7dd937667a5
56 selectionModel->select(selection, QItemSelectionModel::ClearAndSelect); 56 selectionModel->select(selection, QItemSelectionModel::ClearAndSelect);
57 }); 57 });
58 connect(this->ui.listView->selectionModel(), &QItemSelectionModel::selectionChanged, 58 connect(this->ui.listView->selectionModel(), &QItemSelectionModel::selectionChanged,
59 [&](const QItemSelection& selected, const QItemSelection& deselected) 59 [&](const QItemSelection& selected, const QItemSelection& deselected)
60 { 60 {
61 QSet<ldraw::Id> selectedIds; 61 auto resolveIndex = [this](const QModelIndex& index){ return this->model->resolve(index); };
62 QSet<ldraw::Id> deselectedIds; 62 auto resolve = [resolveIndex](const QItemSelection& selection)
63 for (const QModelIndex& index : selected.indexes())
64 { 63 {
65 selectedIds.insert(this->model->resolve(index)); 64 return fn::map<QSet<ldraw::Id>>(selection.indexes(), resolveIndex);
66 } 65 };
67 for (const QModelIndex& index : deselected.indexes()) 66 this->renderer->handleSelectionChange(resolve(selected), resolve(deselected));
68 {
69 deselectedIds.insert(this->model->resolve(index));
70 }
71 this->renderer->handleSelectionChange(selectedIds, deselectedIds);
72 }); 67 });
73 } 68 }
74 69
75 Document::~Document() 70 Document::~Document()
76 { 71 {

mercurial