]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #633: It can be compiled pure SALOME module or pure Open Parts standalone appli...
authorvsv <vitaly.smetannikov@opencascade.com>
Fri, 23 Oct 2015 16:21:02 +0000 (19:21 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Fri, 23 Oct 2015 16:21:16 +0000 (19:21 +0300)
CMakeLists.txt
src/XGUI/CMakeLists.txt
src/XGUI/XGUI_ActionsMgr.cpp
src/XGUI/XGUI_ContextMenuMgr.cpp
src/XGUI/XGUI_Displayer.cpp
src/XGUI/XGUI_SelectionMgr.cpp
src/XGUI/XGUI_ViewerProxy.cpp
src/XGUI/XGUI_ViewerProxy.h
src/XGUI/XGUI_Workshop.cpp
src/XGUI/XGUI_Workshop.h
src/XGUI/XGUI_WorkshopListener.cpp

index c61e60c75a911f86d97cbbfac5fc25f573b4ec58..272c1b15920e15444343434b49502887adf480b8 100644 (file)
@@ -58,9 +58,13 @@ ADD_SUBDIRECTORY (src/SketchPlugin)
 ADD_SUBDIRECTORY (src/SketchSolver)
 ADD_SUBDIRECTORY (src/ModuleBase)
 ADD_SUBDIRECTORY (src/PartSet)
-ADD_SUBDIRECTORY (src/AppElements)
+
+IF(NOT ${HAVE_SALOME})
+    ADD_SUBDIRECTORY (src/AppElements)
+    ADD_SUBDIRECTORY (src/GeomApp)
+ENDIF(NOT ${HAVE_SALOME})
+
 ADD_SUBDIRECTORY (src/XGUI)
-ADD_SUBDIRECTORY (src/GeomApp)
 ADD_SUBDIRECTORY (src/ExchangePlugin)
 ADD_SUBDIRECTORY (src/GeomValidators)
 ADD_SUBDIRECTORY (src/InitializationPlugin)
index 704b5ea05eba5c0437e012945bed97d60970b880..56f7bebd6fd2e5aab5007b7d590399e309ba701d 100644 (file)
@@ -73,7 +73,6 @@ SET(PROJECT_LIBRARIES
     Config
        ModelAPI
        ModuleBase
-       AppElements
        ${QT_LIBRARIES}
        ${CAS_VIEWER}
        ${CAS_KERNEL}
@@ -85,6 +84,11 @@ SET(PROJECT_LIBRARIES
        ${qtx}
 )
 
+IF(NOT ${HAVE_SALOME})
+    SET(PROJECT_LIBRARIES ${PROJECT_LIBRARIES} AppElements)
+ENDIF(NOT ${HAVE_SALOME})
+
+
 IF(WIN32) 
     SET(PROJECT_LIBRARIES ${PROJECT_LIBRARIES} opengl32)
 ELSE()
@@ -107,17 +111,22 @@ SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES} ${PROJECT_RESOURCES} ${PR
 
 ADD_DEFINITIONS( -DXGUI_EXPORTS ${CAS_DEFINITIONS} )
 
-INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/src/Events
-                                        ${PROJECT_SOURCE_DIR}/src/Config
-                                        ${PROJECT_SOURCE_DIR}/src/ModelAPI
-                                        ${PROJECT_SOURCE_DIR}/src/GeomAPI
-                                        ${PROJECT_SOURCE_DIR}/src/ModuleBase
-#                                       ${PROJECT_SOURCE_DIR}/src/PartSetPlugin
-                                        ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
-                                        ${PROJECT_SOURCE_DIR}/src/AppElements
-                                        ${CAS_INCLUDE_DIRS}
-                                        ${SUIT_INCLUDE})
-
+SET(PROJECT_INCLUDES 
+    ${PROJECT_SOURCE_DIR}/src/Events
+    ${PROJECT_SOURCE_DIR}/src/Config
+    ${PROJECT_SOURCE_DIR}/src/ModelAPI
+    ${PROJECT_SOURCE_DIR}/src/GeomAPI
+    ${PROJECT_SOURCE_DIR}/src/ModuleBase
+    ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
+    ${CAS_INCLUDE_DIRS}
+    ${SUIT_INCLUDE})
+
+IF(NOT ${HAVE_SALOME})
+    SET(PROJECT_INCLUDES ${PROJECT_INCLUDES} ${PROJECT_SOURCE_DIR}/src/AppElements)
+ENDIF(NOT ${HAVE_SALOME})
+
+INCLUDE_DIRECTORIES(${PROJECT_INCLUDES})
+                         
 LINK_DIRECTORIES($ENV{PYTHON_LIB_DIR})
 
 ADD_LIBRARY(XGUI SHARED 
index 1f721eea9812574438227612d906910bbfb3ee6e..83a388576ba9ef3969c0e449005cbd1f1434cd26 100644 (file)
@@ -4,7 +4,9 @@
  * XGUI_ActionsMgr.cpp
  */
 
+#ifndef HAVE_SALOME
 #include <AppElements_Command.h>
+#endif
 
 #include <XGUI_ActionsMgr.h>
 #include <XGUI_Workshop.h>
@@ -61,13 +63,13 @@ void XGUI_ActionsMgr::addCommand(QAction* theCmd)
     return;
   }
   myActions.insert(aId, theCmd);
-  AppElements_Command* aXCmd = dynamic_cast<AppElements_Command*>(theCmd);
-  if (aXCmd) {
-    myNestedActions[aId] = aXCmd->nestedCommands();
-  } else {
+#ifdef HAVE_SALOME
     XGUI_Workshop* aWorkshop = static_cast<XGUI_Workshop*>(parent());
     myNestedActions[aId] = aWorkshop->salomeConnector()->nestedActions(aId);
-  }
+#else
+  AppElements_Command* aXCmd = dynamic_cast<AppElements_Command*>(theCmd);
+  myNestedActions[aId] = aXCmd->nestedCommands();
+#endif
 }
 
 void XGUI_ActionsMgr::addNestedCommands(const QString& theId, const QStringList& theCommands)
@@ -337,16 +339,16 @@ void XGUI_ActionsMgr::updateByDocumentKind()
   QString aDocKind = QString::fromStdString(aStdDocKind);
   XGUI_Workshop* aWorkshop = static_cast<XGUI_Workshop*>(parent());
   foreach(QAction* eachAction, myActions.values()) {
-    AppElements_Command* aCmd = dynamic_cast<AppElements_Command*>(eachAction);
     QString aCmdDocKind;
-    if(aCmd) {
-      aCmdDocKind = aCmd->documentKind();
-    } else {
-      QString aId = eachAction->data().toString();
-      if (!aId.isEmpty()) {
-        aCmdDocKind = aWorkshop->salomeConnector()->documentKind(aId);
-      }
+#ifdef HAVE_SALOME
+    QString aId = eachAction->data().toString();
+    if (!aId.isEmpty()) {
+      aCmdDocKind = aWorkshop->salomeConnector()->documentKind(aId);
     }
+#else
+    AppElements_Command* aCmd = dynamic_cast<AppElements_Command*>(eachAction);
+    aCmdDocKind = aCmd->documentKind();
+#endif
     if(!aCmdDocKind.isEmpty() && aCmdDocKind != aDocKind) {
       eachAction->setEnabled(false);
     }
index b90e3e08505c81862e796bb72495b1e381c41312..7b570f9cc678e355d46742099997b519f4a70d1e 100644 (file)
@@ -12,7 +12,9 @@
 #include "XGUI_OperationMgr.h"
 #include "XGUI_Tools.h"
 
+#ifndef HAVE_SALOME
 #include <AppElements_MainWindow.h>
+#endif
 
 //#include "PartSetPlugin_Part.h"
 
@@ -34,6 +36,7 @@
 #include <QContextMenuEvent>
 #include <QMenu>
 #include <QMdiArea>
+#include <QMainWindow>
 
 
 XGUI_ContextMenuMgr::XGUI_ContextMenuMgr(XGUI_Workshop* theParent)
@@ -49,10 +52,13 @@ XGUI_ContextMenuMgr::~XGUI_ContextMenuMgr()
 
 void XGUI_ContextMenuMgr::createActions()
 {
-  QAction* aAction = new QAction(QIcon(":pictures/delete.png"), tr("Delete"), this);
+#ifdef HAVE_SALOME
+  QMainWindow* aDesktop = myWorkshop->salomeConnector()->desktop();
+#else
   QMainWindow* aDesktop = myWorkshop->mainWindow();
-  if (!aDesktop)
-    aDesktop = myWorkshop->salomeConnector()->desktop();
+#endif
+
+  QAction* aAction = new QAction(QIcon(":pictures/delete.png"), tr("Delete"), this);
   aDesktop->addAction(aAction);
 
   addAction("DELETE_CMD", aAction);
@@ -462,14 +468,14 @@ void XGUI_ContextMenuMgr::addViewerMenu(QMenu* theMenu) const
   }
   theMenu->addActions(aActions);
 
-  if (!myWorkshop->isSalomeMode()) {
-    theMenu->addSeparator();
-    QMdiArea* aMDI = myWorkshop->mainWindow()->mdiArea();
-    if (aMDI->actions().size() > 0) {
-      QMenu* aSubMenu = theMenu->addMenu(tr("Windows"));
-      aSubMenu->addActions(aMDI->actions());
-    }
+#ifndef HAVE_SALOME
+  theMenu->addSeparator();
+  QMdiArea* aMDI = myWorkshop->mainWindow()->mdiArea();
+  if (aMDI->actions().size() > 0) {
+    QMenu* aSubMenu = theMenu->addMenu(tr("Windows"));
+    aSubMenu->addActions(aMDI->actions());
   }
+#endif
 }
 
 QStringList XGUI_ContextMenuMgr::actionObjectGroups(const QString& theName)
index ef89e2bcef6ca0e804b0e0b2e8383f5400f3e689..b68df4408d22bedaf1b9345620a5826d8e30ae68 100644 (file)
@@ -11,7 +11,9 @@
 #include "XGUI_Selection.h"
 #include "XGUI_CustomPrs.h"
 
+#ifndef HAVE_SALOME
 #include <AppElements_Viewer.h>
+#endif
 
 #include <ModelAPI_Document.h>
 #include <ModelAPI_Data.h>
@@ -35,6 +37,7 @@
 #include <AIS_DimensionSelectionMode.hxx>
 #include <AIS_Shape.hxx>
 #include <AIS_Dimension.hxx>
+#include <AIS_Trihedron.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <SelectMgr_ListOfFilter.hxx>
 #include <SelectMgr_ListIteratorOfListOfFilter.hxx>
index 3a13e32131180e23b0374d5db04814eeec2f915c..6136e93f80f3550866ef9e587f4f19c4713e7715 100644 (file)
@@ -9,7 +9,9 @@
 #include "XGUI_Displayer.h"
 #include "XGUI_Selection.h"
 
+#ifndef HAVE_SALOME
 #include <AppElements_MainWindow.h>
+#endif
 
 #include <ModelAPI_Feature.h>
 #include <ModelAPI_Session.h>
index 955813a423b61bf8edfeb398ec3c4cb52bf60f51..90178a9670a93c4d8ed2a745ada44217d82348d1 100644 (file)
@@ -5,10 +5,14 @@
 #include "XGUI_SalomeConnector.h"
 #include "XGUI_Displayer.h"
 
-#include <AppElements_MainWindow.h>
-#include <AppElements_ViewPort.h>
-#include <AppElements_ViewWindow.h>
-#include <AppElements_Viewer.h>
+#ifndef HAVE_SALOME
+  #include <AppElements_MainWindow.h>
+  #include <AppElements_ViewPort.h>
+  #include <AppElements_ViewWindow.h>
+  #include <AppElements_Viewer.h>
+#endif
+  
+#include <ModuleBase_IViewWindow.h>
 
 #include <QEvent>
 
@@ -20,31 +24,32 @@ XGUI_ViewerProxy::XGUI_ViewerProxy(XGUI_Workshop* theParent)
 
 Handle(AIS_InteractiveContext) XGUI_ViewerProxy::AISContext() const
 {
-  if (myWorkshop->isSalomeMode()) {
-    return myWorkshop->salomeConnector()->viewer()->AISContext();
-  } else {
-    return myWorkshop->mainWindow()->viewer()->AISContext();
-  }
+#ifdef HAVE_SALOME
+  return myWorkshop->salomeConnector()->viewer()->AISContext();
+#else
+  return myWorkshop->mainWindow()->viewer()->AISContext();
+#endif
 }
 
 Handle(V3d_Viewer) XGUI_ViewerProxy::v3dViewer() const
 {
-  if (myWorkshop->isSalomeMode()) {
-    return myWorkshop->salomeConnector()->viewer()->v3dViewer();
-  } else {
-    return myWorkshop->mainWindow()->viewer()->v3dViewer();
-  }
+#ifdef HAVE_SALOME
+  return myWorkshop->salomeConnector()->viewer()->v3dViewer();
+#else
+  return myWorkshop->mainWindow()->viewer()->v3dViewer();
+#endif
 }
 
 Handle(V3d_View) XGUI_ViewerProxy::activeView() const
 {
-  if (myWorkshop->isSalomeMode()) {
-    return myWorkshop->salomeConnector()->viewer()->activeView();
-  } else {
-    AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
-    return (aViewer->activeViewWindow()) ? aViewer->activeViewWindow()->viewPortApp()->getView() :
+#ifdef HAVE_SALOME
+  return myWorkshop->salomeConnector()->viewer()->activeView();
+#else
+  AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
+  return (aViewer->activeViewWindow()) ? 
+    aViewer->activeViewWindow()->viewPortApp()->getView() :
     Handle(V3d_View)();
-  }
+#endif
 }
 
 void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ, double theTwist)
@@ -62,96 +67,96 @@ void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ,
 
 void XGUI_ViewerProxy::fitAll()
 {
-  if (myWorkshop->isSalomeMode()) {
-    myWorkshop->salomeConnector()->viewer()->fitAll();
-  } else {
-    AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
-    if (aViewer->activeViewWindow())
-      aViewer->activeViewWindow()->viewPortApp()->fitAll();
-  }
+#ifdef HAVE_SALOME
+  myWorkshop->salomeConnector()->viewer()->fitAll();
+#else
+  AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
+  if (aViewer->activeViewWindow())
+    aViewer->activeViewWindow()->viewPortApp()->fitAll();
+#endif
 }
 
 void XGUI_ViewerProxy::connectToViewer()
 {
-  if (myWorkshop->isSalomeMode()) {
-    ModuleBase_IViewer* aViewer = myWorkshop->salomeConnector()->viewer();
+#ifdef HAVE_SALOME
+  ModuleBase_IViewer* aViewer = myWorkshop->salomeConnector()->viewer();
 
-    connect(aViewer, SIGNAL(lastViewClosed()), this, SIGNAL(lastViewClosed()));
-    connect(aViewer, SIGNAL(tryCloseView(ModuleBase_IViewWindow*)), 
-      this, SIGNAL(tryCloseView(ModuleBase_IViewWindow*)));
+  connect(aViewer, SIGNAL(lastViewClosed()), this, SIGNAL(lastViewClosed()));
+  connect(aViewer, SIGNAL(tryCloseView(ModuleBase_IViewWindow*)), 
+    this, SIGNAL(tryCloseView(ModuleBase_IViewWindow*)));
 
-    connect(aViewer, SIGNAL(deleteView(ModuleBase_IViewWindow*)), 
-      this, SIGNAL(deleteView(ModuleBase_IViewWindow*)));
+  connect(aViewer, SIGNAL(deleteView(ModuleBase_IViewWindow*)), 
+    this, SIGNAL(deleteView(ModuleBase_IViewWindow*)));
 
-    connect(aViewer, SIGNAL(viewCreated(ModuleBase_IViewWindow*)), 
-      this, SLOT(onViewCreated(ModuleBase_IViewWindow*)));
+  connect(aViewer, SIGNAL(viewCreated(ModuleBase_IViewWindow*)), 
+    this, SLOT(onViewCreated(ModuleBase_IViewWindow*)));
 
-    connect(aViewer, SIGNAL(activated(ModuleBase_IViewWindow*)), 
-      this, SIGNAL(activated(ModuleBase_IViewWindow*)));
+  connect(aViewer, SIGNAL(activated(ModuleBase_IViewWindow*)), 
+    this, SIGNAL(activated(ModuleBase_IViewWindow*)));
 
-    connect(aViewer, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*)), 
-      this, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*)), 
+    this, SIGNAL(mousePress(ModuleBase_IViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(mouseRelease(ModuleBase_IViewWindow*, QMouseEvent*)), 
-      this, SIGNAL(mouseRelease(ModuleBase_IViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mouseRelease(ModuleBase_IViewWindow*, QMouseEvent*)), 
+    this, SIGNAL(mouseRelease(ModuleBase_IViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(mouseDoubleClick(ModuleBase_IViewWindow*, QMouseEvent*)), this,
-            SIGNAL(mouseDoubleClick(ModuleBase_IViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mouseDoubleClick(ModuleBase_IViewWindow*, QMouseEvent*)), this,
+          SIGNAL(mouseDoubleClick(ModuleBase_IViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(mouseMove(ModuleBase_IViewWindow*, QMouseEvent*)), 
-      this, SIGNAL(mouseMove(ModuleBase_IViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mouseMove(ModuleBase_IViewWindow*, QMouseEvent*)), 
+    this, SIGNAL(mouseMove(ModuleBase_IViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(keyPress(ModuleBase_IViewWindow*, QKeyEvent*)), 
-      this, SIGNAL(keyPress(ModuleBase_IViewWindow*, QKeyEvent*)));
+  connect(aViewer, SIGNAL(keyPress(ModuleBase_IViewWindow*, QKeyEvent*)), 
+    this, SIGNAL(keyPress(ModuleBase_IViewWindow*, QKeyEvent*)));
 
-    connect(aViewer, SIGNAL(keyRelease(ModuleBase_IViewWindow*, QKeyEvent*)), 
-      this, SIGNAL(keyRelease(ModuleBase_IViewWindow*, QKeyEvent*)));
+  connect(aViewer, SIGNAL(keyRelease(ModuleBase_IViewWindow*, QKeyEvent*)), 
+    this, SIGNAL(keyRelease(ModuleBase_IViewWindow*, QKeyEvent*)));
 
-    connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
+  connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
     
-    connect(aViewer, SIGNAL(viewTransformed(int)), this, SIGNAL(viewTransformed(int)));
+  connect(aViewer, SIGNAL(viewTransformed(int)), this, SIGNAL(viewTransformed(int)));
 
-    connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), this,
-            SIGNAL(contextMenuRequested(QContextMenuEvent*)));
-  } else {
-    AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
+  connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), this,
+          SIGNAL(contextMenuRequested(QContextMenuEvent*)));
+#else
+  AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
 
-    connect(aViewer, SIGNAL(lastViewClosed()), this, SIGNAL(lastViewClosed()));
+  connect(aViewer, SIGNAL(lastViewClosed()), this, SIGNAL(lastViewClosed()));
 
-    connect(aViewer, SIGNAL(tryCloseView(AppElements_ViewWindow*)), 
-            this, SLOT(onTryCloseView(AppElements_ViewWindow*)));
+  connect(aViewer, SIGNAL(tryCloseView(AppElements_ViewWindow*)), 
+          this, SLOT(onTryCloseView(AppElements_ViewWindow*)));
 
-    connect(aViewer, SIGNAL(deleteView(AppElements_ViewWindow*)), 
-            this, SLOT(onDeleteView(AppElements_ViewWindow*)));
+  connect(aViewer, SIGNAL(deleteView(AppElements_ViewWindow*)), 
+          this, SLOT(onDeleteView(AppElements_ViewWindow*)));
 
-    connect(aViewer, SIGNAL(viewCreated(AppElements_ViewWindow*)), 
-            this, SLOT(onViewCreated(AppElements_ViewWindow*)));
+  connect(aViewer, SIGNAL(viewCreated(AppElements_ViewWindow*)), 
+          this, SLOT(onViewCreated(AppElements_ViewWindow*)));
 
-    connect(aViewer, SIGNAL(activated(AppElements_ViewWindow*)), 
-            this, SLOT(onActivated(AppElements_ViewWindow*)));
+  connect(aViewer, SIGNAL(activated(AppElements_ViewWindow*)), 
+          this, SLOT(onActivated(AppElements_ViewWindow*)));
 
-    connect(aViewer, SIGNAL(mousePress(AppElements_ViewWindow*, QMouseEvent*)), this,
-            SLOT(onMousePress(AppElements_ViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mousePress(AppElements_ViewWindow*, QMouseEvent*)), this,
+          SLOT(onMousePress(AppElements_ViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(mouseRelease(AppElements_ViewWindow*, QMouseEvent*)), this,
-            SLOT(onMouseRelease(AppElements_ViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mouseRelease(AppElements_ViewWindow*, QMouseEvent*)), this,
+          SLOT(onMouseRelease(AppElements_ViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(mouseDoubleClick(AppElements_ViewWindow*, QMouseEvent*)), this,
-            SLOT(onMouseDoubleClick(AppElements_ViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mouseDoubleClick(AppElements_ViewWindow*, QMouseEvent*)), this,
+          SLOT(onMouseDoubleClick(AppElements_ViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(mouseMove(AppElements_ViewWindow*, QMouseEvent*)), this,
-            SLOT(onMouseMove(AppElements_ViewWindow*, QMouseEvent*)));
+  connect(aViewer, SIGNAL(mouseMove(AppElements_ViewWindow*, QMouseEvent*)), this,
+          SLOT(onMouseMove(AppElements_ViewWindow*, QMouseEvent*)));
 
-    connect(aViewer, SIGNAL(keyPress(AppElements_ViewWindow*, QKeyEvent*)), this,
-            SLOT(onKeyPress(AppElements_ViewWindow*, QKeyEvent*)));
+  connect(aViewer, SIGNAL(keyPress(AppElements_ViewWindow*, QKeyEvent*)), this,
+          SLOT(onKeyPress(AppElements_ViewWindow*, QKeyEvent*)));
 
-    connect(aViewer, SIGNAL(keyRelease(AppElements_ViewWindow*, QKeyEvent*)), this,
-            SLOT(onKeyRelease(AppElements_ViewWindow*, QKeyEvent*)));
+  connect(aViewer, SIGNAL(keyRelease(AppElements_ViewWindow*, QKeyEvent*)), this,
+          SLOT(onKeyRelease(AppElements_ViewWindow*, QKeyEvent*)));
 
-    connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
-    connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), this,
-            SIGNAL(contextMenuRequested(QContextMenuEvent*)));
-  }
+  connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
+  connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), this,
+          SIGNAL(contextMenuRequested(QContextMenuEvent*)));
+#endif
 }
 
 bool XGUI_ViewerProxy::eventFilter(QObject *theObject, QEvent *theEvent)
@@ -165,6 +170,16 @@ bool XGUI_ViewerProxy::eventFilter(QObject *theObject, QEvent *theEvent)
   return ModuleBase_IViewer::eventFilter(theObject, theEvent);
 }
 
+void XGUI_ViewerProxy::onViewCreated(ModuleBase_IViewWindow* theWnd)
+{
+  theWnd->viewPort()->installEventFilter(this);
+
+  myWindowScale.insert (theWnd->v3dView(), theWnd->v3dView()->Camera()->Scale());
+
+  emit viewCreated(theWnd);
+}
+
+#ifndef HAVE_SALOME
 void XGUI_ViewerProxy::onTryCloseView(AppElements_ViewWindow* theWnd)
 {
   emit tryCloseView(theWnd);
@@ -177,15 +192,6 @@ void XGUI_ViewerProxy::onDeleteView(AppElements_ViewWindow* theWnd)
   emit deleteView(theWnd);
 }
 
-void XGUI_ViewerProxy::onViewCreated(ModuleBase_IViewWindow* theWnd)
-{
-  theWnd->viewPort()->installEventFilter(this);
-
-  myWindowScale.insert (theWnd->v3dView(), theWnd->v3dView()->Camera()->Scale());
-
-  emit viewCreated(theWnd);
-}
-
 void XGUI_ViewerProxy::onViewCreated(AppElements_ViewWindow* theWnd)
 {
   theWnd->viewPort()->installEventFilter(this);
@@ -233,56 +239,62 @@ void XGUI_ViewerProxy::onKeyRelease(AppElements_ViewWindow* theWnd, QKeyEvent* t
   emit keyRelease(theWnd, theEvent);
 }
 
+void XGUI_ViewerProxy::onViewTransformed(AppElements_ViewWindow::OperationType theType)
+{
+  emit viewTransformed((int) theType);
+}
+
+#endif
 
 
 //***************************************
 void XGUI_ViewerProxy::enableSelection(bool isEnabled)
 {
-  if (myWorkshop->isSalomeMode()) {
-    myWorkshop->salomeConnector()->viewer()->enableSelection(isEnabled);
-  } else {
-    myWorkshop->mainWindow()->viewer()->setSelectionEnabled(isEnabled);
-  }
+#ifdef HAVE_SALOME
+  myWorkshop->salomeConnector()->viewer()->enableSelection(isEnabled);
+#else
+  myWorkshop->mainWindow()->viewer()->setSelectionEnabled(isEnabled);
+#endif
 }
 
 //***************************************
 bool XGUI_ViewerProxy::isSelectionEnabled() const
 {
-  if (myWorkshop->isSalomeMode()) {
-    return myWorkshop->salomeConnector()->viewer()->isSelectionEnabled();
-  } else {
-    return myWorkshop->mainWindow()->viewer()->isSelectionEnabled();
-  }
+#ifdef HAVE_SALOME
+  return myWorkshop->salomeConnector()->viewer()->isSelectionEnabled();
+#else
+  return myWorkshop->mainWindow()->viewer()->isSelectionEnabled();
+#endif
 }
 
 //***************************************
 void XGUI_ViewerProxy::enableMultiselection(bool isEnable)
 {
-  if (myWorkshop->isSalomeMode()) {
-    myWorkshop->salomeConnector()->viewer()->enableMultiselection(isEnable);
-  } else {
-    myWorkshop->mainWindow()->viewer()->setMultiSelectionEnabled(isEnable);
-  }
+#ifdef HAVE_SALOME
+  myWorkshop->salomeConnector()->viewer()->enableMultiselection(isEnable);
+#else
+  myWorkshop->mainWindow()->viewer()->setMultiSelectionEnabled(isEnable);
+#endif
 }
 
 //***************************************
 bool XGUI_ViewerProxy::isMultiSelectionEnabled() const
 {
-  if (myWorkshop->isSalomeMode()) {
-    return myWorkshop->salomeConnector()->viewer()->isMultiSelectionEnabled();
-  } else {
-    return myWorkshop->mainWindow()->viewer()->isMultiSelectionEnabled();
-  }
+#ifdef HAVE_SALOME
+  return myWorkshop->salomeConnector()->viewer()->isMultiSelectionEnabled();
+#else
+  return myWorkshop->mainWindow()->viewer()->isMultiSelectionEnabled();
+#endif
 }
 
 //***************************************
 bool XGUI_ViewerProxy::enableDrawMode(bool isEnabled)
 {
-  if (myWorkshop->isSalomeMode()) {
-    return myWorkshop->salomeConnector()->viewer()->enableDrawMode(isEnabled);
-  } else {
-    return myWorkshop->mainWindow()->viewer()->enableDrawMode(isEnabled);
-  }
+#ifdef HAVE_SALOME
+  return myWorkshop->salomeConnector()->viewer()->enableDrawMode(isEnabled);
+#else
+  return myWorkshop->mainWindow()->viewer()->enableDrawMode(isEnabled);
+#endif
 }
 
 //***************************************
@@ -326,26 +338,20 @@ bool XGUI_ViewerProxy::canDragByMouse() const
   }
 }
 
-//***************************************
-void XGUI_ViewerProxy::onViewTransformed(AppElements_ViewWindow::OperationType theType)
-{
-  emit viewTransformed((int) theType);
-}
-
 
 //***************************************
 void XGUI_ViewerProxy::Zfitall()
 {
-  if (myWorkshop->isSalomeMode()) {
-    myWorkshop->salomeConnector()->viewer()->Zfitall();
-  } else {
-    AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
-    AppElements_ViewWindow* aView = aViewer->activeViewWindow();
-    if (aView) {
-      Handle(V3d_View) aView3d = aView->v3dView();
-      aView3d->ZFitAll();
-      if (aView3d->Depth() < 0.1)
-        aView3d->DepthFitAll();
-    }
+#ifdef HAVE_SALOME
+  myWorkshop->salomeConnector()->viewer()->Zfitall();
+#else
+  AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
+  AppElements_ViewWindow* aView = aViewer->activeViewWindow();
+  if (aView) {
+    Handle(V3d_View) aView3d = aView->v3dView();
+    aView3d->ZFitAll();
+    if (aView3d->Depth() < 0.1)
+      aView3d->DepthFitAll();
   }
+#endif
 }
\ No newline at end of file
index 7362bbfa46a640f43c20be7719d7efa8b029d9f4..8763be818e45d363214ec7e474ea42b72fc73b93 100644 (file)
@@ -5,7 +5,10 @@
 
 #include "XGUI.h"
 #include <ModuleBase_IViewer.h>
-#include <AppElements_ViewWindow.h>
+
+#ifndef HAVE_SALOME
+  #include <AppElements_ViewWindow.h>
+#endif
 
 class XGUI_Workshop;
 /**
@@ -98,9 +101,11 @@ protected:
   bool eventFilter(QObject *theObject, QEvent *theEvent);
 
 private slots:
+  void onViewCreated(ModuleBase_IViewWindow* theWnd);
+
+#ifndef HAVE_SALOME
   void onTryCloseView(AppElements_ViewWindow*);
   void onDeleteView(AppElements_ViewWindow*);
-  void onViewCreated(ModuleBase_IViewWindow* theWnd);
   void onViewCreated(AppElements_ViewWindow*);
   void onActivated(AppElements_ViewWindow*);
 
@@ -113,6 +118,7 @@ private slots:
   void onKeyRelease(AppElements_ViewWindow*, QKeyEvent*);
 
   void onViewTransformed(AppElements_ViewWindow::OperationType);
+#endif
 
  private:
   XGUI_Workshop* myWorkshop;
index 6a988677a4aeb4ec1eeab0aae96bf587d1b8d188..3af0fc6e30b7b9554c69e7a3a722057ca38ef801 100644 (file)
@@ -23,6 +23,7 @@
 #include <XGUI_HistoryMenu.h>
 #include <XGUI_QtEvents.h>
 
+#ifndef HAVE_SALOME
 #include <AppElements_Button.h>
 #include <AppElements_Command.h>
 #include <AppElements_MainMenu.h>
@@ -30,6 +31,7 @@
 #include <AppElements_MenuGroupPanel.h>
 #include <AppElements_Viewer.h>
 #include <AppElements_Workbench.h>
+#endif
 
 #include <ModelAPI_AttributeDocRef.h>
 #include <ModelAPI_AttributeIntArray.h>
@@ -78,6 +80,7 @@
 #include <QFileDialog>
 #include <QMessageBox>
 #include <QMdiSubWindow>
+#include <QMainWindow>
 #include <QPushButton>
 #include <QDockWidget>
 #include <QLayout>
@@ -112,16 +115,16 @@ XGUI_Workshop::XGUI_Workshop(XGUI_SalomeConnector* theConnector)
       myObjectBrowser(0),
       myDisplayer(0)
 {
-  myMainWindow = mySalomeConnector ? 0 : new AppElements_MainWindow();
+#ifndef HAVE_SALOME
+  myMainWindow = new AppElements_MainWindow();
 
-  if (myMainWindow) {
-    SUIT_ResourceMgr* aResMgr = ModuleBase_Preferences::resourceMgr();
-    bool aCloc = aResMgr->booleanValue("language", "locale", true);
-    if (aCloc)
-      QLocale::setDefault( QLocale::c() );
-    else 
-      QLocale::setDefault( QLocale::system() );
-  }
+  SUIT_ResourceMgr* aResMgr = ModuleBase_Preferences::resourceMgr();
+  bool aCloc = aResMgr->booleanValue("language", "locale", true);
+  if (aCloc)
+    QLocale::setDefault( QLocale::c() );
+  else 
+    QLocale::setDefault( QLocale::system() );
+#endif
 
   myDisplayer = new XGUI_Displayer(this);
 
@@ -160,8 +163,10 @@ XGUI_Workshop::XGUI_Workshop(XGUI_SalomeConnector* theConnector)
   //connect(myOperationMgr, SIGNAL(validationStateChanged(bool)), 
   //        myErrorMgr, SLOT(onValidationStateChanged()));
 
-  if (myMainWindow)
-    connect(myMainWindow, SIGNAL(exitKeySequence()), SLOT(onExit()));
+#ifndef HAVE_SALOME
+  connect(myMainWindow, SIGNAL(exitKeySequence()), SLOT(onExit()));
+#endif
+
   connect(this, SIGNAL(errorOccurred(const QString&)), myErrorDlg, SLOT(addError(const QString&)));
   connect(myEventsListener, SIGNAL(errorOccurred(const QString&)),
           myErrorDlg, SLOT(addError(const QString&)));
@@ -202,10 +207,11 @@ void XGUI_Workshop::startApplication()
   // by Config_PropManger to restore user-defined path to plugins
   ModuleBase_Preferences::loadCustomProps();
   createModule();
-  if (myMainWindow) {
-    myMainWindow->show();
-    updateCommandStatus();
-  }
+
+#ifndef HAVE_SALOME
+  myMainWindow->show();
+  updateCommandStatus();
+#endif
   
   onNew();
 
@@ -253,48 +259,47 @@ void XGUI_Workshop::initMenu()
 {
   myContextMenuMgr->createActions();
 
-  if (isSalomeMode()) {
-    // Create only Undo, Redo commands
-    QAction* aAction = salomeConnector()->addDesktopCommand("UNDO_CMD", tr("Undo"),
-                                                         tr("Undo last command"),
-                                                         QIcon(":pictures/undo.png"),
-                                                         QKeySequence::Undo, false, "MEN_DESK_EDIT");
-    QString aToolBarTitle = tr( "INF_DESK_TOOLBAR_STANDARD" );
-    salomeConnector()->addActionInToolbar( aAction,aToolBarTitle  );
-
-    connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onUndo()));
-    addHistoryMenu(aAction, SIGNAL(updateUndoHistory(const QList<ActionInfo>&)), SLOT(onUndo(int)));
-
-    aAction = salomeConnector()->addDesktopCommand("REDO_CMD", tr("Redo"), tr("Redo last command"),
-                                                QIcon(":pictures/redo.png"), QKeySequence::Redo,
-                                                false, "MEN_DESK_EDIT");
-    salomeConnector()->addActionInToolbar( aAction, aToolBarTitle );
-
-    connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onRedo()));
-    addHistoryMenu(aAction, SIGNAL(updateRedoHistory(const QList<ActionInfo>&)), SLOT(onRedo(int)));
-
-    salomeConnector()->addDesktopMenuSeparator("MEN_DESK_EDIT");
-    aAction = salomeConnector()->addDesktopCommand("REBUILD_CMD", tr("Rebuild"), tr("Rebuild data objects"),
-                                                QIcon(":pictures/rebuild.png"), QKeySequence(),
-                                                false, "MEN_DESK_EDIT");
-    salomeConnector()->addActionInToolbar( aAction, aToolBarTitle );
-
-    connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onRebuild()));
-    salomeConnector()->addDesktopMenuSeparator("MEN_DESK_EDIT");
-
-    aAction = salomeConnector()->addDesktopCommand("SAVEAS_CMD", tr("Export NewGeom..."), tr("Export the current document into a NewGeom file"),
-                                                QIcon(), QKeySequence(),
-                                                false, "MEN_DESK_FILE");
-    connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onSaveAs()));
-
-    aAction = salomeConnector()->addDesktopCommand("OPEN_CMD", tr("Import NewGeom..."), tr("Import a NewGeom file"),
-                                                QIcon(), QKeySequence(),
-                                                false, "MEN_DESK_FILE");
-    connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onOpen()));
-    salomeConnector()->addDesktopMenuSeparator("MEN_DESK_FILE");
+#ifdef HAVE_SALOME
+  // Create only Undo, Redo commands
+  QAction* aAction = salomeConnector()->addDesktopCommand("UNDO_CMD", tr("Undo"),
+                                                        tr("Undo last command"),
+                                                        QIcon(":pictures/undo.png"),
+                                                        QKeySequence::Undo, false, "MEN_DESK_EDIT");
+  QString aToolBarTitle = tr( "INF_DESK_TOOLBAR_STANDARD" );
+  salomeConnector()->addActionInToolbar( aAction,aToolBarTitle  );
+
+  connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onUndo()));
+  addHistoryMenu(aAction, SIGNAL(updateUndoHistory(const QList<ActionInfo>&)), SLOT(onUndo(int)));
+
+  aAction = salomeConnector()->addDesktopCommand("REDO_CMD", tr("Redo"), tr("Redo last command"),
+                                              QIcon(":pictures/redo.png"), QKeySequence::Redo,
+                                              false, "MEN_DESK_EDIT");
+  salomeConnector()->addActionInToolbar( aAction, aToolBarTitle );
+
+  connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onRedo()));
+  addHistoryMenu(aAction, SIGNAL(updateRedoHistory(const QList<ActionInfo>&)), SLOT(onRedo(int)));
+
+  salomeConnector()->addDesktopMenuSeparator("MEN_DESK_EDIT");
+  aAction = salomeConnector()->addDesktopCommand("REBUILD_CMD", tr("Rebuild"), tr("Rebuild data objects"),
+                                              QIcon(":pictures/rebuild.png"), QKeySequence(),
+                                              false, "MEN_DESK_EDIT");
+  salomeConnector()->addActionInToolbar( aAction, aToolBarTitle );
+
+  connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onRebuild()));
+  salomeConnector()->addDesktopMenuSeparator("MEN_DESK_EDIT");
+
+  aAction = salomeConnector()->addDesktopCommand("SAVEAS_CMD", tr("Export NewGeom..."), tr("Export the current document into a NewGeom file"),
+                                              QIcon(), QKeySequence(),
+                                              false, "MEN_DESK_FILE");
+  connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onSaveAs()));
+
+  aAction = salomeConnector()->addDesktopCommand("OPEN_CMD", tr("Import NewGeom..."), tr("Import a NewGeom file"),
+                                              QIcon(), QKeySequence(),
+                                              false, "MEN_DESK_FILE");
+  connect(aAction, SIGNAL(triggered(bool)), this, SLOT(onOpen()));
+  salomeConnector()->addDesktopMenuSeparator("MEN_DESK_FILE");
 
-    return;
-  }
+#else
   // File commands group
   AppElements_MenuGroupPanel* aGroup = myMainWindow->menuObject()->generalPage();
 
@@ -336,10 +341,6 @@ void XGUI_Workshop::initMenu()
                                 QIcon(":pictures/open.png"), QKeySequence::Open);
   aCommand->connectTo(this, SLOT(onOpen()));
 
-  //aCommand = aGroup->addFeature("NEW_CMD", tr("New"), tr("Create a new document"),
-  //                              QIcon(":pictures/new.png"), QKeySequence::New);
-  //aCommand->connectTo(this, SLOT(onNew()));
-
   aCommand = aGroup->addFeature("PREF_CMD", tr("Preferences"), tr("Edit preferences"),
                                 QIcon(":pictures/preferences.png"), QKeySequence::Preferences);
   aCommand->connectTo(this, SLOT(onPreferences()));
@@ -347,25 +348,25 @@ void XGUI_Workshop::initMenu()
   aCommand = aGroup->addFeature("EXIT_CMD", tr("Exit"), tr("Exit application"),
                                 QIcon(":pictures/close.png"), QKeySequence::Close);
   aCommand->connectTo(this, SLOT(onExit()));
-  //FIXME: SBH's test action. Can be used for some GUI tests.
-//  #ifdef _DEBUG
-//    aCommand = aGroup->addFeature("TEST_CMD", "Test!", "Private debug button",
-//                                  QIcon(":pictures/close.png"), QKeySequence(), true);
-//    aCommand->connectTo(myMainWindow, SLOT(dockPythonConsole()));
-//  #endif
+#endif
 }
 
-//******************************************************
+#ifndef HAVE_SALOME
 AppElements_Workbench* XGUI_Workshop::addWorkbench(const QString& theName)
 {
   AppElements_MainMenu* aMenuBar = myMainWindow->menuObject();
   return aMenuBar->addWorkbench(theName);
 }
+#endif
 
 //******************************************************
 QMainWindow* XGUI_Workshop::desktop() const
 {
-  return isSalomeMode() ? salomeConnector()->desktop() : myMainWindow;
+#ifdef HAVE_SALOME
+  return salomeConnector()->desktop();
+#else
+  return myMainWindow;
+#endif
 }
 
 //******************************************************
@@ -423,16 +424,16 @@ bool XGUI_Workshop::isFeatureOfNested(const FeaturePtr& theFeature)
 {
   bool aHasNested = false;
   std::string aFeatureKind = theFeature->getKind();
-  if (isSalomeMode()) {
+#ifdef HAVE_SALOME
     XGUI_SalomeConnector* aSalomeConnector = salomeConnector();
     if (aSalomeConnector->isFeatureOfNested(actionsMgr()->action(aFeatureKind.c_str())))
       aHasNested = true;
-  } else {
+#else 
     AppElements_MainMenu* aMenuBar = mainWindow()->menuObject();
     AppElements_Command* aCommand = aMenuBar->feature(aFeatureKind.c_str());
     if (aCommand && aCommand->button()->additionalButtonWidget())
       aHasNested = true;
-  }
+#endif
   return aHasNested;
 }
 
@@ -623,23 +624,42 @@ bool XGUI_Workshop::abortAllOperations()
 }
 
 //******************************************************
-void XGUI_Workshop::onExit()
+void XGUI_Workshop::onOpen()
 {
-  SessionPtr aMgr = ModelAPI_Session::get();
-  if (aMgr->isModified()) {
+  if(!abortAllOperations())
+    return;
+  //save current file before close if modified
+  SessionPtr aSession = ModelAPI_Session::get();
+  if (aSession->isModified()) {
+    //TODO(sbh): re-launch the app?
     int anAnswer = QMessageBox::question(
-        myMainWindow, tr("Save current file"), tr("The document is modified, save before exit?"),
+        desktop(), tr("Save current file"),
+        tr("The document is modified, save before opening another?"),
         QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Cancel);
     if (anAnswer == QMessageBox::Save) {
-      bool saved = onSave();
-      if (!saved) {
-        return;
-      }
+      onSave();
     } else if (anAnswer == QMessageBox::Cancel) {
       return;
     }
+    myCurrentDir = "";
   }
-  qApp->exit();
+
+  //show file dialog, check if readable and open
+  myCurrentDir = QFileDialog::getExistingDirectory(desktop(), tr("Select directory"));
+  if (myCurrentDir.isEmpty())
+    return;
+  QFileInfo aFileInfo(myCurrentDir);
+  if (!aFileInfo.exists() || !aFileInfo.isReadable()) {
+    QMessageBox::critical(desktop(), tr("Warning"), tr("Unable to open the file."));
+    myCurrentDir = "";
+    return;
+  }
+  QApplication::setOverrideCursor(Qt::WaitCursor);
+  aSession->closeAll();
+  aSession->load(myCurrentDir.toLatin1().constData());
+  myObjectBrowser->rebuildDataTree();
+  updateCommandStatus();
+  QApplication::restoreOverrideCursor();
 }
 
 //******************************************************
@@ -652,54 +672,57 @@ void XGUI_Workshop::onNew()
   }
   myViewerProxy->connectToViewer();
   showObjectBrowser();
-  if (!isSalomeMode()) {
-    myMainWindow->showPythonConsole();
-    QMdiSubWindow* aWnd = myMainWindow->viewer()->createView();
-    aWnd->showMaximized();
-    updateCommandStatus();
-  }
+#ifndef HAVE_SALOME
+  myMainWindow->showPythonConsole();
+  QMdiSubWindow* aWnd = myMainWindow->viewer()->createView();
+  aWnd->showMaximized();
+  updateCommandStatus();
+#endif
   myContextMenuMgr->connectViewer();
   QApplication::restoreOverrideCursor();
 }
 
+#ifndef HAVE_SALOME
 //******************************************************
-void XGUI_Workshop::onOpen()
+void XGUI_Workshop::onExit()
 {
-  if(!abortAllOperations())
-    return;
-  //save current file before close if modified
-  SessionPtr aSession = ModelAPI_Session::get();
-  if (aSession->isModified()) {
-    //TODO(sbh): re-launch the app?
+  SessionPtr aMgr = ModelAPI_Session::get();
+  if (aMgr->isModified()) {
     int anAnswer = QMessageBox::question(
-        myMainWindow, tr("Save current file"),
-        tr("The document is modified, save before opening another?"),
+        myMainWindow, tr("Save current file"), tr("The document is modified, save before exit?"),
         QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Cancel);
     if (anAnswer == QMessageBox::Save) {
-      onSave();
+      bool saved = onSave();
+      if (!saved) {
+        return;
+      }
     } else if (anAnswer == QMessageBox::Cancel) {
       return;
     }
-    myCurrentDir = "";
   }
+  qApp->exit();
+}
 
-  //show file dialog, check if readable and open
-  myCurrentDir = QFileDialog::getExistingDirectory(mainWindow(), tr("Select directory"));
-  if (myCurrentDir.isEmpty())
-    return;
-  QFileInfo aFileInfo(myCurrentDir);
-  if (!aFileInfo.exists() || !aFileInfo.isReadable()) {
-    QMessageBox::critical(myMainWindow, tr("Warning"), tr("Unable to open the file."));
-    myCurrentDir = "";
-    return;
+//******************************************************
+void XGUI_Workshop::onPreferences()
+{
+  ModuleBase_Prefs aModif;
+  ModuleBase_Preferences::editPreferences(aModif);
+  if (aModif.size() > 0) {
+    QString aSection;
+    foreach (ModuleBase_Pref aPref, aModif)
+    {
+      aSection = aPref.first;
+      if (aSection == ModuleBase_Preferences::VIEWER_SECTION) {
+        myMainWindow->viewer()->updateFromResources();
+      } else if (aSection == ModuleBase_Preferences::MENU_SECTION) {
+        myMainWindow->menuObject()->updateFromResources();
+      }
+    }
+    displayer()->redisplayObjects();
   }
-  QApplication::setOverrideCursor(Qt::WaitCursor);
-  aSession->closeAll();
-  aSession->load(myCurrentDir.toLatin1().constData());
-  myObjectBrowser->rebuildDataTree();
-  updateCommandStatus();
-  QApplication::restoreOverrideCursor();
 }
+#endif
 
 //******************************************************
 bool XGUI_Workshop::onSave()
@@ -712,8 +735,9 @@ bool XGUI_Workshop::onSave()
   std::list<std::string> aFiles;
   saveDocument(myCurrentDir, aFiles);
   updateCommandStatus();
-  if (!isSalomeMode())
+#ifndef HAVE_SALOME
     myMainWindow->setModifiedState(false);
+#endif
   return true;
 }
 
@@ -722,7 +746,7 @@ bool XGUI_Workshop::onSaveAs()
 {
   if(!abortAllOperations())
     return false;
-  QFileDialog dialog(mainWindow());
+  QFileDialog dialog(desktop());
   dialog.setWindowTitle(tr("Select directory to save files..."));
   dialog.setFileMode(QFileDialog::Directory);
   dialog.setFilter(tr("Directories (*)"));
@@ -737,7 +761,7 @@ bool XGUI_Workshop::onSaveAs()
   QDir aDir(aTempDir);
   if (aDir.exists() && !aDir.entryInfoList(QDir::NoDotAndDotDot | QDir::AllEntries).isEmpty()) {
     int answer = QMessageBox::question(
-        myMainWindow,
+        desktop(),
         //: Title of the dialog which asks user if he wants to save study in existing non-empty folder
         tr("Save"),
         tr("The directory already contains some files, save anyway?"),
@@ -747,10 +771,10 @@ bool XGUI_Workshop::onSaveAs()
     }
   }
   myCurrentDir = aTempDir;
-  if (!isSalomeMode()) {
+#ifndef HAVE_SALOME
     myMainWindow->setCurrentDir(myCurrentDir, false);
     myMainWindow->setModifiedState(false);
-  }
+#endif
   return onSave();
 }
 
@@ -818,28 +842,6 @@ void XGUI_Workshop::onRebuild()
   updateCommandStatus();
 }
 
-//******************************************************
-void XGUI_Workshop::onPreferences()
-{
-  ModuleBase_Prefs aModif;
-  ModuleBase_Preferences::editPreferences(aModif);
-  if (aModif.size() > 0) {
-    QString aSection;
-    foreach (ModuleBase_Pref aPref, aModif)
-    {
-      aSection = aPref.first;
-      if (aSection == ModuleBase_Preferences::VIEWER_SECTION) {
-        if (!isSalomeMode())
-          myMainWindow->viewer()->updateFromResources();
-      } else if (aSection == ModuleBase_Preferences::MENU_SECTION) {
-        if (!isSalomeMode())
-          myMainWindow->menuObject()->updateFromResources();
-      }
-    }
-    displayer()->redisplayObjects();
-  }
-}
-
 //******************************************************
 ModuleBase_IModule* XGUI_Workshop::loadModule(const QString& theModule)
 {
@@ -890,7 +892,7 @@ ModuleBase_IModule* XGUI_Workshop::loadModule(const QString& theModule)
   ModuleBase_IModule* aModule = crtInst ? crtInst(myModuleConnector) : 0;
 
   if (!err.isEmpty()) {
-    if (mainWindow()) {
+    if (desktop()) {
       Events_Error::send(err.toStdString());
     } else {
       qWarning(qPrintable(err));
@@ -922,13 +924,13 @@ bool XGUI_Workshop::createModule()
 void XGUI_Workshop::updateCommandStatus()
 {
   QList<QAction*> aCommands;
-  if (isSalomeMode()) {  // update commands in SALOME mode
+#ifdef HAVE_SALOME
     aCommands = salomeConnector()->commandList();
-  } else {
+#else
     AppElements_MainMenu* aMenuBar = myMainWindow->menuObject();
     foreach (AppElements_Command* aCmd, aMenuBar->features())
       aCommands.append(aCmd);
-  }
+#endif
   SessionPtr aMgr = ModelAPI_Session::get();
   if (aMgr->hasModuleDocument()) {
     foreach(QAction* aCmd, aCommands) {
@@ -991,7 +993,7 @@ QDockWidget* XGUI_Workshop::createObjectBrowser(QWidget* theParent)
  */
 void XGUI_Workshop::createDockWidgets()
 {
-  QMainWindow* aDesktop = isSalomeMode() ? salomeConnector()->desktop() : myMainWindow;
+  QMainWindow* aDesktop = desktop();
   QDockWidget* aObjDock = createObjectBrowser(aDesktop);
   aDesktop->addDockWidget(Qt::LeftDockWidgetArea, aObjDock);
   myPropertyPanel = new XGUI_PropertyPanel(aDesktop, myOperationMgr);
@@ -1047,7 +1049,7 @@ void XGUI_Workshop::hidePropertyPanel()
   // set the focus on it. As a result, shortcuts of the application, like
   // are processed by this console. For example Undo actions.
   // It is possible that this code is to be moved to NewGeom package
-  QMainWindow* aDesktop = isSalomeMode() ? salomeConnector()->desktop() : myMainWindow;
+  QMainWindow* aDesktop = desktop();
   aDesktop->activateWindow();
   aDesktop->setFocus();
 }
@@ -1123,7 +1125,7 @@ void XGUI_Workshop::deleteObjects()
   // deletion and negative consequences connected with processing of already deleted items
   mySelector->clearSelection();
   // check whether the object can be deleted. There should not be parts which are not loaded
-  if (!XGUI_Tools::canRemoveOrRename(myMainWindow, anObjects))
+  if (!XGUI_Tools::canRemoveOrRename(desktop(), anObjects))
     return;
 
   bool hasResult = false;
@@ -1148,9 +1150,8 @@ void XGUI_Workshop::deleteObjects()
 
   operationMgr()->startOperation(anOpAction);
   // 3. delete objects
-  QMainWindow* aDesktop = isSalomeMode() ? salomeConnector()->desktop() : myMainWindow;
   std::set<FeaturePtr> anIgnoredFeatures;
-  if (deleteFeatures(anObjects, anIgnoredFeatures, aDesktop, true)) {
+  if (deleteFeatures(anObjects, anIgnoredFeatures, desktop(), true)) {
     operationMgr()->commitOperation();
   }
   else {
@@ -1175,7 +1176,7 @@ void XGUI_Workshop::moveObjects()
   // moving and negative consequences connected with processing of already moved items
   mySelector->clearSelection();
   // check whether the object can be moved. There should not be parts which are not loaded
-  if (!XGUI_Tools::canRemoveOrRename(myMainWindow, anObjects))
+  if (!XGUI_Tools::canRemoveOrRename(desktop(), anObjects))
     return;
 
   DocumentPtr anActiveDocument = aMgr->activeDocument();
@@ -1533,7 +1534,7 @@ void XGUI_Workshop::changeColor(const QObjectPtrList& theObjects)
   if (!abortAllOperations())
   return; 
   // 2. show the dialog to change the value
-  XGUI_ColorDialog* aDlg = new XGUI_ColorDialog(mainWindow());
+  XGUI_ColorDialog* aDlg = new XGUI_ColorDialog(desktop());
   aDlg->setColor(aColor);
   aDlg->move(QCursor::pos());
   bool isDone = aDlg->exec() == QDialog::Accepted;
index 628e721ce5bcd756319cc8ce474801f882d82226..5d03eefe5eaaf875deda18ab7b180f2218a1d4c9 100644 (file)
 #include <QKeySequence>
 #include <QIcon>
 
+#ifndef HAVE_SALOME
 class AppElements_MainWindow;
 class AppElements_Command;
 class AppElements_Workbench;
+#endif
 
 class XGUI_ActionsMgr;
 class XGUI_ContextMenuMgr;
@@ -68,12 +70,17 @@ Q_OBJECT
   /// Deactivates the module controls. Should be called after module creation
   void deactivateModule();
 
+#ifndef HAVE_SALOME
   //! Returns main window (Desktop) of the application
   AppElements_MainWindow* mainWindow() const
   {
     return myMainWindow;
   }
 
+  //! Creates and adds a new workbench (menu group) with the given name and returns it
+  AppElements_Workbench* addWorkbench(const QString& theName);
+#endif
+
   //! Returns selection manager object
   XGUI_SelectionMgr* selector() const
   {
@@ -116,9 +123,6 @@ Q_OBJECT
     return myContextMenuMgr;
   }
 
-  //! Creates and adds a new workbench (menu group) with the given name and returns it
-  AppElements_Workbench* addWorkbench(const QString& theName);
-
   //! Returns an object which provides interface to Salome Module (LightApp_Module)
   XGUI_SalomeConnector* salomeConnector() const
   {
@@ -280,21 +284,12 @@ signals:
   /// update history list (undo/redo commands)
   void updateHistory();
 
-  /// Create a new document
-  void onNew();
-
-  /// Open document from file
-  void onOpen();
-
   /// Save current document
   bool onSave();
 
   /// Save current document to a file selected by user
   bool onSaveAs();
 
-  /// Exit application
-  void onExit();
-
   /// Undo last command
   void onUndo(int times = 1);
 
@@ -304,9 +299,6 @@ signals:
   /// Rebuild data tree
   void onRebuild();
 
-  /// Open preferences dialog box
-  void onPreferences();
-
   /// Show property panel
   void showPropertyPanel();
 
@@ -322,6 +314,20 @@ signals:
   /// Close document
   void closeDocument();
 
+  /// Open document from file
+  void onOpen();
+
+  /// Create a new document
+  void onNew();
+
+#ifndef HAVE_SALOME
+  /// Exit application
+  void onExit();
+
+  /// Open preferences dialog box
+  void onPreferences();
+#endif
+
  protected:
   /// Sets the granted operations for the parameter operation. Firstly, it finds the nested features
   /// and set them into the operation. Secondly, it asks the module about ids of granted operations.
@@ -425,7 +431,10 @@ private:
   QList<ActionInfo> processHistoryList(const std::list<std::string>&) const;
 
 private:
+#ifndef HAVE_SALOME
   AppElements_MainWindow* myMainWindow;
+#endif
+
   ModuleBase_IModule* myModule;
   XGUI_ErrorMgr* myErrorMgr;
   XGUI_ObjectsBrowser* myObjectBrowser;
index e5c95c78bf7e68c333f712e5e051cf2ed7c341ee..8b658c9975d5fa5734464b6af085aaa48f73e736 100755 (executable)
 #include "XGUI_ModuleConnector.h"
 #include "XGUI_QtEvents.h"
 
+#ifndef HAVE_SALOME
 #include <AppElements_Workbench.h>
 #include <AppElements_Command.h>
 #include <AppElements_MainMenu.h>
 #include <AppElements_MainWindow.h>
 #include <AppElements_MenuGroupPanel.h>
 #include <AppElements_Button.h>
+#endif
 
 #include <ModuleBase_IModule.h>
 
@@ -218,12 +220,12 @@ void XGUI_WorkshopListener::processEvent(const std::shared_ptr<Events_Message>&
     }
     return;
   }
-  if (!workshop()->isSalomeMode()) {
+#ifndef HAVE_SALOME
     SessionPtr aMgr = ModelAPI_Session::get();
     AppElements_MainWindow* aMainWindow = workshop()->mainWindow();
     if (aMgr->isModified() != aMainWindow->isModifiedState())
       aMainWindow->setModifiedState(aMgr->isModified());
-  }
+#endif
 }
 
 //******************************************************
@@ -498,52 +500,52 @@ void XGUI_WorkshopListener::addFeature(const std::shared_ptr<Config_FeatureMessa
     }
   }
 
-  if (aWorkshop->isSalomeMode()) {
-    XGUI_SalomeConnector* aSalomeConnector = aWorkshop->salomeConnector();
-    QAction* aAction;
-    if (isColumnButton) {
-      aAction = aSalomeConnector->addFeatureOfNested(aWchName, aFeatureInfo, aNestedActList);
-    } else {
-      //Issue #650: in the SALOME mode the tooltip should be same as text
-      aFeatureInfo.toolTip = aFeatureInfo.text;
-      aAction = aSalomeConnector->addFeature(aWchName, aFeatureInfo);
-    }
-    aSalomeConnector->setNestedActions(aFeatureInfo.id, aNestedFeatures);
-    aSalomeConnector->setDocumentKind(aFeatureInfo.id, aDocKind);
-
-    aWorkshop->actionsMgr()->addCommand(aAction);
-    aWorkshop->module()->actionCreated(aAction);
+#ifdef HAVE_SALOME
+  XGUI_SalomeConnector* aSalomeConnector = aWorkshop->salomeConnector();
+  QAction* aAction;
+  if (isColumnButton) {
+    aAction = aSalomeConnector->addFeatureOfNested(aWchName, aFeatureInfo, aNestedActList);
   } else {
-    //Find or create Workbench
-    AppElements_MainMenu* aMenuBar = aWorkshop->mainWindow()->menuObject();
-    AppElements_Workbench* aPage = aMenuBar->findWorkbench(aWchName);
-    if (!aPage) {
-      aPage = aWorkshop->addWorkbench(aWchName);
-    }
-    //Find or create Group
-    QString aGroupName = QString::fromStdString(theMessage->groupId());
-    AppElements_MenuGroupPanel* aGroup = aPage->findGroup(aGroupName);
-    if (!aGroup) {
-      aGroup = aPage->addGroup(aGroupName);
-    }
-    // Check if hotkey sequence is already defined:
-    XGUI_ActionsMgr* anActionsMgr = aWorkshop->actionsMgr();
-    QKeySequence aHotKey = anActionsMgr->registerShortcut(aFeatureInfo.shortcut);
-    if(aHotKey != aFeatureInfo.shortcut) {
-      aFeatureInfo.shortcut = aHotKey;
-    }
-    // Create feature...
-    AppElements_Command* aCommand = aGroup->addFeature(aFeatureInfo,
-                                                       aDocKind,
-                                                       aNestedFeatures);
-    // Enrich created button with accept/abort buttons if necessary
-    AppElements_Button* aButton = aCommand->button();
-    if (aButton->isColumnButton()) {
-      aButton->setAdditionalButtons(aNestedActList);
-    }
-    aWorkshop->actionsMgr()->addCommand(aCommand);
-    aWorkshop->module()->actionCreated(aCommand);
+    //Issue #650: in the SALOME mode the tooltip should be same as text
+    aFeatureInfo.toolTip = aFeatureInfo.text;
+    aAction = aSalomeConnector->addFeature(aWchName, aFeatureInfo);
   }
+  aSalomeConnector->setNestedActions(aFeatureInfo.id, aNestedFeatures);
+  aSalomeConnector->setDocumentKind(aFeatureInfo.id, aDocKind);
+
+  aWorkshop->actionsMgr()->addCommand(aAction);
+  aWorkshop->module()->actionCreated(aAction);
+#else 
+  //Find or create Workbench
+  AppElements_MainMenu* aMenuBar = aWorkshop->mainWindow()->menuObject();
+  AppElements_Workbench* aPage = aMenuBar->findWorkbench(aWchName);
+  if (!aPage) {
+    aPage = aWorkshop->addWorkbench(aWchName);
+  }
+  //Find or create Group
+  QString aGroupName = QString::fromStdString(theMessage->groupId());
+  AppElements_MenuGroupPanel* aGroup = aPage->findGroup(aGroupName);
+  if (!aGroup) {
+    aGroup = aPage->addGroup(aGroupName);
+  }
+  // Check if hotkey sequence is already defined:
+  XGUI_ActionsMgr* anActionsMgr = aWorkshop->actionsMgr();
+  QKeySequence aHotKey = anActionsMgr->registerShortcut(aFeatureInfo.shortcut);
+  if(aHotKey != aFeatureInfo.shortcut) {
+    aFeatureInfo.shortcut = aHotKey;
+  }
+  // Create feature...
+  AppElements_Command* aCommand = aGroup->addFeature(aFeatureInfo,
+                                                      aDocKind,
+                                                      aNestedFeatures);
+  // Enrich created button with accept/abort buttons if necessary
+  AppElements_Button* aButton = aCommand->button();
+  if (aButton->isColumnButton()) {
+    aButton->setAdditionalButtons(aNestedActList);
+  }
+  aWorkshop->actionsMgr()->addCommand(aCommand);
+  aWorkshop->module()->actionCreated(aCommand);
+#endif
 }