From dff6a39ea04d0e7c2079abfefd4064bb882f8700 Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Thu, 16 Oct 2014 16:02:16 +0200
Subject: [PATCH] ParameterTree is build now only when RealTimeWidget is
 visible

---
 GUI/coregui/Models/InterferenceFunctionItems.cpp    | 13 -------------
 .../JobQueueWidgets/JobRealTimeWidget.cpp           |  7 +++++++
 .../Components/JobQueueWidgets/JobRealTimeWidget.h  |  2 +-
 GUI/coregui/Views/JobView.cpp                       |  1 +
 4 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/GUI/coregui/Models/InterferenceFunctionItems.cpp b/GUI/coregui/Models/InterferenceFunctionItems.cpp
index a4c016d4ae6..e6c20434801 100644
--- a/GUI/coregui/Models/InterferenceFunctionItems.cpp
+++ b/GUI/coregui/Models/InterferenceFunctionItems.cpp
@@ -68,29 +68,16 @@ InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem(
 
 void InterferenceFunction2DParaCrystalItem::onPropertyChange(const QString &name)
 {
-    qDebug() << "InterferenceFunction2DParaCrystalItem::onPropertyChange" << name;
     if(name == P_XI_INTEGRATION && isRegisteredProperty(P_ROTATION_ANGLE)) {
         if(getRegisteredProperty(P_XI_INTEGRATION).toBool()) {
             setPropertyAppearance(P_ROTATION_ANGLE, PropertyAttribute::DisabledProperty);
         } else {
             setPropertyAppearance(P_ROTATION_ANGLE, PropertyAttribute::VisibleProperty);
         }
-        qDebug() << "InterferenceFunction2DParaCrystalItem::onPropertyChange -> calling P_ROTATION_ANGLE";
         ParameterizedItem::onPropertyChange(P_ROTATION_ANGLE);
     }
     ParameterizedItem::onPropertyChange(name);
 
-
-//    if(name == P_XI_INTEGRATION) {
-//        if(getRegisteredProperty(P_XI_INTEGRATION).toBool()) {
-//            setPropertyAttribute(P_ROTATION_ANGLE, PropertyAttribute::DisabledProperty);
-//        } else {
-//            setPropertyAttribute(P_ROTATION_ANGLE, PropertyAttribute::VisibleProperty);
-//        }
-//        ParameterizedItem::onPropertyChange(P_ROTATION_ANGLE);
-//    } else {
-//        ParameterizedItem::onPropertyChange(name);
-//    }
 }
 
 
diff --git a/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.cpp b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.cpp
index 7c45831dd25..ac5a4f7b0a1 100644
--- a/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.cpp
+++ b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.cpp
@@ -82,6 +82,8 @@ void JobRealTimeWidget::itemClicked(JobItem * item)
     qDebug() << "JobOutputDataWidget::itemClicked()";
     m_currentJobItem = item;
 
+    if(!isVisible()) return;
+
     ModelTuningWidget *widget = m_jobItemToTuningWidget[item];
     if( !widget && isValidJobItem(item)) {
 
@@ -127,6 +129,11 @@ void JobRealTimeWidget::onResetParameters()
         widget->restoreModelsOfCurrentJobItem();
 }
 
+void JobRealTimeWidget::updateCurrentItem()
+{
+    itemClicked(m_currentJobItem);
+}
+
 //void JobRealTimeWidget::onExportParameters()
 //{
 
diff --git a/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.h b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.h
index 6cd88901d65..89f6fc79efc 100644
--- a/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.h
+++ b/GUI/coregui/Views/Components/JobQueueWidgets/JobRealTimeWidget.h
@@ -27,7 +27,7 @@ public slots:
     void onJobItemDelete(JobItem *item);
     void onJobItemFinished(const QString &identifier);
     void onResetParameters();
-    //void onExportParameters();
+    void updateCurrentItem();
 
 private:
     ModelTuningWidget *getCurrentModelTuningWidget();
diff --git a/GUI/coregui/Views/JobView.cpp b/GUI/coregui/Views/JobView.cpp
index 8728f0741fd..b6c3e4a4db5 100644
--- a/GUI/coregui/Views/JobView.cpp
+++ b/GUI/coregui/Views/JobView.cpp
@@ -141,6 +141,7 @@ void JobView::setActivity(int activity)
     } else if(activity == RealTimeActivity) {
         m_d->m_dockWidgets[JobListDock]->hide();
         m_d->m_dockWidgets[RealTimeDock]->show();
+        m_d->m_jobRealTimeWidget->updateCurrentItem();
         emit activityChanged(activity);
     }
 }
-- 
GitLab