Salome HOME
Windows compatibility.
[modules/gui.git] / src / LightApp / LightApp_Application.h
index 20ec3d6d1396fa071ca18ea0b968025c398e23e0..92654622873d8cb04626f4c85317dbe4d863fd89 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -33,6 +33,7 @@
 
 #include "LightApp.h"
 #include <SUIT_TreeModel.h>
+#include <SUIT_DataObject.h>
 #include <CAM_Application.h>
 
 #include <QPointer>
@@ -41,6 +42,7 @@
 class LogWindow;
 #ifndef DISABLE_PYCONSOLE
 class PyConsole_Console;
+class PyConsole_Interp;
 #endif
 class LightApp_WidgetContainer;
 class LightApp_Preferences;
@@ -50,6 +52,7 @@ class LightApp_DataObject;
 class SUIT_DataBrowser;
 class SUIT_Study;
 class SUIT_Accel;
+class SUIT_ViewModel;
 class CAM_Module;
 
 class QString;
@@ -85,7 +88,7 @@ public:
          CloseId, CloseAllId, GroupAllId,
          PreferencesId, MRUId, ModulesListId,
          NewGLViewId, NewPlot2dId, NewOCCViewId, NewVTKViewId,
-         NewQxSceneViewId, StyleId, FullScreenId,
+         NewQxSceneViewId, NewGraphicsViewId, NewPVViewId, NewPyViewerId, StyleId, FullScreenId,
          UserID };
 
 protected:
@@ -130,6 +133,7 @@ public:
   virtual void                        removeViewManager( SUIT_ViewManager* );
   virtual SUIT_ViewManager*           createViewManager( const QString& vmType );
   virtual SUIT_ViewManager*           createViewManager( const QString& vmType, QWidget* w );
+  virtual SUIT_ViewManager*           createViewManager( SUIT_ViewModel* );
 
   QWidget*                            getWindow( const int, const int = -1 );
   QWidget*                            dockWindow( const int ) const;
@@ -138,6 +142,7 @@ public:
   void                                placeDockWindow( const int, Qt::DockWidgetArea );
 
   virtual void                        start();
+  virtual void                        closeApplication();
 
   virtual void                        contextMenuPopup( const QString&, QMenu*, QString& );
 
@@ -172,22 +177,37 @@ public:
   virtual bool                        renameAllowed( const QString& ) const;
   virtual bool                        renameObject( const QString&, const QString& );
 
+  void                                emitOperationFinished( const QString&, const QString&, const QStringList& );
+
+  void                                updateVisibilityState( DataObjectList& theList,
+                                                             SUIT_ViewModel* theViewModel );  
+
+  virtual bool                        checkExistingDoc();
+
+#ifndef DISABLE_PYCONSOLE
+  PyConsole_Interp*                   getPyInterp();
+#endif
+
 signals:
   void                                studyOpened();
   void                                studySaved();
   void                                studyClosed();
   void                                preferenceChanged( const QString&, const QString&, const QString& );
+  void                                preferenceResetToDefaults();
+  void                                operationFinished( const QString&, const QString&, const QStringList& );
 
 public slots:
   virtual void                        onHelpContentsModule();
   virtual void                        onHelpContextModule( const QString&, const QString&, const QString& = QString() );
   virtual void                        onNewDoc();
   virtual void                        onOpenDoc();
+
   virtual void                        onHelpAbout();
   virtual bool                        onOpenDoc( const QString& );
   virtual void                        onCopy();
   virtual void                        onPaste();
   virtual void                        onSelectionChanged();
+  virtual void                        onDockWindowVisibilityChanged( bool );
 
 protected:
   virtual void                        createActions();
@@ -218,17 +238,23 @@ protected:
   virtual QMap<int, QString>          activateModuleActions() const;
   virtual void                        moduleActionSelected( const int );
 
+#ifndef DISABLE_PYCONSOLE
+  virtual PyConsole_Interp*           createPyInterp();
+#endif
+
 protected slots:
   virtual void                        onDesktopActivated();
+  virtual void                        onViewManagerRemoved( SUIT_ViewManager* );
+  virtual void                        onWindowActivated( SUIT_ViewWindow* theViewWindow );
 
   void                                onNewWindow();
   void                                onModuleActivation( const QString& );
   void                                onCloseView( SUIT_ViewManager* );
 
-  void                                onStudyCreated( SUIT_Study* );
-  void                                onStudyOpened( SUIT_Study* );
-  void                                onStudySaved( SUIT_Study* );
-  void                                onStudyClosed( SUIT_Study* );
+  virtual void                        onStudyCreated( SUIT_Study* );
+  virtual void                        onStudyOpened( SUIT_Study* );
+  virtual void                        onStudySaved( SUIT_Study* );
+  virtual void                        onStudyClosed( SUIT_Study* );
 
   void                                onWCDestroyed( QObject* );
 
@@ -249,6 +275,8 @@ private slots:
   void                                onCloseWindow();
   void                                onCloseAllWindow();
   void                                onGroupAllWindow();
+  void                                onRenamed();
+  //void                                onMoved();
 
 protected:
   void                                updateWindows();
@@ -283,6 +311,13 @@ protected:
 
 private:
   void                                emptyPreferences( const QString& );
+  QList<QToolBar*>                    findToolBars( const QStringList& names = QStringList() );
+  
+  QByteArray                          processState(QByteArray& input, 
+                                                  const bool processWin,
+                                                  const bool processTb,
+                                                  const bool isRestoring,
+                                                  QByteArray defaultState = QByteArray());
 
 protected:
   typedef QPointer<QWidget>         WinPtr;
@@ -300,7 +335,6 @@ protected:
 
   WinMap                              myWin;
   WinVis                              myWinVis;
-  WinGeom                             myWinGeom;
 
   SUIT_Accel*                         myAccel;
   QTimer*                             myAutoSaveTimer;