Salome HOME
Merge branch 'V8_3_BR' into V8_4_BR
[modules/gui.git] / src / SUIT / SUIT_Session.cxx
index 8848a2c868d24a35207f8ea42bc3413163d38442..e10fe4d75a7689b72dbf5988598a132de6e80fab 100755 (executable)
@@ -1,24 +1,25 @@
-//  Copyright (C) 2007-2008  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
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  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.
+// 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, 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
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 #include "SUIT_Session.h"
 
 #include "SUIT_Study.h"
@@ -52,6 +53,22 @@ SUIT_Session::SUIT_Session()
   mySession = this;
 }
 
+SUIT_Session::SUIT_Session( int argc, char** argv )
+: QObject(),
+  myResMgr( 0 ),
+  myActiveApp( 0 ),
+  myHandler( 0 ),
+  myExitStatus( NORMAL ),
+  myExitFlags ( 0 )
+{
+  SUIT_ASSERT( !mySession )
+
+  mySession = this;
+
+  for ( int i = 0; i < argc; i++ )
+    myArguments << QString( argv[i] );
+}
+
 /*!destructor. Clear applications list and set mySession to zero.*/
 SUIT_Session::~SUIT_Session()
 {
@@ -68,6 +85,17 @@ SUIT_Session::~SUIT_Session()
   mySession = 0;
 }
 
+/*!
+  Get arguments of the current session
+ */
+QStringList SUIT_Session::arguments()
+{
+  QStringList r;
+  if ( !myArguments.isEmpty() ) r = myArguments;
+  else if ( QApplication::instance() ) r = QApplication::arguments();
+  return r;
+}
+
 /*! \retval return mySession */
 SUIT_Session* SUIT_Session::session()
 {
@@ -173,7 +201,7 @@ void SUIT_Session::insertApplication( SUIT_Application* app )
   connect( app, SIGNAL( applicationClosed( SUIT_Application* ) ),
            this, SLOT( onApplicationClosed( SUIT_Application* ) ) );
   connect( app, SIGNAL( activated( SUIT_Application* ) ), 
-                this, SLOT( onApplicationActivated( SUIT_Application* ) ) );
+                 this, SLOT( onApplicationActivated( SUIT_Application* ) ) );
 }
 
 /*!
@@ -254,7 +282,7 @@ void SUIT_Session::closeSession( int mode, int flags )
     {
       SUIT_Study* study = app->activeStudy();
       if ( study->isModified() && study->isSaved() )
-             study->saveDocument();
+              study->saveDocument();
     }
     else if ( mode == DONT_SAVE )
     {