diff --git a/GUI/View/Access/DataAccessWidget.cpp b/GUI/View/Access/DataAccessWidget.cpp index 7c86067e99700de6b5c0ec7dbc6eaca39c22b403..008a56d4ae285b567dae6dd01686964500040426 100644 --- a/GUI/View/Access/DataAccessWidget.cpp +++ b/GUI/View/Access/DataAccessWidget.cpp @@ -23,7 +23,6 @@ DataAccessWidget::DataAccessWidget() : m_item(nullptr) { } -DataAccessWidget::~DataAccessWidget() = default; void DataAccessWidget::setBaseItem(QObject* item) { diff --git a/GUI/View/Access/DataAccessWidget.h b/GUI/View/Access/DataAccessWidget.h index 1ad80a1467c75f3fa65509c97c1042df42a2e8d4..f9d4d5bfa51d1ca7445b36c53fe27978ae4f0d10 100644 --- a/GUI/View/Access/DataAccessWidget.h +++ b/GUI/View/Access/DataAccessWidget.h @@ -15,7 +15,7 @@ #ifndef BORNAGAIN_GUI_VIEW_ACCESS_DATAACCESSWIDGET_H #define BORNAGAIN_GUI_VIEW_ACCESS_DATAACCESSWIDGET_H -#include <QWidget> +#include <QObject> class Data1DItem; class Data2DItem; @@ -27,10 +27,10 @@ class JobItem; //! separately and as a list of items that is required for simultaneous, synchronous work while //! plotting and changing their properties. -class DataAccessWidget : public QWidget { +class DataAccessWidget : public QObject { + Q_OBJECT public: explicit DataAccessWidget(); - ~DataAccessWidget() override; void setBaseItem(QObject* item); diff --git a/GUI/View/Access/DataPropertyWidget.cpp b/GUI/View/Access/DataPropertyWidget.cpp index 5d15a17bd4ca456814cdc9221915a01a1d8bc49e..24273b6896174a4fdfef9cca46321618c3ff9ec4 100644 --- a/GUI/View/Access/DataPropertyWidget.cpp +++ b/GUI/View/Access/DataPropertyWidget.cpp @@ -32,7 +32,7 @@ DataPropertyWidget::DataPropertyWidget() void DataPropertyWidget::setJobOrDatafileItem(QObject* item) { - setBaseItem(item); + m_daw.setBaseItem(item); createPanelElements(); } @@ -47,7 +47,7 @@ void DataPropertyWidget::updateItemCoords(DataItem* item) void DataPropertyWidget::updateUIValues() { - if (jobRealBase()) + if (m_daw.jobRealBase()) for (const auto& updater : m_updaters) updater(); } diff --git a/GUI/View/Access/DataPropertyWidget.h b/GUI/View/Access/DataPropertyWidget.h index 44d960ffbcf397026cdb0626eba20745c8ea4fa2..5ff80156aeb5960e8b217ab2b494a69b5d65924d 100644 --- a/GUI/View/Access/DataPropertyWidget.h +++ b/GUI/View/Access/DataPropertyWidget.h @@ -17,12 +17,13 @@ #include "GUI/View/Access/DataAccessWidget.h" #include <QFormLayout> +#include <QWidget> class DataItem; //! Base class for AxesPanel and AxisPanel. -class DataPropertyWidget : public DataAccessWidget { +class DataPropertyWidget : public QWidget { Q_OBJECT public: explicit DataPropertyWidget(); @@ -39,6 +40,8 @@ protected: QFormLayout* m_main_layout; QList<std::function<void()>> m_updaters; + + DataAccessWidget m_daw; }; #endif // BORNAGAIN_GUI_VIEW_ACCESS_DATAPROPERTYWIDGET_H diff --git a/GUI/View/Frame/Fit1DFrame.cpp b/GUI/View/Frame/Fit1DFrame.cpp index f037d3c6bfffe7e38ef4e00618fe47ff22058e13..fab2354377c1bd57f45f8ff23bf187d07aa00878 100644 --- a/GUI/View/Frame/Fit1DFrame.cpp +++ b/GUI/View/Frame/Fit1DFrame.cpp @@ -76,26 +76,26 @@ Fit1DFrame::Fit1DFrame(JobItem* job_item) &Fit1DFrame::onResetViewAction); ASSERT(job_item); - setBaseItem(job_item); - GUI::View::RangeUtil::setCommonRangeY(mainData1DItems()); + m_daw.setBaseItem(job_item); + GUI::View::RangeUtil::setCommonRangeY(m_daw.mainData1DItems()); updateDiffData(); connectItems(); - m_data_canvas->setData1DItems({simuData1DItem(), realData1DItem()}); - m_diff_canvas->setData1DItems({diffData1DItem()}); + m_data_canvas->setData1DItems({m_daw.simuData1DItem(), m_daw.realData1DItem()}); + m_diff_canvas->setData1DItems({m_daw.diffData1DItem()}); m_progress_canvas->setJobItem(job_item); m_axis_panel->setJobOrDatafileItem(job_item); } void Fit1DFrame::onResetViewAction() { - ASSERT(simuData1DItem() && diffData1DItem() && realData1DItem()); - simuData1DItem()->resetView(); - realData1DItem()->resetView(); - diffData1DItem()->resetView(); + ASSERT(m_daw.simuData1DItem() && m_daw.diffData1DItem() && m_daw.realData1DItem()); + m_daw.simuData1DItem()->resetView(); + m_daw.realData1DItem()->resetView(); + m_daw.diffData1DItem()->resetView(); // synchronize data range between simulated and real - GUI::View::RangeUtil::setCommonRangeY(mainData1DItems()); + GUI::View::RangeUtil::setCommonRangeY(m_daw.mainData1DItems()); gDoc->setModified(); } @@ -103,29 +103,29 @@ void Fit1DFrame::connectItems() { // sync X axis view area between simulated and difference plots // simu --> diff - connect(simuData1DItem(), &DataItem::updateOtherPlots, diffData1DItem(), + connect(m_daw.simuData1DItem(), &DataItem::updateOtherPlots, m_daw.diffData1DItem(), &DataItem::checkXranges, Qt::UniqueConnection); // diff --> simu - connect(diffData1DItem(), &DataItem::updateOtherPlots, simuData1DItem(), + connect(m_daw.diffData1DItem(), &DataItem::updateOtherPlots, m_daw.simuData1DItem(), &DataItem::checkXranges, Qt::UniqueConnection); // update diff data if simulation data changes - connect(simuData1DItem(), &Data1DItem::datafieldChanged, this, &Fit1DFrame::updateDiffData, - Qt::UniqueConnection); + connect(m_daw.simuData1DItem(), &Data1DItem::datafieldChanged, this, + &Fit1DFrame::updateDiffData, Qt::UniqueConnection); } void Fit1DFrame::updateDiffData() { - ASSERT(simuData1DItem() && diffData1DItem() && realData1DItem()); - if (!simuData1DItem()->c_field() || !realData1DItem()->c_field()) + ASSERT(m_daw.simuData1DItem() && m_daw.diffData1DItem() && m_daw.realData1DItem()); + if (!m_daw.simuData1DItem()->c_field() || !m_daw.realData1DItem()->c_field()) return; - diffData1DItem()->setDatafield(DiffUtil::relativeDifferenceField(*simuData1DItem()->c_field(), - *realData1DItem()->c_field())); + m_daw.diffData1DItem()->setDatafield(DiffUtil::relativeDifferenceField( + *m_daw.simuData1DItem()->c_field(), *m_daw.realData1DItem()->c_field())); // keep Y axis range up with data range - double min = diffData1DItem()->yMin(); - double max = diffData1DItem()->yMax(); - if (!diffData1DItem()->axItemY()->isLogScale() || min > 0) - diffData1DItem()->setYrange(min, max); + double min = m_daw.diffData1DItem()->yMin(); + double max = m_daw.diffData1DItem()->yMax(); + if (!m_daw.diffData1DItem()->axItemY()->isLogScale() || min > 0) + m_daw.diffData1DItem()->setYrange(min, max); } diff --git a/GUI/View/Frame/Fit1DFrame.h b/GUI/View/Frame/Fit1DFrame.h index dff17706c4489180c1063fb91f09b02766215045..54bb665191d59915f42f39b896e0334d01e206eb 100644 --- a/GUI/View/Frame/Fit1DFrame.h +++ b/GUI/View/Frame/Fit1DFrame.h @@ -17,6 +17,7 @@ #include "GUI/View/Access/DataAccessWidget.h" #include <QAction> +#include <QWidget> class AxisPanel; class JobItem; @@ -28,7 +29,7 @@ class SpecularPlotCanvas; //! The Fit2DFrame class plots real data, simulated data and their relative difference //! during the course of the fit. -class Fit1DFrame : public DataAccessWidget { +class Fit1DFrame : public QWidget { Q_OBJECT public: explicit Fit1DFrame(JobItem* item); @@ -45,6 +46,7 @@ private: AxisPanel* m_axis_panel; QAction* m_reset_view_action; + DataAccessWidget m_daw; }; #endif // BORNAGAIN_GUI_VIEW_FRAME_FIT1DFRAME_H diff --git a/GUI/View/Frame/Fit2DFrame.cpp b/GUI/View/Frame/Fit2DFrame.cpp index 57059b532e46d5c44cde3cc5d8c0428a2e08d5d9..d79d22808f948bf61d96a412bb770af23a52779c 100644 --- a/GUI/View/Frame/Fit2DFrame.cpp +++ b/GUI/View/Frame/Fit2DFrame.cpp @@ -78,15 +78,15 @@ Fit2DFrame::Fit2DFrame(JobItem* job_item) &Fit2DFrame::onResetViewAction); ASSERT(job_item); - setBaseItem(job_item); + m_daw.setBaseItem(job_item); - GUI::View::RangeUtil::setCommonRangeZ(mainData2DItems()); + GUI::View::RangeUtil::setCommonRangeZ(m_daw.mainData2DItems()); updateDiffData(); connectItems(); - m_simu_canvas->itemToCanvas(simuData2DItem()); - m_real_canvas->itemToCanvas(realData2DItem()); - m_diff_canvas->itemToCanvas(diffData2DItem()); + m_simu_canvas->itemToCanvas(m_daw.simuData2DItem()); + m_real_canvas->itemToCanvas(m_daw.realData2DItem()); + m_diff_canvas->itemToCanvas(m_daw.diffData2DItem()); m_progress_canvas->setJobItem(job_item); m_axes_panel->setJobOrDatafileItem(job_item); @@ -94,51 +94,51 @@ Fit2DFrame::Fit2DFrame(JobItem* job_item) void Fit2DFrame::onResetViewAction() { - ASSERT(simuData2DItem() && diffData2DItem() && realData2DItem()); - simuData2DItem()->resetView(); - realData2DItem()->resetView(); - diffData2DItem()->resetView(); + ASSERT(m_daw.simuData2DItem() && m_daw.diffData2DItem() && m_daw.realData2DItem()); + m_daw.simuData2DItem()->resetView(); + m_daw.realData2DItem()->resetView(); + m_daw.diffData2DItem()->resetView(); // synchronize data range between simulated and real - GUI::View::RangeUtil::setCommonRangeZ(mainData2DItems()); + GUI::View::RangeUtil::setCommonRangeZ(m_daw.mainData2DItems()); gDoc->setModified(); } void Fit2DFrame::connectItems() { // sync XY view area between simulated, real and difference plots - for (auto* senderItem : allData2DItems()) - for (auto* receiverItem : allData2DItems()) + for (auto* senderItem : m_daw.allData2DItems()) + for (auto* receiverItem : m_daw.allData2DItems()) if (receiverItem != senderItem) connect(senderItem, &DataItem::updateOtherPlots, receiverItem, &DataItem::checkXYranges, Qt::UniqueConnection); // sync Z range between simulated and real - connect(simuData2DItem(), &Data2DItem::alignRanges, - [this] { GUI::View::RangeUtil::setCommonRangeZ(mainData2DItems()); }); + connect(m_daw.simuData2DItem(), &Data2DItem::alignRanges, + [this] { GUI::View::RangeUtil::setCommonRangeZ(m_daw.mainData2DItems()); }); // sync Z range: simu --> real - connect(simuData2DItem(), &DataItem::updateOtherPlots, realData2DItem(), + connect(m_daw.simuData2DItem(), &DataItem::updateOtherPlots, m_daw.realData2DItem(), &Data2DItem::copyZRangeFromItem, Qt::UniqueConnection); // sync Z range: real --> simu - connect(realData2DItem(), &DataItem::updateOtherPlots, simuData2DItem(), + connect(m_daw.realData2DItem(), &DataItem::updateOtherPlots, m_daw.simuData2DItem(), &Data2DItem::copyZRangeFromItem, Qt::UniqueConnection); // update diff data if simulation data changes - connect(simuData2DItem(), &Data1DItem::datafieldChanged, this, &Fit2DFrame::updateDiffData, - Qt::UniqueConnection); + connect(m_daw.simuData2DItem(), &Data1DItem::datafieldChanged, this, + &Fit2DFrame::updateDiffData, Qt::UniqueConnection); } void Fit2DFrame::updateDiffData() { - ASSERT(simuData2DItem() && diffData2DItem() && realData2DItem()); - if (!simuData2DItem()->c_field() || !realData2DItem()->c_field()) + ASSERT(m_daw.simuData2DItem() && m_daw.diffData2DItem() && m_daw.realData2DItem()); + if (!m_daw.simuData2DItem()->c_field() || !m_daw.realData2DItem()->c_field()) return; - diffData2DItem()->setDatafield(DiffUtil::relativeDifferenceField(*simuData2DItem()->c_field(), - *realData2DItem()->c_field())); + m_daw.diffData2DItem()->setDatafield(DiffUtil::relativeDifferenceField( + *m_daw.simuData2DItem()->c_field(), *m_daw.realData2DItem()->c_field())); // keep Z axis range up with data range - diffData2DItem()->computeDataRange(); + m_daw.diffData2DItem()->computeDataRange(); } diff --git a/GUI/View/Frame/Fit2DFrame.h b/GUI/View/Frame/Fit2DFrame.h index 87b5df3d9da8a606add50395569c51b5693640db..7f1b4e2912ed00dc5e3559e6d87ba005ac25d40d 100644 --- a/GUI/View/Frame/Fit2DFrame.h +++ b/GUI/View/Frame/Fit2DFrame.h @@ -17,6 +17,7 @@ #include "GUI/View/Access/DataAccessWidget.h" #include <QAction> +#include <QWidget> class AxesPanel; class ColorMapCanvas; @@ -26,7 +27,7 @@ class ProgressCanvas; //! Plots realdata, simulated data and relative difference map during the course of the fit. -class Fit2DFrame : public DataAccessWidget { +class Fit2DFrame : public QWidget { Q_OBJECT public: explicit Fit2DFrame(JobItem* item); @@ -44,6 +45,7 @@ private: AxesPanel* m_axes_panel; QAction* m_reset_view_action; + DataAccessWidget m_daw; }; #endif // BORNAGAIN_GUI_VIEW_FRAME_FIT2DFRAME_H diff --git a/GUI/View/Setup/AxesPanel.cpp b/GUI/View/Setup/AxesPanel.cpp index ed74b694d5830b14b0b8543a53eef04bcaf607ca..5d426b94564b0d7148fc88f688f3ee92fae7b98c 100644 --- a/GUI/View/Setup/AxesPanel.cpp +++ b/GUI/View/Setup/AxesPanel.cpp @@ -29,10 +29,10 @@ void AxesPanel::createPanelElements() { - if (allData2DItems().empty()) + if (m_daw.allData2DItems().empty()) return; - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) disconnect(item, nullptr, this, nullptr); GUI::Util::Layout::clearLayout(m_main_layout); @@ -54,18 +54,18 @@ void AxesPanel::createPanelElements() m_main_layout->addRow( "Color scheme:", - GUI::Util::createComboBox([this] { return currentData2DItem()->gradientCombo(); }, + GUI::Util::createComboBox([this] { return m_daw.currentData2DItem()->gradientCombo(); }, [this](const QString& newVal) { - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->setCurrentGradient(newVal); gDoc->setModified(); }, false, &m_updaters)); m_main_layout->addRow(GUI::Util::createCheckBox( - "Interpolate", [this] { return currentData2DItem()->isInterpolated(); }, + "Interpolate", [this] { return m_daw.currentData2DItem()->isInterpolated(); }, [this](bool b) { - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->setInterpolated(b); gDoc->setModified(); }, @@ -78,18 +78,18 @@ void AxesPanel::createPanelElements() xFormLayout->setSpacing(5); xFormLayout->addRow("Min:", GUI::Util::createDoubleSpinBox( - [this] { return currentData2DItem()->axItemX()->min(); }, + [this] { return m_daw.currentData2DItem()->axItemX()->min(); }, [this](double newValue) { - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->axItemX()->setMin(newValue); gDoc->setModified(); }, &m_updaters)); xFormLayout->addRow("Max:", GUI::Util::createDoubleSpinBox( - [this] { return currentData2DItem()->axItemX()->max(); }, + [this] { return m_daw.currentData2DItem()->axItemX()->max(); }, [this](double newValue) { - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->axItemX()->setMax(newValue); gDoc->setModified(); }, @@ -104,18 +104,18 @@ void AxesPanel::createPanelElements() yFormLayout->setSpacing(5); yFormLayout->addRow("Min:", GUI::Util::createDoubleSpinBox( - [this] { return currentData2DItem()->axItemY()->min(); }, + [this] { return m_daw.currentData2DItem()->axItemY()->min(); }, [this](double newValue) { - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->axItemY()->setMin(newValue); gDoc->setModified(); }, &m_updaters)); yFormLayout->addRow("Max:", GUI::Util::createDoubleSpinBox( - [this] { return currentData2DItem()->axItemY()->max(); }, + [this] { return m_daw.currentData2DItem()->axItemY()->max(); }, [this](double newValue) { - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->axItemY()->setMax(newValue); gDoc->setModified(); }, @@ -130,9 +130,9 @@ void AxesPanel::createPanelElements() zFormLayout->setSpacing(5); auto* logRangeSpinBox = GUI::Util::createDoubleSpinBox( - [this] { return currentData2DItem()->zAxisItem()->logRangeOrders(); }, + [this] { return m_daw.currentData2DItem()->zAxisItem()->logRangeOrders(); }, [this](double newValue) { - for (auto* item : mainData2DItems()) { + for (auto* item : m_daw.mainData2DItems()) { item->zAxisItem()->setLogRangeOrders(newValue); updateUIValues(); } @@ -140,35 +140,37 @@ void AxesPanel::createPanelElements() }, &m_updaters, "Dynamic range to display values", RealLimits::positive()); - zFormLayout->addRow("Min:", GUI::Util::createDoubleSpinBox( - [this] { return currentData2DItem()->zAxisItem()->min(); }, - [this](double newValue) { - for (auto* item : allData2DItems()) { - item->zAxisItem()->setMin(newValue); - item->zAxisItem()->adjustLogRangeOrders(); - updateUIValues(); - } - gDoc->setModified(); - }, - &m_updaters)); - - zFormLayout->addRow("Max:", GUI::Util::createDoubleSpinBox( - [this] { return currentData2DItem()->zAxisItem()->max(); }, - [this](double newValue) { - for (auto* item : mainData2DItems()) { - item->zAxisItem()->setMax(newValue); - item->zAxisItem()->adjustLogRangeOrders(); - updateUIValues(); - } - gDoc->setModified(); - }, - &m_updaters)); + zFormLayout->addRow("Min:", + GUI::Util::createDoubleSpinBox( + [this] { return m_daw.currentData2DItem()->zAxisItem()->min(); }, + [this](double newValue) { + for (auto* item : m_daw.allData2DItems()) { + item->zAxisItem()->setMin(newValue); + item->zAxisItem()->adjustLogRangeOrders(); + updateUIValues(); + } + gDoc->setModified(); + }, + &m_updaters)); + + zFormLayout->addRow("Max:", + GUI::Util::createDoubleSpinBox( + [this] { return m_daw.currentData2DItem()->zAxisItem()->max(); }, + [this](double newValue) { + for (auto* item : m_daw.mainData2DItems()) { + item->zAxisItem()->setMax(newValue); + item->zAxisItem()->adjustLogRangeOrders(); + updateUIValues(); + } + gDoc->setModified(); + }, + &m_updaters)); zFormLayout->addRow(GUI::Util::createCheckBox( - "log10", [this] { return currentData2DItem()->zAxisItem()->isLogScale(); }, + "log10", [this] { return m_daw.currentData2DItem()->zAxisItem()->isLogScale(); }, [this, logRangeSpinBox](bool b) { logRangeSpinBox->setEnabled(b); - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->zAxisItem()->setLogScale(b); gDoc->setModified(); }, @@ -177,9 +179,9 @@ void AxesPanel::createPanelElements() zFormLayout->addRow("Log range:", logRangeSpinBox); zFormLayout->addRow(GUI::Util::createCheckBox( - "Visible", [this] { return currentData2DItem()->zAxisItem()->isVisible(); }, + "Visible", [this] { return m_daw.currentData2DItem()->zAxisItem()->isVisible(); }, [this](bool b) { - for (auto* item : allData2DItems()) + for (auto* item : m_daw.allData2DItems()) item->zAxisItem()->setVisible(b); gDoc->setModified(); }, @@ -190,8 +192,8 @@ void AxesPanel::createPanelElements() updateUIValues(); // react on external changes (e.g. zooming in customplot shall update the axis values) - connect(currentData2DItem(), &DataItem::itemAxesRangeChanged, this, &AxesPanel::updateUIValues, - Qt::UniqueConnection); + connect(m_daw.currentData2DItem(), &DataItem::itemAxesRangeChanged, this, + &AxesPanel::updateUIValues, Qt::UniqueConnection); // update coordinates on axes units change /* diff --git a/GUI/View/Setup/AxesPanel.h b/GUI/View/Setup/AxesPanel.h index 4a0ab08a5977efe9105d9a6e36b5925d381caad6..5fc2b589ee1de01b0311d735fba34eb196dcc513 100644 --- a/GUI/View/Setup/AxesPanel.h +++ b/GUI/View/Setup/AxesPanel.h @@ -20,7 +20,6 @@ //! Widget to edit properties of an Data2DItem. class AxesPanel : public DataPropertyWidget { - Q_OBJECT private: void createPanelElements() override; }; diff --git a/GUI/View/Setup/AxisPanel.cpp b/GUI/View/Setup/AxisPanel.cpp index 7ef75e7466082901bd9b571e4df71e007da03fc2..4d8e44cc83d64c133f44ca3d9e0a08a931a96ac5 100644 --- a/GUI/View/Setup/AxisPanel.cpp +++ b/GUI/View/Setup/AxisPanel.cpp @@ -29,10 +29,10 @@ void AxisPanel::createPanelElements() { - if (allData1DItems().empty()) + if (m_daw.allData1DItems().empty()) return; - for (auto* item : allData1DItems()) + for (auto* item : m_daw.allData1DItems()) disconnect(item, nullptr, this, nullptr); GUI::Util::Layout::clearLayout(m_main_layout); @@ -59,18 +59,18 @@ void AxisPanel::createPanelElements() xFormLayout->setSpacing(5); xFormLayout->addRow("Min:", GUI::Util::createDoubleSpinBox( - [this] { return currentData1DItem()->axItemX()->min(); }, + [this] { return m_daw.currentData1DItem()->axItemX()->min(); }, [this](double newValue) { - for (auto* item : allData1DItems()) + for (auto* item : m_daw.allData1DItems()) item->axItemX()->setMin(newValue); gDoc->setModified(); }, &m_updaters)); xFormLayout->addRow("Max:", GUI::Util::createDoubleSpinBox( - [this] { return currentData1DItem()->axItemX()->max(); }, + [this] { return m_daw.currentData1DItem()->axItemX()->max(); }, [this](double newValue) { - for (auto* item : allData1DItems()) + for (auto* item : m_daw.allData1DItems()) item->axItemX()->setMax(newValue); gDoc->setModified(); }, @@ -85,9 +85,9 @@ void AxisPanel::createPanelElements() yFormLayout->setSpacing(5); auto* logRangeSpinBox = GUI::Util::createDoubleSpinBox( - [this] { return currentData1DItem()->axItemY()->logRangeOrders(); }, + [this] { return m_daw.currentData1DItem()->axItemY()->logRangeOrders(); }, [this](double newValue) { - for (auto* item : mainData1DItems()) { + for (auto* item : m_daw.mainData1DItems()) { item->axItemY()->setLogRangeOrders(newValue); updateUIValues(); } @@ -96,9 +96,9 @@ void AxisPanel::createPanelElements() &m_updaters, "Dynamic range to display values", RealLimits::positive()); yFormLayout->addRow("Min:", GUI::Util::createDoubleSpinBox( - [this] { return currentData1DItem()->axItemY()->min(); }, + [this] { return m_daw.currentData1DItem()->axItemY()->min(); }, [this](double newValue) { - for (auto* item : mainData1DItems()) { + for (auto* item : m_daw.mainData1DItems()) { item->axItemY()->setMin(newValue); item->axItemY()->adjustLogRangeOrders(); updateUIValues(); @@ -108,9 +108,9 @@ void AxisPanel::createPanelElements() &m_updaters)); yFormLayout->addRow("Max:", GUI::Util::createDoubleSpinBox( - [this] { return currentData1DItem()->axItemY()->max(); }, + [this] { return m_daw.currentData1DItem()->axItemY()->max(); }, [this](double newValue) { - for (auto* item : mainData1DItems()) { + for (auto* item : m_daw.mainData1DItems()) { item->axItemY()->setMax(newValue); item->axItemY()->adjustLogRangeOrders(); updateUIValues(); @@ -120,10 +120,10 @@ void AxisPanel::createPanelElements() &m_updaters)); yFormLayout->addRow(GUI::Util::createCheckBox( - "log10", [this] { return currentData1DItem()->axItemY()->isLogScale(); }, + "log10", [this] { return m_daw.currentData1DItem()->axItemY()->isLogScale(); }, [this, logRangeSpinBox](bool b) { logRangeSpinBox->setEnabled(b); - for (auto* item : allData1DItems()) + for (auto* item : m_daw.allData1DItems()) item->axItemY()->setLogScale(b); gDoc->setModified(); }, @@ -136,11 +136,11 @@ void AxisPanel::createPanelElements() updateUIValues(); // react on external changes (e.g. zooming in customplot shall update the axis values) - connect(currentData1DItem(), &DataItem::itemAxesRangeChanged, this, &AxisPanel::updateUIValues, - Qt::UniqueConnection); + connect(m_daw.currentData1DItem(), &DataItem::itemAxesRangeChanged, this, + &AxisPanel::updateUIValues, Qt::UniqueConnection); // update coordinates on axes units change - for (auto* item : allData1DItems()) + for (auto* item : m_daw.allData1DItems()) connect(item, &DataItem::axesUnitsChanged, this, &AxisPanel::updateItemCoords, Qt::UniqueConnection); } diff --git a/GUI/View/Setup/AxisPanel.h b/GUI/View/Setup/AxisPanel.h index 619dc14c02dfa115604f64d28d1c2d4b9dd758d5..14107cbac13f1c04e5c0afee47bb8c587d9c2486 100644 --- a/GUI/View/Setup/AxisPanel.h +++ b/GUI/View/Setup/AxisPanel.h @@ -20,7 +20,6 @@ //! Widget to edit properties of a Data1DItem. class AxisPanel : public DataPropertyWidget { - Q_OBJECT private: void createPanelElements() override; };