]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Optional flags added in view manager. V5_1_20
authorstv <stv@opencascade.com>
Wed, 1 Feb 2012 11:17:13 +0000 (11:17 +0000)
committerstv <stv@opencascade.com>
Wed, 1 Feb 2012 11:17:13 +0000 (11:17 +0000)
src/SUIT/SUIT_ViewManager.cxx
src/SUIT/SUIT_ViewManager.h

index dc4d518e25774bb27f26e5089dd30922c412ec47..c171f522c2d88431c7fc70b0a736d844b35fd70d 100755 (executable)
@@ -44,7 +44,8 @@ SUIT_ViewManager::SUIT_ViewManager( SUIT_Study* theStudy,
 : QObject( 0 ),
 myDesktop( theDesktop ),
 myTitle( "Default: %M - viewer %V" ),
-myStudy( NULL )
+myStudy( NULL ),
+myFlags( None )
 {
   myViewModel = 0;
   myActiveView = 0;
@@ -140,7 +141,7 @@ QString SUIT_ViewManager::prepareTitle( const QString& title, const int mId, con
 /*! Creates View, adds it into list of views and returns just created view window*/
 SUIT_ViewWindow* SUIT_ViewManager::createViewWindow()
 {
-  SUIT_ViewWindow* aView = myViewModel->createView(myDesktop);
+  SUIT_ViewWindow* aView = myViewModel->createView( myDesktop );
 
   if ( !insertView( aView ) ){
     delete aView;
@@ -151,21 +152,36 @@ SUIT_ViewWindow* SUIT_ViewManager::createViewWindow()
   aView->setWindowIcon( QIcon( myIcon ) );
   aView->setViewManager( this );
 
-  myDesktop->addWindow( aView );
+  bool extView = myFlags & ExternalViews;
+
+  if ( myDesktop && !extView )
+    myDesktop->addWindow( aView );
   //it is done automatically during creation of view
 
   emit viewCreated( aView );
 
+  if ( myDesktop && !extView )
+    aView->show();
+
   // Special treatment for the case when <aView> is the first one in this view manager
   // -> call onWindowActivated() directly, because somebody may always want
   // to use getActiveView()
-  aView->show();
   if ( !myActiveView )
     onWindowActivated( aView );
 
   return aView;
 }
 
+int SUIT_ViewManager::flags() const
+{
+  return myFlags;
+}
+
+void SUIT_ViewManager::setFlags( int f )
+{
+  myFlags = f;
+}
+
 /*! Get identifier */
 int SUIT_ViewManager::getId() const
 {
index 220c824f59bf6808733952a3d8cfd5b7d80de40c..a9ab7a49646f866a123255e3510278e0cbfb9578 100755 (executable)
@@ -45,6 +45,11 @@ class SUIT_ViewWindow;
 class SUIT_EXPORT SUIT_ViewManager : public QObject, public SUIT_PopupClient
 {
   Q_OBJECT
+
+public:
+  enum { None          = 0x000000,
+         ExternalViews = 0x000001 };
+
 public:
   SUIT_ViewManager( SUIT_Study*,
                     SUIT_Desktop*,
@@ -77,6 +82,9 @@ public:
   virtual void     setShown( const bool );
   virtual void     setDestructiveClose( const bool );
 
+  int              flags() const;
+  void             setFlags( int );
+
   int              getId() const;
 
 public slots:
@@ -137,6 +145,8 @@ protected:
   QString                     myTitle;
   SUIT_Study*                 myStudy;
 
+  int                         myFlags;
+
   static QMap<QString, int>   _ViewMgrId;
 };