Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / XGUI / XGUI_ObjectsBrowser.cpp
index af509801a0b3cc8a9ffe7c13de1549ba6edff07b..4268115fde4477d1bbe52412c4d440a4ca291c04 100644 (file)
@@ -3,7 +3,7 @@
 #include "XGUI_Tools.h"
 
 #include <ModelAPI_Data.h>
-#include <ModelAPI_PluginManager.h>
+#include <ModelAPI_Session.h>
 #include <ModelAPI_Document.h>
 #include <ModelAPI_Object.h>
 
@@ -57,16 +57,10 @@ void XGUI_DataTree::mouseDoubleClickEvent(QMouseEvent* theEvent)
   if (theEvent->button() == Qt::LeftButton) {
     QModelIndex aIndex = currentIndex();
     XGUI_DocumentDataModel* aModel = dataModel();
-
-    if ((aModel->activePartIndex() != aIndex) && aModel->activePartIndex().isValid()) {
-      setExpanded(aModel->activePartIndex(), false);
-    }
-    bool isChanged = aModel->activatedIndex(aIndex);
-    QTreeView::mouseDoubleClickEvent(theEvent);
-    if (isChanged) {
-      if (aModel->activePartIndex().isValid())
-        setExpanded(aIndex, true);
-      emit activePartChanged(aModel->activePart());
+    ObjectPtr aObject = aModel->object(aIndex);
+    ResultPartPtr aPart = boost::dynamic_pointer_cast<ModelAPI_ResultPart>(aObject);
+    if (aPart) {
+      aPart->activate();
     }
   } else
     QTreeView::mouseDoubleClickEvent(theEvent);
@@ -83,10 +77,10 @@ void XGUI_DataTree::commitData(QWidget* theEditor)
   if (aEditor) {
     QString aRes = aEditor->text();
     ObjectPtr aFeature = mySelectedData.first();
-    PluginManagerPtr aMgr = ModelAPI_PluginManager::get();
-    aMgr->rootDocument()->startOperation();
+    SessionPtr aMgr = ModelAPI_Session::get();
+    aMgr->startOperation();
     aFeature->data()->setName(qPrintable(aRes));
-    aMgr->rootDocument()->finishOperation();
+    aMgr->finishOperation();
   }
 }
 
@@ -119,8 +113,8 @@ XGUI_ObjectsBrowser::XGUI_ObjectsBrowser(QWidget* theParent)
 
   aLabelLay->addWidget(aLbl);
 
-  PluginManagerPtr aMgr = ModelAPI_PluginManager::get();
-  DocumentPtr aDoc = aMgr->rootDocument();
+  SessionPtr aMgr = ModelAPI_Session::get();
+  DocumentPtr aDoc = aMgr->moduleDocument();
   // TODO: Find a name of the root document
 
   myActiveDocLbl = new QLineEdit(tr("Part set"), aLabelWgt);
@@ -226,8 +220,8 @@ void XGUI_ObjectsBrowser::closeDocNameEditing(bool toSave)
   myActiveDocLbl->setReadOnly(true);
   if (toSave) {
     // TODO: Save the name of root document
-    PluginManagerPtr aMgr = ModelAPI_PluginManager::get();
-    DocumentPtr aDoc = aMgr->rootDocument();
+    SessionPtr aMgr = ModelAPI_Session::get();
+    DocumentPtr aDoc = aMgr->moduleDocument();
   } else {
     myActiveDocLbl->setText(myActiveDocLbl->property("OldText").toString());
   }
@@ -266,7 +260,7 @@ void XGUI_ObjectsBrowser::activatePart(const ResultPartPtr& thePart)
 void XGUI_ObjectsBrowser::onContextMenuRequested(QContextMenuEvent* theEvent)
 {
   myObjectsList = myTreeView->selectedObjects();
-  bool toEnable = myObjectsList.size() > 0;
+  bool toEnable = myObjectsList.size() == 1;
   foreach(QAction* aCmd, actions())
   {
     aCmd->setEnabled(toEnable);
@@ -348,3 +342,9 @@ void XGUI_ObjectsBrowser::setObjectsSelected(const QList<ObjectPtr>& theObjects)
     }
   }
 }
+
+//***************************************************
+void XGUI_ObjectsBrowser::processEvent(const boost::shared_ptr<Events_Message>& theMessage)
+{ 
+  myDocModel->processEvent(theMessage); 
+}