-// 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
#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;
\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&);
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();
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();
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* );
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