]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Porting to Qt4
authorvsr <vsr@opencascade.com>
Mon, 14 May 2007 14:59:32 +0000 (14:59 +0000)
committervsr <vsr@opencascade.com>
Mon, 14 May 2007 14:59:32 +0000 (14:59 +0000)
12 files changed:
src/SUIT/SUIT_SelectionMgr.cxx
src/SUIT/SUIT_SelectionMgr.h
src/SUIT/SUIT_Selector.cxx
src/SUIT/SUIT_Selector.h
src/SUIT/SUIT_Session.cxx
src/SUIT/SUIT_Session.h
src/SUIT/SUIT_Study.cxx
src/SUIT/SUIT_Study.h
src/SUIT/SUIT_ToolButton.cxx
src/SUIT/SUIT_ToolButton.h
src/SUIT/SUIT_Tools.cxx
src/SUIT/SUIT_Tools.h

index 895486f218845f6ea34312b65a5cafa33d72a2af..21d02eadc40a5db1d68385342c39615226c656c8 100755 (executable)
@@ -18,6 +18,9 @@
 //
 #include "SUIT_SelectionMgr.h"
 
+#include "SUIT_Selector.h"
+#include "SUIT_SelectionFilter.h"
+
 /*!\class SUIT_SelectionMgr
  * Provide selection manager. Manipulate by selection filters, modes, data owners.
  */
@@ -26,6 +29,7 @@
 SUIT_SelectionMgr::SUIT_SelectionMgr( const bool Feedback, QObject* p )
 : QObject( p ),
 myIterations( Feedback ? 1 : 0 ),
+myAutoDelFilter( false ),
 myIsSelChangeEnabled( true )
 {
 }
@@ -33,7 +37,8 @@ myIsSelChangeEnabled( true )
 /*!destructor. mySelectors auto delete.*/
 SUIT_SelectionMgr::~SUIT_SelectionMgr()
 {
-  mySelectors.setAutoDelete( true );
+  for ( SelectorList::iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
+    delete *it;
 }
 
 /*!Add selector \a sel to selectors list,if it's not exists in list.*/
@@ -46,25 +51,25 @@ void SUIT_SelectionMgr::installSelector( SUIT_Selector* sel )
 /*!Remove selector \a sel from list.*/
 void SUIT_SelectionMgr::removeSelector( SUIT_Selector* sel )
 {
-  mySelectors.remove( sel );
+  mySelectors.removeAll( sel );
 }
 
 /*!Gets selectors list to \a lst.*/
-void SUIT_SelectionMgr::selectors( QPtrList<SUIT_Selector>& lst ) const
+void SUIT_SelectionMgr::selectors( QList<SUIT_Selector*>& lst ) const
 {
   lst.clear();
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
-    lst.append( it.current() );
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
+    lst.append( *it );
 }
 
 /*!Gets selectors list to \a lst with type \a typ.*/
-void SUIT_SelectionMgr::selectors( const QString& typ, QPtrList<SUIT_Selector>& lst ) const
+void SUIT_SelectionMgr::selectors( const QString& typ, QList<SUIT_Selector*>& lst ) const
 {
   lst.clear();
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
-    if ( it.current()->type() == typ )
-      lst.append( it.current() );
+    if ( (*it)->type() == typ )
+      lst.append( *it );
   }
 }
 
@@ -72,10 +77,10 @@ void SUIT_SelectionMgr::selectors( const QString& typ, QPtrList<SUIT_Selector>&
 */
 void SUIT_SelectionMgr::setEnabled( const bool on, const QString& typ )
 {
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
-    if ( typ.isEmpty() || it.current()->type() == typ )
-      it.current()->setEnabled( on );
+    if ( typ.isEmpty() || (*it)->type() == typ )
+      (*it)->setEnabled( on );
   }
 }
 
@@ -85,12 +90,13 @@ void SUIT_SelectionMgr::selected( SUIT_DataOwnerPtrList& lst, const QString& typ
 {
   lst.clear();
 
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
-    if ( !type.isEmpty() && it.current()->type() != type )
+    if ( !type.isEmpty() && (*it)->type() != type )
       continue;
+
     SUIT_DataOwnerPtrList curList;
-    it.current()->selected( curList );
+    (*it)->selected( curList );
     for ( SUIT_DataOwnerPtrList::const_iterator itr = curList.begin(); itr != curList.end(); ++itr )
       lst.append( *itr );
   }
@@ -103,16 +109,16 @@ void SUIT_SelectionMgr::setSelected( const SUIT_DataOwnerPtrList& lst, const boo
   SUIT_DataOwnerPtrList owners;
   filterOwners( lst, owners );
 
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
     if ( append )
     {
       SUIT_DataOwnerPtrList current;
-      it.current()->selected( current );
+      (*it)->selected( current );
       for ( SUIT_DataOwnerPtrList::const_iterator it = current.begin(); it != current.end(); ++it )
         owners.append( *it );
     }
-    it.current()->setSelected( owners );
+    (*it)->setSelected( owners );
   }
 }
 
@@ -140,11 +146,10 @@ void SUIT_SelectionMgr::selectionChanged( SUIT_Selector* sel )
 
   for ( int i = 0; i < myIterations; i++ )
   {
-    for ( SUIT_Selector* aSel = mySelectors.first(); aSel; aSel = mySelectors.next() )
+    for ( SelectorList::iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
     {
-      // Temporary action(to avoid selection of the objects which don't pass the filters):
-      //if ( aSel != sel )
-           aSel->setSelected( newOwners );
+      if ( *it != sel )
+       (*it)->setSelected( newOwners );
     }
   }
   myIsSelChangeEnabled = true;
@@ -170,7 +175,7 @@ bool SUIT_SelectionMgr::hasSelectionMode( const int mode ) const
 
 /*! Gets selection modes to list \a vals.
 */
-void SUIT_SelectionMgr::selectionModes( QValueList<int>& vals ) const
+void SUIT_SelectionMgr::selectionModes( QList<int>& vals ) const
 {
   vals = mySelModes;
 }
@@ -179,14 +184,14 @@ void SUIT_SelectionMgr::selectionModes( QValueList<int>& vals ) const
 */
 void SUIT_SelectionMgr::setSelectionModes( const int mode )
 {
-  QValueList<int> lst;
+  QList<int> lst;
   lst.append( mode );
   setSelectionModes( lst );
 }
 
 /*! Sets selection modes list from \a lst.
 */
-void SUIT_SelectionMgr::setSelectionModes( const QValueList<int>& lst )
+void SUIT_SelectionMgr::setSelectionModes( const QList<int>& lst )
 {
   mySelModes = lst;
 }
@@ -195,20 +200,20 @@ void SUIT_SelectionMgr::setSelectionModes( const QValueList<int>& lst )
 */
 void SUIT_SelectionMgr::appendSelectionModes( const int mode )
 {
-  QValueList<int> lst;
+  QList<int> lst;
   lst.append( mode );
   appendSelectionModes( lst );
 }
 
 /*! Append selection modes \a lst list.
 */
-void SUIT_SelectionMgr::appendSelectionModes( const QValueList<int>& lst )
+void SUIT_SelectionMgr::appendSelectionModes( const QList<int>& lst )
 {
   QMap<int, int> map;
-  for ( QValueList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
+  for ( QList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
     map.insert( *it, 0 );
 
-  for ( QValueList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
+  for ( QList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
   {
     if ( !map.contains( *itr ) )
       mySelModes.append( *itr );
@@ -219,20 +224,20 @@ void SUIT_SelectionMgr::appendSelectionModes( const QValueList<int>& lst )
 */
 void SUIT_SelectionMgr::removeSelectionModes( const int mode )
 {
-  QValueList<int> lst;
+  QList<int> lst;
   lst.append( mode );
   removeSelectionModes( lst );
 }
 
 /*! Remove selection modea \a lst from list.
 */
-void SUIT_SelectionMgr::removeSelectionModes( const QValueList<int>& lst )
+void SUIT_SelectionMgr::removeSelectionModes( const QList<int>& lst )
 {
   QMap<int, int> map;
-  for ( QValueList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
+  for ( QList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
     map.insert( *it, 0 );
 
-  for ( QValueList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
+  for ( QList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
     map.remove( *itr );
 
   mySelModes.clear();
@@ -248,8 +253,8 @@ bool SUIT_SelectionMgr::isOk( const SUIT_DataOwner* owner ) const
     return false;
 
   bool ok = true;
-  for ( SelFilterListIterator it( myFilters ); it.current() && ok; ++it )
-    ok = it.current()->isOk( owner );
+  for ( SelFilterList::const_iterator it = myFilters.begin(); it != myFilters.end() && ok; ++it )
+    ok = (*it)->isOk( owner );
 
   return ok;
 }
@@ -292,13 +297,25 @@ void SUIT_SelectionMgr::installFilter( SUIT_SelectionFilter* f, const bool updat
 */
 void SUIT_SelectionMgr::removeFilter( SUIT_SelectionFilter* f )
 {
-  myFilters.remove( f );
+  if ( !myFilters.contains( f ) )
+    return;
+
+  myFilters.removeAll( f );
+
+  if ( autoDeleteFilter() )
+    delete f;
 }
 
 /*! Clear filters list.
 */
 void SUIT_SelectionMgr::clearFilters()
 {
+  if ( autoDeleteFilter() )
+  {
+    for ( SelFilterList::const_iterator it = myFilters.begin(); it != myFilters.end(); ++it )
+      delete *it;
+  }
+
   myFilters.clear();
 }
 
@@ -306,14 +323,14 @@ void SUIT_SelectionMgr::clearFilters()
 */
 bool SUIT_SelectionMgr::autoDeleteFilter() const
 {
-  return myFilters.autoDelete();
+  return myAutoDelFilter;
 }
 
 /*! Sets auto delete filter to \a on.
 */
 void SUIT_SelectionMgr::setAutoDeleteFilter( const bool on )
 {
-  myFilters.setAutoDelete( on );
+  myAutoDelFilter = on;
 }
 
 /*! Gets good data owners list to \a out from \a in.
index 79576568f38d49f8ed6855f0b0f2c8acdf097c1f..7f308273779e9f58f4891da26da3969fee9f6f2b 100755 (executable)
 #ifndef SUIT_SELECTIONMGR_H
 #define SUIT_SELECTIONMGR_H
 
-#include "SUIT_Selector.h"
 #include "SUIT_DataOwner.h"
-#include "SUIT_SelectionFilter.h"
 
-#include <qobject.h>
-#include <qptrlist.h>
-#include <qvaluelist.h>
+#include <QList>
+#include <QObject>
+
+class SUIT_Selector;
+class SUIT_SelectionFilter;
 
 #ifdef WIN32
 #pragma warning ( disable : 4251 )
@@ -43,24 +43,24 @@ public:
   virtual void    selected( SUIT_DataOwnerPtrList&, const QString& = QString::null ) const;
   virtual void    setSelected( const SUIT_DataOwnerPtrList&, const bool = false );
 
-  void            selectors( QPtrList<SUIT_Selector>& ) const;
-  void            selectors( const QString&, QPtrList<SUIT_Selector>& ) const;
+  void            selectors( QList<SUIT_Selector*>& ) const;
+  void            selectors( const QString&, QList<SUIT_Selector*>& ) const;
 
 
   void            setEnabled( const bool, const QString& = QString::null );
 
 
   bool            hasSelectionMode( const int ) const;
-  void            selectionModes( QValueList<int>& ) const;
+  void            selectionModes( QList<int>& ) const;
 
   void            setSelectionModes( const int );
-  virtual void    setSelectionModes( const QValueList<int>& );
+  virtual void    setSelectionModes( const QList<int>& );
 
   void            appendSelectionModes( const int );
-  virtual void    appendSelectionModes( const QValueList<int>& );
+  virtual void    appendSelectionModes( const QList<int>& );
 
   void            removeSelectionModes( const int );
-  virtual void    removeSelectionModes( const QValueList<int>& );
+  virtual void    removeSelectionModes( const QList<int>& );
 
 
   bool            isOk( const SUIT_DataOwner* ) const;
@@ -83,25 +83,21 @@ signals:
 protected:
   virtual void    selectionChanged( SUIT_Selector* );
 
-  typedef QPtrListIterator<SUIT_Selector>        SelectorListIterator;
-
   virtual void    installSelector( SUIT_Selector* );
   virtual void    removeSelector( SUIT_Selector* );
 
 private:
   void            filterOwners( const SUIT_DataOwnerPtrList&, SUIT_DataOwnerPtrList& ) const;
 
-  typedef QPtrList<SUIT_Selector>                SelectorList;
-  typedef QPtrList<SUIT_SelectionFilter>         SelFilterList;
-  typedef QPtrListIterator<SUIT_SelectionFilter> SelFilterListIterator;
-
-protected:
-  SelectorList    mySelectors;
+  typedef QList<SUIT_Selector*>        SelectorList;
+  typedef QList<SUIT_SelectionFilter*> SelFilterList;
 
 private:
   SelFilterList   myFilters;
-  QValueList<int> mySelModes;
+  QList<int>      mySelModes;
+  SelectorList    mySelectors;
   int             myIterations;
+  bool            myAutoDelFilter;
   bool            myIsSelChangeEnabled;
 
   friend class SUIT_Selector;
index ebda6a065ac5be3f6973adb2a3c10821a1586684..368d8c641e15f3231c2c5d9c277ffb2348b86f28 100755 (executable)
 
 #include "SUIT_SelectionMgr.h"
 
+#include <QObject>
+
+/*!\class SUIT_Selector::Destroyer
+  Class provide the watching for qobject parent class of the selector.
+*/
+
+class SUIT_Selector::Destroyer : public QObject
+{
+public:
+  Destroyer( SUIT_Selector*, QObject* = 0 );
+  virtual ~Destroyer();
+
+  SUIT_Selector* selector() const;
+  void           setSelector( SUIT_Selector* );
+
+private:
+  SUIT_Selector* mySelector;
+};
+
+SUIT_Selector::Destroyer::Destroyer( SUIT_Selector* s, QObject* p )
+: QObject( p ),
+  mySelector( s )
+{
+}
+
+SUIT_Selector::Destroyer::~Destroyer()
+{
+  SUIT_Selector* s = mySelector;
+  mySelector = 0;
+  if ( s )
+    delete s;
+}
+
+SUIT_Selector* SUIT_Selector::Destroyer::selector() const
+{
+  return mySelector;
+}
+
+void SUIT_Selector::Destroyer::setSelector( SUIT_Selector* s )
+{
+  mySelector = s;
+}
+
 /*!\class SUIT_Selector
  * Class provide selector for data owners.
  */
 /*!
   Constructor.
 */
-SUIT_Selector::SUIT_Selector( SUIT_SelectionMgr* selMgr, QObject* parent ) :
-QObject( parent ), 
-mySelMgr( selMgr ),
+SUIT_Selector::SUIT_Selector( SUIT_SelectionMgr* selMgr, QObject* parent )
+: mySelMgr( selMgr ),
 myBlock( false ),
 myEnabled( true ),
-myAutoBlock( true )
+myAutoBlock( true ),
+myDestroyer( 0 )
 {
   if ( selMgr )
     selMgr->installSelector( this );
+
+  if ( parent )
+    myDestroyer = new Destroyer( this, parent );
 }
 
 /*!
@@ -45,6 +91,12 @@ SUIT_Selector::~SUIT_Selector()
 {
   if ( selectionMgr() )
     selectionMgr()->removeSelector( this );
+
+  if ( myDestroyer && myDestroyer->selector() == this )
+  {
+    myDestroyer->setSelector( 0 );
+    delete myDestroyer;
+  }
 }
 
 /*!
@@ -135,7 +187,7 @@ bool SUIT_Selector::hasSelectionMode( const int mode ) const
 /*!
   Puts to list \a lst selection modes from selection manager.
 */
-void SUIT_Selector::selectionModes( QValueList<int>& lst ) const
+void SUIT_Selector::selectionModes( QList<int>& lst ) const
 {
   if ( selectionMgr() )
     selectionMgr()->selectionModes( lst );
index 058506d24620ab334a32e9a6d41e72fc8a7b1889..46de6fa52fc5e125a62a4465065169ea094f3c0c 100755 (executable)
@@ -21,8 +21,9 @@
 
 #include "SUIT.h"
 
-#include <qvaluelist.h>
-#include <qobject.h>
+#include <QList>
+
+class QObject;
 
 class SUIT_SelectionMgr;
 class SUIT_DataOwnerPtrList;
@@ -34,9 +35,11 @@ class SUIT_DataOwnerPtrList;
   (ObjectBrowser, viewers, etc)
   Used by selection manager for selection synhronizing
 */
-class SUIT_EXPORT SUIT_Selector : public QObject
+
+class SUIT_EXPORT SUIT_Selector
 {
-  Q_OBJECT
+  class Destroyer;
+
 public:
   SUIT_Selector( SUIT_SelectionMgr*, QObject* = 0 );
   virtual ~SUIT_Selector();
@@ -55,7 +58,7 @@ public:
   void               setSelected( const SUIT_DataOwnerPtrList& );
 
   bool               hasSelectionMode( const int ) const;
-  void               selectionModes( QValueList<int>& ) const;
+  void               selectionModes( QList<int>& ) const;
 
 protected:
   void               selectionChanged();
@@ -63,10 +66,11 @@ protected:
   virtual void       setSelection( const SUIT_DataOwnerPtrList& ) = 0;
 
 private:
-  bool               myBlock;
   SUIT_SelectionMgr* mySelMgr;
+  bool               myBlock;
   bool               myEnabled;
   bool               myAutoBlock;
+  Destroyer*         myDestroyer;
 };
 
 #endif
index 7d2ac383912cb8488928028e7721f233ac8dc9ce..9c816089a3f4caf3f6599db3755182aef36714e2 100755 (executable)
 //
 #include "SUIT_Session.h"
 
+#include "SUIT_Study.h"
 #include "SUIT_Tools.h"
-#include "SUIT_Desktop.h"
 #include "SUIT_MessageBox.h"
-#include "SUIT_ViewWindow.h"
-#include "SUIT_ViewManager.h"
 #include "SUIT_ExceptionHandler.h"
+#include "SUIT_ResourceMgr.h"
 
-#include <qtextcodec.h>
-#include <qmessagebox.h>
-#include <qapplication.h>
+#include <QApplication>
 
 #ifdef WIN32
 #include <windows.h>
@@ -35,9 +32,6 @@
 #include <dlfcn.h>
 #endif
 
-static bool   SUIT_Session_IsPythonExecuted = false;
-static QMutex SUIT_Session_PythonMutex;
-
 SUIT_Session* SUIT_Session::mySession = 0;
 
 /*! Constructor.*/
@@ -45,23 +39,25 @@ SUIT_Session* SUIT_Session::mySession = 0;
 SUIT_Session::SUIT_Session()
 : QObject(),
 myResMgr( 0 ),
-myHandler( 0 ),
 myActiveApp( 0 ),
+myHandler( 0 ),
 myExitStatus( FROM_GUI )
 {
   SUIT_ASSERT( !mySession )
 
   mySession = this;
-
-  myAppList.setAutoDelete( true );
 }
 
 /*!destructor. Clear applications list and set mySession to zero.*/
 SUIT_Session::~SUIT_Session()
 {
+  for ( AppList::iterator it = myAppList.begin(); it != myAppList.end(); ++it )
+    delete *it;
+
   myAppList.clear();
 
-  if (myResMgr) {
+  if ( myResMgr )
+  {
     delete myResMgr;
     myResMgr = 0;
   }
@@ -78,7 +74,7 @@ SUIT_Session* SUIT_Session::session()
   Starts new application using "createApplication" function of loaded DLL.
 */
 
-SUIT_Application* SUIT_Session::startApplication( const QString& name, int args, char** argv )
+SUIT_Application* SUIT_Session::startApplication( const QString& name, int /*args*/, char** /*argv*/ )
 {
   AppLib libHandle = 0;
 
@@ -103,7 +99,7 @@ SUIT_Application* SUIT_Session::startApplication( const QString& name, int args,
   APP_CREATE_FUNC crtInst = 0;
 
 #ifdef WIN32
-  crtInst = (APP_CREATE_FUNC)::GetProcAddress( libHandle, APP_CREATE_NAME );
+  crtInst = (APP_CREATE_FUNC)::GetProcAddress( (HINSTANCE)libHandle, APP_CREATE_NAME );
 #else
   crtInst = (APP_CREATE_FUNC)dlsym( libHandle, APP_CREATE_NAME );
 #endif
@@ -130,20 +126,15 @@ SUIT_Application* SUIT_Session::startApplication( const QString& name, int args,
     return 0;
   }
 
-  anApp->setName( appName );
-
-  connect( anApp, SIGNAL( applicationClosed( SUIT_Application* ) ),
-           this, SLOT( onApplicationClosed( SUIT_Application* ) ) );
-  connect( anApp, SIGNAL( activated( SUIT_Application* ) ), 
-                this, SLOT( onApplicationActivated( SUIT_Application* ) ) );
+  anApp->setObjectName( appName );
 
-  myAppList.append( anApp );
+  insertApplication( anApp );
 
   if ( !myHandler )
   {
     APP_GET_HANDLER_FUNC crtHndlr = 0;
 #ifdef WIN32
-    crtHndlr = (APP_GET_HANDLER_FUNC)::GetProcAddress( libHandle, APP_GET_HANDLER_NAME );
+    crtHndlr = (APP_GET_HANDLER_FUNC)::GetProcAddress( (HINSTANCE)libHandle, APP_GET_HANDLER_NAME );
 #else
     crtHndlr = (APP_GET_HANDLER_FUNC)dlsym( libHandle, APP_GET_HANDLER_NAME );
 #endif
@@ -163,15 +154,22 @@ SUIT_Application* SUIT_Session::startApplication( const QString& name, int args,
 /*!
   Gets the list of all applications
 */
-QPtrList<SUIT_Application> SUIT_Session::applications() const
+QList<SUIT_Application*> SUIT_Session::applications() const
 {
-  QPtrList<SUIT_Application> apps;
-  apps.setAutoDelete( false );
+  return myAppList;
+}
 
-  for ( AppListIterator it( myAppList ); it.current(); ++it )
-    apps.append( it.current() );
+void SUIT_Session::insertApplication( SUIT_Application* app )
+{
+  if ( !app || myAppList.contains( app ) )
+    return;
 
-  return apps;
+  myAppList.append( app );
+
+  connect( app, SIGNAL( applicationClosed( SUIT_Application* ) ),
+           this, SLOT( onApplicationClosed( SUIT_Application* ) ) );
+  connect( app, SIGNAL( activated( SUIT_Application* ) ), 
+                this, SLOT( onApplicationActivated( SUIT_Application* ) ) );
 }
 
 /*!
@@ -223,14 +221,16 @@ void SUIT_Session::onApplicationClosed( SUIT_Application* theApp )
 {
   emit applicationClosed( theApp );
 
-  myAppList.remove( theApp );
+  myAppList.removeAll( theApp );
+  delete theApp;
+
   if ( theApp == myActiveApp )
     myActiveApp = 0;
 
   if ( myAppList.isEmpty() )
   {
     printf( "Calling QApplication::exit() with exit code = %d\n", myExitStatus );
-    qApp->exit( myExitStatus );
+    QApplication::instance()->exit( myExitStatus );
   }
 }
 
@@ -239,16 +239,17 @@ void SUIT_Session::onApplicationClosed( SUIT_Application* theApp )
 */
 void SUIT_Session::closeSession( int mode )
 {
-  while ( !myAppList.isEmpty() )
+  AppList apps = myAppList;
+  for ( AppList::const_iterator it = apps.begin(); it != apps.end(); ++it )
   {
-    SUIT_Application* app = myAppList.getFirst();
+    SUIT_Application* app = *it;
     if ( mode == ASK && !app->isPossibleToClose() )
       return;
     else if ( mode == SAVE )
     {
       SUIT_Study* study = app->activeStudy();
       if ( study->isModified() && study->isSaved() )
-       study->saveDocument();
+             study->saveDocument();
     }
     else if ( mode == DONT_SAVE )
     {
@@ -270,11 +271,12 @@ SUIT_ExceptionHandler* SUIT_Session::handler() const
 QString SUIT_Session::lastError() const
 {
   QString str;
-#ifdef WNT
+#ifdef WIN32
   LPVOID lpMsgBuf;
   ::FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
                    FORMAT_MESSAGE_IGNORE_INSERTS, 0, ::GetLastError(), 0, (LPTSTR)&lpMsgBuf, 0, 0 );
-  str = QString( (LPTSTR)lpMsgBuf );
+  LPTSTR msg = (LPTSTR)lpMsgBuf;
+  str = QString( SUIT_Tools::toQString( msg ) );
   LocalFree( lpMsgBuf );
 #else
   str = QString( dlerror() );
@@ -294,10 +296,16 @@ SUIT_Session::AppLib SUIT_Session::loadLibrary( const QString& name, QString& li
     return 0;
 
   AppLib lib = 0;
+  QByteArray bid = libFile.toLatin1();
 #ifdef WIN32
-  lib = ::LoadLibrary( (char*)libFile.latin1() );
+#ifdef UNICODE
+  LPTSTR str = (LPTSTR)libFile.utf16();
+#else
+  LPTSTR str = (LPTSTR)(const char*)bid;
+#endif
+  lib = ::LoadLibrary( str );
 #else
-  lib = dlopen( (char*)libFile.latin1(), RTLD_LAZY | RTLD_GLOBAL  );
+  lib = dlopen( (const char*)libFile.toLatin1(), RTLD_LAZY | RTLD_GLOBAL  );
 #endif
   return lib;
 }
@@ -330,28 +338,3 @@ void SUIT_Session::onApplicationActivated( SUIT_Application* app )
 {
   myActiveApp = app;
 }
-
-/*!
-  \retval Return TRUE, if a command is currently executed in Python Console,
-                 FALSE otherwise.
-*/
-bool SUIT_Session::IsPythonExecuted()
-{
-  bool ret;
-  SUIT_Session_PythonMutex.lock();
-  ret = SUIT_Session_IsPythonExecuted;
-  SUIT_Session_PythonMutex.unlock();
-  return ret;
-}
-
-/*!
-  Set value of boolean flag, being returned by method \a IsPythonExecuted().
-  It is supposed to set the flag to TRUE when any python command starts
-  and reset it to FALSE when the command finishes.
-*/
-void SUIT_Session::SetPythonExecuted(bool isPythonExecuted)
-{
-  SUIT_Session_PythonMutex.lock();
-  SUIT_Session_IsPythonExecuted = isPythonExecuted;
-  SUIT_Session_PythonMutex.unlock();
-}
index 840de59278bdb8935bad7aaf03ba8146464dac0a..a6655aeebaa3076201cec63f87593c8d20b2693c 100755 (executable)
 
 #include "SUIT.h"
 
-#include "SUIT_Application.h"
-#include "SUIT_ResourceMgr.h"
+#include <SUIT_Application.h>
 
-#include <qmutex.h>
-#include <qobject.h>
-#include <qptrlist.h>
-#include <qptrvector.h>
-#include <qstringlist.h>
+#include <QList>
+#include <QObject>
+#include <QString>
 
 #ifdef WIN32
 #define LIB_HANDLE HINSTANCE
@@ -39,7 +36,7 @@
 class SUIT_ResourceMgr;
 class SUIT_ExceptionHandler;
 
-#ifdef WNT
+#ifdef WIN32
 #pragma warning( disable:4251 )
 #endif
 /*!
@@ -65,7 +62,7 @@ public:
 
   SUIT_Application*            startApplication( const QString&, int = 0, char** = 0 );
 
-  QPtrList<SUIT_Application>   applications() const;
+  QList<SUIT_Application*>     applications() const;
   SUIT_Application*            activeApplication() const;
 
   SUIT_ResourceMgr*            resourceMgr() const;
@@ -74,9 +71,7 @@ public:
 
   SUIT_ExceptionHandler*       handler() const;
 
-  // To lock GUI user actions during python command execution (PAL12651)
-  static bool                  IsPythonExecuted();
-  static void                  SetPythonExecuted(bool isPythonExecuted);
+  void                         insertApplication( SUIT_Application* );
 
 signals:
   void                         applicationClosed( SUIT_Application* );
@@ -89,9 +84,8 @@ private slots:
   void                         onApplicationActivated( SUIT_Application* ); 
 
 private:
-  typedef QPtrList<SUIT_Application>         AppList;
-  typedef QMap<QString, AppLib>              AppLibMap;
-  typedef QPtrListIterator<SUIT_Application> AppListIterator;
+  typedef QList<SUIT_Application*> AppList;
+  typedef QMap<QString, AppLib>    AppLibMap;
 
 private:
   QString                      lastError() const;
index a3baef3ce8bc7dfa153cea62db34b2e91c3cd4a4..c1521d0daf96772d450d5d957b6ffcc6768935a6 100755 (executable)
@@ -23,7 +23,6 @@
 #include "SUIT_DataObject.h"
 #include "SUIT_MessageBox.h"
 #include "SUIT_Application.h"
-#include <qvaluevector.h>
 
 /*!\class SUIT_Study
  * Support study management. Object management. Operation management.
@@ -33,9 +32,9 @@
 SUIT_Study::SUIT_Study( SUIT_Application* app )
 : QObject(),
 myApp( app ),
+myName( "" ),
 myIsSaved( false ),
 myIsModified( false ),
-myName( "" ),
 myBlockChangeState( false )
 {
   static int _id = 0;
@@ -43,8 +42,6 @@ myBlockChangeState( false )
   myId = ++_id;
 
   myRoot = new SUIT_DataObject();
-  myOperations.setAutoDelete( false );
-  myOperations.setAutoDelete( false );
 }
 
 /*!Destructor.*/
@@ -91,7 +88,7 @@ QString SUIT_Study::studyName() const
  */
 SUIT_Operation* SUIT_Study::activeOperation() const
 {
-  return myOperations.count() > 0 ? myOperations.getLast() : 0;
+  return myOperations.count() > 0 ? myOperations.last() : 0;
 }
 
 /*!
@@ -113,7 +110,7 @@ bool SUIT_Study::isModified() const
 /*!
  *Close document. NOT IMPLEMENTED.
  */
-void SUIT_Study::closeDocument(bool permanently)
+void SUIT_Study::closeDocument(bool /*permanently*/)
 {
 }
 
@@ -121,8 +118,9 @@ void SUIT_Study::closeDocument(bool permanently)
   Custom document initialization to be performed \n
    within onNewDoc() handler can be put here
 */
-void SUIT_Study::createDocument()
+bool SUIT_Study::createDocument( const QString& )
 {
+  return true;
 }
 
 /*!
@@ -163,8 +161,8 @@ bool SUIT_Study::saveDocument()
 void SUIT_Study::abortAllOperations()
 {
   myBlockChangeState = true;
-  for( SUIT_Operation* op = myOperations.first(); op; op = myOperations.next() )
-    op->abort();
+  for ( Operations::iterator it = myOperations.begin(); it != myOperations.end(); ++it )
+    (*it)->abort();
   myBlockChangeState = false;
   myOperations.clear();
 }
@@ -239,9 +237,9 @@ SUIT_Operation* SUIT_Study::blockingOperation( SUIT_Operation* theOp ) const
     return 0;
 
   Operations tmpOps( myOperations );
-  SUIT_Operation* anOp = 0;
-  for ( anOp = tmpOps.last(); anOp; anOp = tmpOps.prev() )
+  for ( Operations::const_iterator it = tmpOps.end(); it != tmpOps.begin(); --it )
   {
+    SUIT_Operation* anOp = *it;
     if ( anOp != 0 && anOp!= theOp && !anOp->isValid( theOp ) )
       return anOp;
   }
@@ -262,7 +260,7 @@ SUIT_Operation* SUIT_Study::blockingOperation( SUIT_Operation* theOp ) const
 */
 bool SUIT_Study::start( SUIT_Operation* theOp, const bool toCheck )
 {
-  if ( !theOp || myOperations.find( theOp ) >= 0 )
+  if ( !theOp || myOperations.contains( theOp ) )
     return false;
 
   theOp->setExecStatus( SUIT_Operation::Rejected );
@@ -313,7 +311,7 @@ bool SUIT_Study::start( SUIT_Operation* theOp, const bool toCheck )
 */
 bool SUIT_Study::abort( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 )
+  if ( !theOp || !myOperations.contains( theOp ) )
     return false;
 
   theOp->setExecStatus( SUIT_Operation::Rejected );
@@ -337,7 +335,7 @@ bool SUIT_Study::abort( SUIT_Operation* theOp )
 */
 bool SUIT_Study::commit( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 )
+  if ( !theOp || !myOperations.contains( theOp ) )
     return false;
 
   theOp->setExecStatus( SUIT_Operation::Accepted );
@@ -363,7 +361,7 @@ bool SUIT_Study::commit( SUIT_Operation* theOp )
 */
 bool SUIT_Study::suspend( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 || theOp->state() == SUIT_Operation::Suspended )
+  if ( !theOp || !myOperations.contains( theOp ) || theOp->state() == SUIT_Operation::Suspended )
     return false;
 
   theOp->setState( SUIT_Operation::Suspended );
@@ -382,7 +380,7 @@ bool SUIT_Study::suspend( SUIT_Operation* theOp )
 */
 bool SUIT_Study::resume( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 ||
+  if ( !theOp || !myOperations.contains( theOp ) ||
        theOp->state() == SUIT_Operation::Running ||
        blockingOperation( theOp ) != 0 )
     return false;
@@ -396,7 +394,7 @@ bool SUIT_Study::resume( SUIT_Operation* theOp )
   // Move operation at the end of list in order to sort it in the order of activation.
   // As result active operation is a last operation of list, operation which was active
   // before currently active operation is located before it and so on
-  myOperations.remove( theOp );
+  myOperations.removeAll( theOp );
   myOperations.append( theOp );
 
   emit theOp->resumed( theOp );
@@ -413,12 +411,13 @@ bool SUIT_Study::resume( SUIT_Operation* theOp )
 void SUIT_Study::stop( SUIT_Operation* theOp )
 {
   theOp->setState( SUIT_Operation::Waiting );
-  myOperations.remove( theOp );
+  myOperations.removeAll( theOp );
 
   // get last operation which can be resumed
-  SUIT_Operation* anOp, *aResultOp = 0;
-  for ( anOp = myOperations.last(); anOp; anOp = myOperations.prev() )
+  SUIT_Operation* aResultOp = 0;
+  for ( Operations::iterator it = myOperations.end(); it != myOperations.begin(); --it )
   {
+    SUIT_Operation* anOp = *it;
     if ( anOp && anOp != theOp && blockingOperation( anOp ) == 0 )
     {
       aResultOp = anOp;
@@ -438,7 +437,7 @@ void SUIT_Study::stop( SUIT_Operation* theOp )
  * \brief Get all started operations
   * \return List of all started operations
 */
-const QPtrList<SUIT_Operation>& SUIT_Study::operations() const
+const QList<SUIT_Operation*>& SUIT_Study::operations() const
 {
   return myOperations;
 }
@@ -523,6 +522,6 @@ int SUIT_Study::storeState()
 /*!
  * \brief Restores the study state
 */
-void SUIT_Study::restoreState(int savePoint)
+void SUIT_Study::restoreState(int /*savePoint*/)
 {
 }
index 156c6bc74df61f24a70f95fe04b46b75bd69e98a..6ebf2bcad4f04e926bf5231266f9fd0f2668dba1 100755 (executable)
 
 #include "SUIT.h"
 
-#include "SUIT_Operation.h"
-
-#include <qobject.h>
-#include <qptrlist.h>
+#include <QList>
+#include <QObject>
 
 class SUIT_DataObject;
 class SUIT_Application;
-class QDialog;
+class SUIT_Operation;
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -51,9 +49,9 @@ public:
   virtual bool      isSaved()  const;
   virtual bool      isModified() const;
 
-  virtual void      createDocument();
   virtual void      closeDocument( bool = true );
   virtual bool      openDocument( const QString& );
+  virtual bool      createDocument( const QString& );
 
   bool              saveDocument();
   virtual bool      saveDocumentAs( const QString& );
@@ -65,7 +63,7 @@ public:
   // Operation management
   SUIT_Operation*   activeOperation() const;
   virtual void      abortAllOperations();
-  const QPtrList<SUIT_Operation>& operations() const;
+  const QList<SUIT_Operation*>& operations() const;
   
   virtual SUIT_Operation* blockingOperation( SUIT_Operation* ) const;
 
@@ -98,7 +96,7 @@ protected:
   virtual bool      commitTransaction( const QString& = QString::null );
 
 private:
-  typedef QPtrList<SUIT_Operation> Operations;
+  typedef QList<SUIT_Operation*> Operations;
   void              stop( SUIT_Operation* );
 
 private:
index 35e009c6de7ca66a829a5c255ad202a3e4f4ce20..a7e60af9ad46968fb2dc60a018562a8e4c7c7dfc 100755 (executable)
 
 #include "SUIT_ToolButton.h"
 
-#include <qpopupmenu.h>
-#include <qstyle.h>
+#include <QMenu>
 
 /*!Constructor.*/
-SUIT_ToolButton::SUIT_ToolButton( QWidget *parent, 
-                                        const char *name,
-                                        bool changeItemAfterClick)
- : QToolButton(  parent, name ),
-   myChangeItemAfterClick( changeItemAfterClick )
+SUIT_ToolButton::SUIT_ToolButton( QWidget *parent, const char* /*name*/,
+                                  bool changeItemAfterClick )
+: QToolButton( parent ),
+myChangeItemAfterClick( changeItemAfterClick )
 {
   initialize();
 }
 
-/*!Constructor.*/
-SUIT_ToolButton::SUIT_ToolButton( const QPixmap & pm,
-                                        const QString &textLabel,
-                                        const QString& grouptext,
-                                        QObject * receiver,
-                                        const char* slot,
-                                        QToolBar * parent,
-                                        const char* name,
-                                        bool changeItemAfterClick)
- :QToolButton(pm, textLabel, grouptext, receiver, slot, parent, name),
-  myChangeItemAfterClick( changeItemAfterClick )
-{
-  initialize();
-}
-
-
 /*!Initialize tool buttons.*/
 void SUIT_ToolButton::initialize()
 {
-  mySignal = NULL;
-  myPopup = new QPopupMenu( this );
-  setPopup(myPopup);
-  connect( myPopup, SIGNAL(activated(int)), SLOT(OnSelectAction(int)) );
-  setPopupDelay(250);
+//  mySignal = NULL;
+  myPopup = new QMenu( this );
+  setMenu( myPopup );
+  connect( myPopup, SIGNAL( activated( int ) ), SLOT( OnSelectAction( int ) ) );
 }
 
 /*!drawButton is redefined to draw DownArrow*/
-void SUIT_ToolButton::drawButton( QPainter * p )
+void SUIT_ToolButton::drawButton( QPainter * /*p*/ )
 {
-  QToolButton::drawButton(p);
+/*
+  QToolButton::drawButton( p );
 
 //draw DownArrow
   int x, y, w, h;
@@ -69,53 +51,40 @@ void SUIT_ToolButton::drawButton( QPainter * p )
   style().drawPrimitive( QStyle::PE_ArrowDown,
     p, QRect(x+w/2+3, y+h/2+3, w/2, h/2),   //QRect(x+(w-x)/2, y+(h-y)/2, w, h)
     colorGroup(), isEnabled() );
+*/
 }
 
-
 /*! Add action into popup*/
-void SUIT_ToolButton::AddAction(QAction* theAction)
+void SUIT_ToolButton::AddAction( QAction* theAction )
 {
   bool aIsFirst = false;
-  if ( myPopup->count() == 0 ) 
+  if ( myPopup->actions().isEmpty() ) 
   {
     aIsFirst = true;
-    setPixmap(theAction->iconSet().pixmap());
-    setTextLabel(theAction->text());
-    theAction->addTo( myPopup );
-    QMenuItem* aItem = myPopup->findItem(myPopup->idAt(0));
-    if (aItem != NULL) 
-    {
-      mySignal = aItem->signal();
-    }
+    setIcon( theAction->icon() );
+    setText( theAction->text() );
   }
-  else
-    theAction->addTo( myPopup );
+    myPopup->addAction( theAction );
 }
 
 /*! Sets myPopup item with theIndex as current*/
-void SUIT_ToolButton::SetItem(int theIndex)
+void SUIT_ToolButton::SetItem( int theIndex )
 {
-  int anId = myPopup->idAt(theIndex);
-  if (anId != -1)
+  QAction* a = myPopup->actions()[theIndex];
+  if ( a )
   {
-    // Protection against unexpected null pointers returned
-    if ( myPopup->iconSet(anId) )
-      setPixmap(myPopup->iconSet(anId)->pixmap());
-    setTextLabel(myPopup->text(anId));
-    QMenuItem* aItem = myPopup->findItem(anId);
-    if (aItem != NULL) 
-    {
-      mySignal = aItem->signal();
-    }
+    setIcon( a->icon() );
+    setText( a->text() );
   }
 }
 
 /*!Public SLOT.
  * On select action (icon and text set with id = \a theItemID)
  */
-void SUIT_ToolButton::OnSelectAction(int theItemID)
+void SUIT_ToolButton::OnSelectAction( int /*theItemID*/ )
 {
-  if (myChangeItemAfterClick)
+/*
+  if ( myChangeItemAfterClick )
   {
     // Protection against unexpected null pointers returned
     if ( myPopup->iconSet(theItemID) )
@@ -127,18 +96,15 @@ void SUIT_ToolButton::OnSelectAction(int theItemID)
       mySignal = aItem->signal();
     }
   }
+*/
 }
 
-
-
 /*!On mouse release event.*/
-void SUIT_ToolButton::mouseReleaseEvent ( QMouseEvent * theEvent)
+void SUIT_ToolButton::mouseReleaseEvent( QMouseEvent* theEvent )
 {
-  QToolButton::mouseReleaseEvent(theEvent);
-  if (mySignal != NULL) 
-  {
+  QToolButton::mouseReleaseEvent( theEvent );
+/*
+  if ( mySignal ) 
     mySignal->activate();
-  }
+*/
 }
-
-
index 10abe2629ccc188d990e06e34b73caf5498b0fd0..419ef0a4ad7395024cd96d96e53196b06d313e94 100755 (executable)
 #ifndef SUIT_TOOLBUTTON_H
 #define SUIT_TOOLBUTTON_H
 
-#include <qtoolbutton.h>
-#include <qaction.h>
-
 #include "SUIT.h"
 
+#include <QToolButton>
+
+class QAction;
+class QPixmap;
+class QToolBar;
+
 /*! To draw down arrow on toolbutton.*/
 class SUIT_EXPORT SUIT_ToolButton : public QToolButton
 {
@@ -35,11 +38,6 @@ public:
   SUIT_ToolButton( QWidget *parent = 0, 
                    const char *name = 0,
                    bool changeItemAfterClick = true );
-  SUIT_ToolButton(  const QPixmap & pm, const QString &textLabel,
-                    const QString& grouptext,
-                    QObject * receiver, const char* slot,
-                    QToolBar * parent, const char* name = 0,
-                    bool changeItemAfterClick = true );
   //@}
 
   void drawButton( QPainter * pQPainter);
@@ -57,11 +55,10 @@ protected:
 private:
   void initialize();
 
-  QPopupMenu* myPopup;
-  QSignal* mySignal;
-  bool myChangeItemAfterClick;
+  QMenu*   myPopup;
+//  QSignal* mySignal;
+  bool     myChangeItemAfterClick;
 
 };
 
 #endif
-
index 953de65d4f20c4ac8bcb5df183f2331e499c7b8c..31d997b4e2dc94926169635a6b67bfb585856abf 100755 (executable)
@@ -18,7 +18,7 @@
 //
 #include "SUIT_Tools.h"
 
-#include <qdir.h>
+#include <QDir>
 
 #include <stdio.h>
 #include <stdarg.h>
@@ -37,7 +37,7 @@ void SUIT_Tools::trace( const char* lpszLog, const char* lpszFormat, ... )
   tmpPath += QString( "Salome_trace" );
 
   FILE*        pStream;
-  pStream = fopen( lpszLog ? lpszLog : tmpPath.latin1(), "a" );
+  pStream = fopen( lpszLog ? lpszLog : (const char*)tmpPath.toLatin1(), "a" );
   if ( pStream ) 
   {    
     va_list argptr;
@@ -55,7 +55,7 @@ void SUIT_Tools::trace( const char* lpszLog, const char* lpszFormat, ... )
 */     
 QRect SUIT_Tools::makeRect( const int x1, const int y1, const int x2, const int y2 )
 {  
-  return QRect( QMIN( x1, x2 ), QMIN( y1, y2 ), QABS( x2 - x1 ), QABS( y2 - y1 ) );
+  return QRect( qMin( x1, x2 ), qMin( y1, y2 ), qAbs( x2 - x1 ), qAbs( y2 - y1 ) );
 }
 
 /*!
@@ -64,7 +64,7 @@ QRect SUIT_Tools::makeRect( const int x1, const int y1, const int x2, const int
 QFont SUIT_Tools::stringToFont( const QString& fontDescription )
 {
   QFont font;
-  if ( fontDescription.stripWhiteSpace().isEmpty() || !font.fromString( fontDescription ) )
+  if ( fontDescription.trimmed().isEmpty() || !font.fromString( fontDescription ) )
     font = QFont( "Courier", 11 );
   return font;
 }
index 62bc8d1633b08f7d94580b2f39337a19ce6eb100..811571ddfaf2fbfdb2eca69c7ac9a68825cac2bd 100755 (executable)
@@ -23,9 +23,9 @@
 
 #include <Qtx.h>
 
-#include <qrect.h>
-#include <qfont.h>
-#include <qstring.h>
+#include <QRect>
+#include <QString>
+#include <QFont>
 
 /*!
   \class SUIT_Tools