diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h index 70fd5f6e2a3a8689a4c46b80bd5950ec0a2502a3..b468103b7cde440f3052c4dcd8e5990b53820034 100644 --- a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h +++ b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h @@ -32,7 +32,7 @@ template <class T> class BA_CORE_API_ ItemStackPresenter : public ItemStackWidge public: ItemStackPresenter(bool single_widget = false) : m_single_widget(single_widget){} - virtual void setItem(SessionItem* item, bool& isNew); + virtual void setItem(SessionItem* item, bool* isNew = 0); T* currentWidget(); T* itemWidget(SessionItem* item); @@ -48,11 +48,13 @@ private: }; template <class T> -void ItemStackPresenter<T>::setItem(SessionItem* item, bool& isNew) +void ItemStackPresenter<T>::setItem(SessionItem* item, bool* isNew) { validateItem(item); - isNew = false; + if(isNew) + *isNew = false; + if (!item) { hideWidgets(); return; @@ -62,7 +64,8 @@ void ItemStackPresenter<T>::setItem(SessionItem* item, bool& isNew) if (!widget) { widget = new T(); - isNew = true; + if(isNew) + *isNew = true; m_stackedWidget->addWidget(widget); m_itemToWidget[item] = widget; } diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp index 974d25bafa2b81efd137bf519313ca78bad27ee7..6ec8d3ec427267203cb109e76b4c55c0b5954ec7 100644 --- a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp +++ b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.cpp @@ -75,8 +75,7 @@ void ItemStackWidget::onRowsAboutToBeRemoved(const QModelIndex& parent, int firs void ItemStackWidget::onSelectionChanged(SessionItem* item) { - bool isNew(false); - setItem(item, isNew); + setItem(item); } void ItemStackWidget::connectModel() diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h index 44ccc45b8738c720b7e180692716d0f6157bdf91..3ece7ff0df0a5537d5297a42c99e15d29794dc9c 100644 --- a/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h +++ b/GUI/coregui/Views/CommonWidgets/ItemStackWidget.h @@ -41,7 +41,7 @@ public: //! Shows the widget for given item (and hides previous one). //! If no widget yet exists, it will be created (flag isNew will become 'true' in this case). - virtual void setItem(SessionItem* item, bool& isNew) = 0; + virtual void setItem(SessionItem* item, bool* isNew = 0) = 0; QSize sizeHint() const; QSize minimumSizeHint() const; diff --git a/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp b/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp index 0e540dd9baa5b2c517bd996fd5ba4feeb9ce0f97..85c5a606ba00ee11fea3c876c455f0c19dcd79e8 100644 --- a/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp +++ b/GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp @@ -80,7 +80,7 @@ void FitActivityPanel::setItem(JobItem *item) } bool isNew(false); - m_stackedWidget->setItem(item, isNew); + m_stackedWidget->setItem(item, &isNew); if(isNew) { FitSuiteWidget *widget = m_stackedWidget->currentWidget(); diff --git a/GUI/coregui/Views/ImportDataView.cpp b/GUI/coregui/Views/ImportDataView.cpp index 2519b6fcc3f6f476a2db3a9aa82c4d6f984d96d6..2866c8c69c97f22e75b75b67b97149039f4348dc 100644 --- a/GUI/coregui/Views/ImportDataView.cpp +++ b/GUI/coregui/Views/ImportDataView.cpp @@ -69,7 +69,7 @@ void ImportDataView::onSelectionChanged(SessionItem *item) if(!item) return; bool isNew(false); - m_stackedWidget->setItem(item, isNew); + m_stackedWidget->setItem(item, &isNew); if(isNew) { // RealDataEditorWidget *widget = m_stackedWidget->currentWidget(); RealDataMaskWidget *widget = m_stackedWidget->currentWidget(); diff --git a/GUI/coregui/Views/InstrumentView.cpp b/GUI/coregui/Views/InstrumentView.cpp index 4144d1e393a6ae1e30ab937093d272dd2579954e..77941df32510edc52557d5dcd8587f8a4dfc6382 100644 --- a/GUI/coregui/Views/InstrumentView.cpp +++ b/GUI/coregui/Views/InstrumentView.cpp @@ -28,14 +28,12 @@ #include <QListView> #include <QStackedWidget> #include <QToolButton> -#include <QDebug> InstrumentView::InstrumentView(MainWindow *mainWindow) : QWidget(mainWindow) , m_instrumentModel(mainWindow->instrumentModel()) , m_toolBar(new StyledToolBar(this)) , m_instrumentSelector(new InstrumentSelectorWidget(m_instrumentModel, this)) -// , m_instrumentEditor(new InstrumentEditorWidget) , m_instrumentEditor(new ItemStackPresenter<InstrumentEditorWidget>(true)) , m_addInstrumentAction(0) , m_removeInstrumentAction(0) @@ -89,15 +87,10 @@ void InstrumentView::onExtendedDetectorEditorRequest(DetectorItem *detectorItem) void InstrumentView::onItemSelectionChanged(SessionItem* instrumentItem) { - qDebug() << "InstrumentView::onItemSelectionChanged"; - bool isNew; - m_instrumentEditor->setItem(instrumentItem, isNew); + m_instrumentEditor->setItem(instrumentItem); - qDebug() << "AAAA isNew" << isNew << "instrumentItem" << instrumentItem << "widget" << m_instrumentEditor->currentWidget(); - if(instrumentItem) qDebug() << " " << instrumentItem->itemName(); - if(InstrumentEditorWidget* widget = m_instrumentEditor->currentWidget()) + if(auto widget = m_instrumentEditor->currentWidget()) widget->setInstrumentItem(instrumentItem); -// m_instrumentEditor->setInstrumentItem(instrumentItem); } void InstrumentView::showEvent(QShowEvent*) diff --git a/GUI/coregui/Views/InstrumentView.h b/GUI/coregui/Views/InstrumentView.h index ff8861d4322b5b88bd76fcdc87e48494a7e56e52..5f4685accafb7a2f0e2d0ac4833ff63dacfdc810 100644 --- a/GUI/coregui/Views/InstrumentView.h +++ b/GUI/coregui/Views/InstrumentView.h @@ -59,7 +59,6 @@ private: class StyledToolBar *m_toolBar; InstrumentSelectorWidget *m_instrumentSelector; -// InstrumentEditorWidget* m_instrumentEditor; ItemStackPresenter<InstrumentEditorWidget> *m_instrumentEditor; QAction *m_addInstrumentAction; diff --git a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp index d6d2682a25c98c76649ff066ee9170154e83b2db..ac79e19c1f29092e1123881995275a1971d42ca1 100644 --- a/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp +++ b/GUI/coregui/Views/JobWidgets/JobOutputDataWidget.cpp @@ -51,7 +51,7 @@ void JobOutputDataWidget::setItem(JobItem * jobItem) } bool isNew(false); - m_stackedWidget->setItem(jobItem, isNew); + m_stackedWidget->setItem(jobItem, &isNew); if(isNew) { JobResultsPresenter *widget = m_stackedWidget->currentWidget(); diff --git a/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp b/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp index 62e6dcb221e1db0ba3b9cd184c9a8314e4aa4f29..40886239c056d82ae96c382d7d5b4a9ff77f95a0 100644 --- a/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp +++ b/GUI/coregui/Views/JobWidgets/JobRealTimeWidget.cpp @@ -66,7 +66,7 @@ void JobRealTimeWidget::setItem(JobItem * jobItem) } bool isNew(false); - m_stackedWidget->setItem(jobItem, isNew); + m_stackedWidget->setItem(jobItem, &isNew); if(isNew) { ParameterTuningWidget *widget = m_stackedWidget->currentWidget();