From b83cf0a598308cdef257b775143b48b896e4f5e6 Mon Sep 17 00:00:00 2001 From: Dmitry Yurov <d.yurov@fz-juelich.de> Date: Thu, 6 Dec 2018 11:15:46 +0100 Subject: [PATCH] Fix unlink/relink on instrument change --- .../LinkInstrumentManager.cpp | 20 +++++-------------- .../ImportDataWidgets/LinkInstrumentManager.h | 3 +-- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp index 595e7ea97be..9bbbfe81074 100644 --- a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp +++ b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.cpp @@ -155,11 +155,7 @@ void LinkInstrumentManager::onInstrumentChildChange(InstrumentItem* instrument, if (child == nullptr) return; - if (child->itemName() == BasicAxisItem::P_NBINS - || child->parent()->modelType() == Constants::GroupItemType) - onInstrumentBinningChange(instrument); - else - onInstrumentLayoutChange(instrument); + onInstrumentLayoutChange(instrument); } //! Updates map of instruments on insert/remove InstrumentItem event. @@ -248,22 +244,16 @@ void LinkInstrumentManager::updateRealDataMap() } } -//! Runs through all RealDataItem and break the link, if instrument binning doesn't match the data. - -void LinkInstrumentManager::onInstrumentBinningChange(InstrumentItem* changedInstrument) -{ - for(auto realDataItem : linkedItems(changedInstrument)) - if (!changedInstrument->alignedWith(realDataItem)) - realDataItem->setItemValue(RealDataItem::P_INSTRUMENT_ID, QString()); -} - //! Runs through all RealDataItem and refresh linking to match possible change in detector //! axes definition. void LinkInstrumentManager::onInstrumentLayoutChange(InstrumentItem* changedInstrument) { for (auto realDataItem : linkedItems(changedInstrument)) - realDataItem->linkToInstrument(changedInstrument); + if (!changedInstrument->alignedWith(realDataItem)) + realDataItem->setItemValue(RealDataItem::P_INSTRUMENT_ID, QString()); + else + realDataItem->linkToInstrument(changedInstrument); } //! Returns list of RealDataItem's linked to given instrument. diff --git a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h index 1a5f5c5369c..0ab1b5ef364 100644 --- a/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h +++ b/GUI/coregui/Views/ImportDataWidgets/LinkInstrumentManager.h @@ -46,7 +46,7 @@ public: InstrumentItem* m_instrument; }; - explicit LinkInstrumentManager(QObject* parent = 0); + explicit LinkInstrumentManager(QObject* parent = nullptr); void setModels(InstrumentModel* instrumentModel, RealDataModel* realDataModel); @@ -71,7 +71,6 @@ private slots: void updateLinks(); void updateInstrumentMap(); void updateRealDataMap(); - void onInstrumentBinningChange(InstrumentItem* changedInstrument); void onInstrumentLayoutChange(InstrumentItem* changedInstrument); private: -- GitLab