Skip to content
Snippets Groups Projects
Commit 01ca9b0d authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

+ const variant of item list

parent 713ddfb7
No related branches found
No related tags found
1 merge request!2237minor cleanup
Pipeline #123608 passed
...@@ -31,10 +31,10 @@ Datafield* createMaskPresentation(Data2DItem* data2DItem) ...@@ -31,10 +31,10 @@ Datafield* createMaskPresentation(Data2DItem* data2DItem)
std::unique_ptr<IShape2D> roi; std::unique_ptr<IShape2D> roi;
Datafield* result = data2DItem->c_field()->clone(); Datafield* result = data2DItem->c_field()->clone();
MaskStack detectorMask; MaskStack detectorMask;
const QVector<MaskItem*> maskItems = data2DItem->maskContainerItem()->maskItems(); const QVector<const MaskItem*> maskItems = data2DItem->maskContainerItem()->maskItems();
for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++)
if ((*maskIter)->isVisible()) { if ((*maskIter)->isVisible()) {
if (auto* roiItem = dynamic_cast<RegionOfInterestItem*>((*maskIter))) if (auto* roiItem = dynamic_cast<const RegionOfInterestItem*>((*maskIter)))
roi = roiItem->createShape(); roi = roiItem->createShape();
else { else {
std::unique_ptr<IShape2D> shape((*maskIter)->createShape()); std::unique_ptr<IShape2D> shape((*maskIter)->createShape());
......
...@@ -258,7 +258,7 @@ public: ...@@ -258,7 +258,7 @@ public:
m_selections.begin() + toIndex + 1); m_selections.begin() + toIndex + 1);
} }
QVector<CatalogedType*> toQVector() const QVector<CatalogedType*> toModifiableQVector() const
{ {
QVector<CatalogedType*> result; QVector<CatalogedType*> result;
for (const auto& sel : m_selections) for (const auto& sel : m_selections)
...@@ -266,6 +266,14 @@ public: ...@@ -266,6 +266,14 @@ public:
return result; return result;
} }
QVector<const CatalogedType*> toQVector() const
{
QVector<const CatalogedType*> result;
for (const auto& sel : m_selections)
result.append(sel.currentItem());
return result;
}
void push_back(CatalogedType* item) { insert_at(m_selections.size(), item); } void push_back(CatalogedType* item) { insert_at(m_selections.size(), item); }
void clear() { m_selections.clear(); } void clear() { m_selections.clear(); }
size_t size() const { return m_selections.size(); } size_t size() const { return m_selections.size(); }
......
...@@ -68,10 +68,10 @@ std::unique_ptr<IDetector> DetectorItem::createDetector() const ...@@ -68,10 +68,10 @@ std::unique_ptr<IDetector> DetectorItem::createDetector() const
auto result = std::make_unique<Detector2D>(x_wid, y_wid, n_x, n_y, x_cen, y_cen); auto result = std::make_unique<Detector2D>(x_wid, y_wid, n_x, n_y, x_cen, y_cen);
if (m_maskContainerItem) { if (m_maskContainerItem) {
const QVector<MaskItem*> maskItems = m_maskContainerItem->maskItems(); const QVector<const MaskItem*> maskItems = m_maskContainerItem->maskItems();
for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) { for (auto maskIter = maskItems.rbegin(); maskIter != maskItems.rend(); maskIter++) {
if ((*maskIter)->isVisible()) { if ((*maskIter)->isVisible()) {
if (auto* ii = dynamic_cast<RegionOfInterestItem*>(*maskIter)) { if (auto* ii = dynamic_cast<const RegionOfInterestItem*>(*maskIter)) {
result->setRegionOfInterest(ii->xLow(), ii->yLow(), ii->xUp(), ii->yUp()); result->setRegionOfInterest(ii->xLow(), ii->yLow(), ii->xUp(), ii->yUp());
} else { } else {
std::unique_ptr<IShape2D> shape((*maskIter)->createShape()); std::unique_ptr<IShape2D> shape((*maskIter)->createShape());
......
...@@ -28,7 +28,12 @@ MaskContainerItem::MaskContainerItem() = default; ...@@ -28,7 +28,12 @@ MaskContainerItem::MaskContainerItem() = default;
MaskContainerItem::~MaskContainerItem() = default; MaskContainerItem::~MaskContainerItem() = default;
QVector<MaskItem*> MaskContainerItem::maskItems() const QVector<MaskItem*> MaskContainerItem::modifiableMaskItems() const
{
return m_maskItems.toModifiableQVector();
}
QVector<const MaskItem*> MaskContainerItem::maskItems() const
{ {
return m_maskItems.toQVector(); return m_maskItems.toQVector();
} }
......
...@@ -31,7 +31,8 @@ public: ...@@ -31,7 +31,8 @@ public:
MaskContainerItem(); MaskContainerItem();
~MaskContainerItem(); ~MaskContainerItem();
QVector<MaskItem*> maskItems() const; QVector<MaskItem*> modifiableMaskItems() const;
QVector<const MaskItem*> maskItems() const;
//! Insert mask at given row. //! Insert mask at given row.
virtual void insertMask(int row, MaskItem* maskItem); virtual void insertMask(int row, MaskItem* maskItem);
......
...@@ -129,7 +129,7 @@ std::unique_ptr<Compound> CompoundItem::createCompound() const ...@@ -129,7 +129,7 @@ std::unique_ptr<Compound> CompoundItem::createCompound() const
QVector<ItemWithParticles*> CompoundItem::itemsWithParticles() const QVector<ItemWithParticles*> CompoundItem::itemsWithParticles() const
{ {
return m_particles.toQVector(); return m_particles.toModifiableQVector();
} }
SelectionProperty<ItemWithParticlesCatalog>& SelectionProperty<ItemWithParticlesCatalog>&
......
...@@ -70,7 +70,7 @@ double ParticleLayoutItem::totalDensityValue() const ...@@ -70,7 +70,7 @@ double ParticleLayoutItem::totalDensityValue() const
QVector<ItemWithParticles*> ParticleLayoutItem::itemsWithParticles() const QVector<ItemWithParticles*> ParticleLayoutItem::itemsWithParticles() const
{ {
return m_particles.toQVector(); return m_particles.toModifiableQVector();
} }
SelectionProperty<ItemWithParticlesCatalog>& SelectionProperty<ItemWithParticlesCatalog>&
......
...@@ -72,7 +72,7 @@ void MaskEditorCanvas::onPresentationChange(bool pixelized) ...@@ -72,7 +72,7 @@ void MaskEditorCanvas::onPresentationChange(bool pixelized)
m_resultsPresenter->updatePresenter(pixelized); m_resultsPresenter->updatePresenter(pixelized);
if (auto* container = m_data2DItem->maskContainerItem()) if (auto* container = m_data2DItem->maskContainerItem())
for (MaskItem* mask : container->maskItems()) for (MaskItem* mask : container->modifiableMaskItems())
mask->setIsVisible(!pixelized && mask->wasVisible()); mask->setIsVisible(!pixelized && mask->wasVisible());
} }
......
...@@ -140,9 +140,9 @@ void MaskGraphicsScene::onActivityChanged(MaskFlags::MaskMode mask_mode) ...@@ -140,9 +140,9 @@ void MaskGraphicsScene::onActivityChanged(MaskFlags::MaskMode mask_mode)
// Change cursor to stress that hovered item is movable (when not in PanZoom mode) // Change cursor to stress that hovered item is movable (when not in PanZoom mode)
for (auto it = m_ItemToView.begin(); it != m_ItemToView.end(); ++it) { for (auto it = m_ItemToView.begin(); it != m_ItemToView.end(); ++it) {
if (dynamic_cast<VerticalLineItem*>(it.key())) if (dynamic_cast<const VerticalLineItem*>(it.key()))
it.value()->setCursor(zoomMode ? Qt::ArrowCursor : Qt::SizeHorCursor); it.value()->setCursor(zoomMode ? Qt::ArrowCursor : Qt::SizeHorCursor);
else if (dynamic_cast<HorizontalLineItem*>(it.key())) else if (dynamic_cast<const HorizontalLineItem*>(it.key()))
it.value()->setCursor(zoomMode ? Qt::ArrowCursor : Qt::SizeVerCursor); it.value()->setCursor(zoomMode ? Qt::ArrowCursor : Qt::SizeVerCursor);
} }
} }
...@@ -335,7 +335,7 @@ void MaskGraphicsScene::updateScene() ...@@ -335,7 +335,7 @@ void MaskGraphicsScene::updateScene()
// update Z-values of all IMaskView to reflect stacking order // update Z-values of all IMaskView to reflect stacking order
int z = m_mask_list_model->maskContItem()->maskItems().size(); int z = m_mask_list_model->maskContItem()->maskItems().size();
for (MaskItem* maskItem : m_mask_list_model->maskContItem()->maskItems()) { for (const MaskItem* maskItem : m_mask_list_model->maskContItem()->maskItems()) {
if (IShapeDisplay* view = m_ItemToView[maskItem]) if (IShapeDisplay* view = m_ItemToView[maskItem])
view->setZValue(z); view->setZValue(z);
--z; --z;
...@@ -394,7 +394,7 @@ void MaskGraphicsScene::updateViews() ...@@ -394,7 +394,7 @@ void MaskGraphicsScene::updateViews()
IShapeDisplay* maskView = addViewForItem(m_mask_list_model->maskContItem()); IShapeDisplay* maskView = addViewForItem(m_mask_list_model->maskContItem());
ASSERT(maskView); ASSERT(maskView);
for (MaskItem* maskItem : m_mask_list_model->maskContItem()->maskItems()) { for (MaskItem* maskItem : m_mask_list_model->maskContItem()->modifiableMaskItems()) {
ASSERT(maskItem); ASSERT(maskItem);
IShapeDisplay* itemView = addViewForItem(maskItem); IShapeDisplay* itemView = addViewForItem(maskItem);
...@@ -443,7 +443,7 @@ void MaskGraphicsScene::removeItemViewFromScene(MaskObject* item) ...@@ -443,7 +443,7 @@ void MaskGraphicsScene::removeItemViewFromScene(MaskObject* item)
{ {
if (auto it = m_ItemToView.find(item); it != m_ItemToView.end()) { if (auto it = m_ItemToView.find(item); it != m_ItemToView.end()) {
// at first, delete views for the points of the PolygonItem // at first, delete views for the points of the PolygonItem
if (auto* polygonItem = dynamic_cast<PolygonItem*>(item)) if (auto* polygonItem = dynamic_cast<const PolygonItem*>(item))
for (PolygonPointItem* pointItem : polygonItem->points()) for (PolygonPointItem* pointItem : polygonItem->points())
removeItemViewFromScene(pointItem); removeItemViewFromScene(pointItem);
...@@ -641,8 +641,8 @@ bool MaskGraphicsScene::isValidForRectangleShapeDrawing(QGraphicsSceneMouseEvent ...@@ -641,8 +641,8 @@ bool MaskGraphicsScene::isValidForRectangleShapeDrawing(QGraphicsSceneMouseEvent
return false; return false;
if (m_mask_mode == MaskFlags::ROI_MODE) if (m_mask_mode == MaskFlags::ROI_MODE)
// only one ROI is allowed // only one ROI is allowed
for (MaskObject* item : m_ItemToView.keys()) for (const MaskObject* item : m_ItemToView.keys())
if (dynamic_cast<RegionOfInterestItem*>(item)) if (dynamic_cast<const RegionOfInterestItem*>(item))
return false; return false;
return true; return true;
} }
...@@ -683,8 +683,8 @@ bool MaskGraphicsScene::isValidForMaskAllDrawing(QGraphicsSceneMouseEvent*) cons ...@@ -683,8 +683,8 @@ bool MaskGraphicsScene::isValidForMaskAllDrawing(QGraphicsSceneMouseEvent*) cons
if (m_mask_mode != MaskFlags::MASKALL_MODE) if (m_mask_mode != MaskFlags::MASKALL_MODE)
return false; return false;
for (MaskObject* item : m_ItemToView.keys()) for (const MaskObject* item : m_ItemToView.keys())
if (dynamic_cast<MaskAllItem*>(item)) if (dynamic_cast<const MaskAllItem*>(item))
return false; return false;
return true; return true;
} }
......
...@@ -102,7 +102,7 @@ private: ...@@ -102,7 +102,7 @@ private:
ColorMap* m_colorMap; ColorMap* m_colorMap;
MaskListModel* m_mask_list_model = nullptr; MaskListModel* m_mask_list_model = nullptr;
QItemSelectionModel* m_selectionModel = nullptr; QItemSelectionModel* m_selectionModel = nullptr;
QMap<MaskObject*, IShapeDisplay*> m_ItemToView; QMap<const MaskObject*, IShapeDisplay*> m_ItemToView;
MaskGraphicsProxy* m_proxy = nullptr; MaskGraphicsProxy* m_proxy = nullptr;
std::unique_ptr<SceneAdaptor> m_adaptor; std::unique_ptr<SceneAdaptor> m_adaptor;
bool m_block_selection = false; bool m_block_selection = false;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment