X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSalomeApp%2FSalomeApp_Application.h;h=e58dd883b77226269959af85e3815a7024fb1852;hb=e1ce73d5be167bde706ee8af330ceb3fc952a2e4;hp=88f577dcc0c6d4cdb4b9e166152b8c5792c79191;hpb=6878ef4d7381638ec39d1ca9d03afc21a69401aa;p=modules%2Fgui.git diff --git a/src/SalomeApp/SalomeApp_Application.h b/src/SalomeApp/SalomeApp_Application.h index 88f577dcc..e58dd883b 100644 --- a/src/SalomeApp/SalomeApp_Application.h +++ b/src/SalomeApp/SalomeApp_Application.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2023 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 -#include - #include //#include @@ -46,14 +44,14 @@ #include +#include + 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& ) 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 activateModuleActions() const; virtual void moduleActionSelected( const int ); - virtual void defaultWindows( QMap& ) 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,30 @@ private slots: void onOpenWith(); void onExtAction(); - void onWindowActivated( SUIT_ViewWindow* theViewWindow ); - private: void createExtraActions(); + void ensureShaperIsActivated(); + + QString getScriptFileName(); + void execScript(bool isNewDoc); private: #ifndef DISABLE_PYCONSOLE - QPointer myNoteBook; + QPointer myNoteBook; // Notebook instance #endif - QMap myExtActions; // Map - bool myIsSiman; // application corresponds to the siman study flag + QMap myExtActions; // Map + 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 _ns; }; #ifdef WIN32