Salome HOME
Updated copyright comment
[modules/gui.git] / src / SalomeApp / SalomeApp_Application.h
index 88f577dcc0c6d4cdb4b9e166152b8c5792c79191..bd5c92019ac8ef23169399c01734e4a49ccca812 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -34,8 +34,6 @@
 #include "SalomeApp.h"
 #include <LightApp_Application.h>
 
-#include <SUIT_DataObject.h>
-
 #include <omniORB4/CORBA.h>
 
 //#include <SALOMEconfig.h>
 
 #include <QPointer>
 
+#include <memory>
+
 class LightApp_Preferences;
 class SalomeApp_Study;
 #ifndef DISABLE_PYCONSOLE
-  class SalomeApp_NoteBook;
+class SalomeApp_NoteBook;
 #endif
 class SUIT_Desktop;
-
-class SUIT_ViewModel;
 class SALOME_LifeCycleCORBA;
 
 
@@ -66,42 +64,42 @@ class SALOME_LifeCycleCORBA;
   \brief Application containing SalomeApp module or LightApp module
 */
 
-class SALOMEAPP_EXPORT SalomeApp_Application : public LightApp_Application
+class SALOMEAPPIMPL_EXPORT SalomeApp_Application : public LightApp_Application
 {
   Q_OBJECT
 
 public:
   enum { MenuToolsId = 5 };
   enum { DumpStudyId = LightApp_Application::UserID, LoadScriptId, PropertiesId,
-         CatalogGenId, RegDisplayId, SaveGUIStateId, FileLoadId, UserID,
-         SimanCheckInId, SimanLocalCheckInId };
+         CatalogGenId, RegDisplayId, SaveGUIStateId, ConnectId, DisconnectId,
+         UserID };
 
-  typedef enum { WT_NoteBook = LightApp_Application::WT_User } WindowTypes;
+  typedef enum { WT_NoteBook = LightApp_Application::WT_User,
+                 WT_User
+               } WindowTypes;
 
 protected:
   enum { OpenRefresh = LightApp_Application::OpenReload + 1 };
-  enum { CloseUnload = LightApp_Application::CloseDiscard + 1 };
+  enum { CloseDisconnectSave = LightApp_Application::CloseDiscard + 1, CloseDisconnect };
   enum { LoadStudyId = LightApp_Application::OpenStudyId + 1, NewAndScriptId };
 
 public:
-  SalomeApp_Application();
+  SalomeApp_Application(SALOME_NamingService_Abstract *ns = nullptr);
   virtual ~SalomeApp_Application();
 
   virtual void                        updateObjectBrowser( const bool = true );
 
-  virtual QString                     getFileFilter() const;
-
   virtual void                        start();
 
   virtual void                        contextMenuPopup( const QString&, QMenu*, QString& );
 
   virtual bool                        checkDataObject(LightApp_DataObject* theObj);
 
-  virtual void                        setDesktop( SUIT_Desktop* );
+  virtual bool                        checkExistingDoc();
 
   static CORBA::ORB_var               orb();
-  static SALOMEDSClient_StudyManager* studyMgr();
-  static SALOME_NamingService*        namingService();
+  static _PTR(Study)                  getStudy();
+  static SALOME_NamingService_Abstract* namingService();
   static SALOME_LifeCycleCORBA*       lcc();
 
   SUIT_ViewManager*                   newViewManager(const QString&);
@@ -111,26 +109,25 @@ public:
 
   virtual bool                        useStudy( const QString& );
   virtual void                        updateDesktopTitle();
-  virtual void                        currentWindows( QMap<int, int>& ) const;
 
 #ifndef DISABLE_PYCONSOLE
   virtual void                        setNoteBook(SalomeApp_NoteBook* theNoteBook);
   virtual SalomeApp_NoteBook*         getNoteBook() const;
 #endif
 
- //! update visibility state of objects
-  void                                updateVisibilityState( DataObjectList& theList,
-                                                             SUIT_ViewModel* theViewModel );  
-
   virtual bool                        renameAllowed( const QString& ) const;
   virtual bool                        renameObject( const QString&, const QString& );
-  
+
 public slots:
+  virtual void                        onNewDoc();
   virtual void                        onLoadDoc();
   virtual void                        onNewWithScript();
   virtual bool                        onLoadDoc( const QString& );
+  virtual void                        onUnloadDoc( bool ask = true);
   virtual void                        onCloseDoc( bool ask = true);
-  virtual void                        onLoadDocMessage(const QString&);
+  virtual void                        onOpenDoc();
+  virtual bool                        onOpenDoc( const QString& );
+  virtual bool                        onReopenDoc();
 
   virtual void                        onExit();
   virtual void                        onCopy();
@@ -143,16 +140,14 @@ public slots:
                                                       const QString& theStudyName,
                                                       bool theIsStudySaved );
 
-  virtual void                        onCheckIn();
-  virtual void                        onLocalCheckIn();
+  virtual void                        onDockWindowVisibilityChanged( bool );
 
 protected slots:
   void                                onStudyCreated( SUIT_Study* );
-  void                                onStudySaved( SUIT_Study* );
   void                                onStudyOpened( SUIT_Study* );
-  void                                onStudyClosed( SUIT_Study* );
-  
-  void                                onViewManagerRemoved( SUIT_ViewManager* );
+  void                                onDesktopMessage( const QString& );
+
+  virtual void                        onModuleActivation( const QString& );
 
 protected:
   virtual void                        createActions();
@@ -173,16 +168,18 @@ protected:
   virtual QMap<int, QString>          activateModuleActions() const;
   virtual void                        moduleActionSelected( const int );
 
-  virtual void                        defaultWindows( QMap<int, int>& ) const;
-
   void                                objectBrowserColumnsVisibility();
 
 #ifndef DISABLE_PYCONSOLE
   bool                                updateStudy();
+  virtual PyConsole_Interp*           createPyInterp();
 #endif
 
+  virtual bool                        canOpenDoc( const QString& );
   virtual void                        afterCloseDoc();
 
+  virtual void                        addCatalogue( const QString&, const QString& );
+
 private slots:
   void                                onDeleteInvalidReferences();
   void                                onDblClick( SUIT_DataObject* );
@@ -198,24 +195,27 @@ private slots:
   void                                onOpenWith();
   void                                onExtAction();
 
-  void                                onWindowActivated( SUIT_ViewWindow* theViewWindow );
-
 private:
   void                                createExtraActions();
+  void                                ensureShaperIsActivated();
 
 private:
 #ifndef DISABLE_PYCONSOLE
-  QPointer<SalomeApp_NoteBook>        myNoteBook;
+  QPointer<SalomeApp_NoteBook>        myNoteBook;        // Notebook instance
 #endif
-  QMap<QString, QAction*>             myExtActions; // Map <AttributeUserID, QAction>
-  bool                                myIsSiman; // application corresponds to the siman study flag
+  QMap<QString, QAction*>             myExtActions;      // Map <AttributeUserID, QAction>
+  bool                                myIsCloseFromExit; // "Close from Exit" flag
+
+  bool                                myToIgnoreMessages;// to ignore messages from SALOMEDS
 
 signals:
-  void                                dumpedStudyClosed( const QString& theDumpScript, 
-                                                         const QString& theStudyName, 
+  void                                dumpedStudyClosed( const QString& theDumpScript,
+                                                         const QString& theStudyName,
                                                          bool theIsStudySaved );
   void                                notebookVarUpdated( QString theVarName );
-
+  void                                objectDoubleClicked( SUIT_DataObject* );
+protected:
+  static std::unique_ptr<SALOME_NamingService_Abstract> _ns;
 };
 
 #ifdef WIN32