11 this->setMouseTracking(true); |
11 this->setMouseTracking(true); |
12 } |
12 } |
13 |
13 |
14 void Canvas::handleSelectionChange(const QSet<ldraw::Id>& selectedIds, const QSet<ldraw::Id>& deselectedIds) |
14 void Canvas::handleSelectionChange(const QSet<ldraw::Id>& selectedIds, const QSet<ldraw::Id>& deselectedIds) |
15 { |
15 { |
|
16 Q_ASSERT(not selectedIds.contains(ldraw::NULL_ID)); |
16 this->selection.subtract(deselectedIds); |
17 this->selection.subtract(deselectedIds); |
17 this->selection.unite(selectedIds); |
18 this->selection.unite(selectedIds); |
18 this->compiler->setSelectedObjects(this->selection); |
19 this->compiler->setSelectedObjects(this->selection); |
19 this->update(); |
20 this->update(); |
20 } |
21 } |
38 |
39 |
39 void Canvas::mouseReleaseEvent(QMouseEvent* event) |
40 void Canvas::mouseReleaseEvent(QMouseEvent* event) |
40 { |
41 { |
41 if (this->totalMouseMove < (2.0 / sqrt(2)) * 5.0) |
42 if (this->totalMouseMove < (2.0 / sqrt(2)) * 5.0) |
42 { |
43 { |
43 this->selection = {this->highlighted}; |
44 if (this->highlighted == ldraw::NULL_ID) |
|
45 { |
|
46 this->selection = {}; |
|
47 } |
|
48 else |
|
49 { |
|
50 this->selection = {this->highlighted}; |
|
51 } |
44 this->compiler->setSelectedObjects(this->selection); |
52 this->compiler->setSelectedObjects(this->selection); |
45 emit selectionChanged(this->selection); |
53 emit selectionChanged(this->selection); |
46 this->update(); |
54 this->update(); |
47 } |
55 } |
48 PartRenderer::mouseReleaseEvent(event); |
56 PartRenderer::mouseReleaseEvent(event); |