]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message ***
authorvsr <vsr@opencascade.com>
Fri, 10 Aug 2007 12:45:24 +0000 (12:45 +0000)
committervsr <vsr@opencascade.com>
Fri, 10 Aug 2007 12:45:24 +0000 (12:45 +0000)
33 files changed:
src/LightApp/LightApp_Application.cxx
src/LightApp/LightApp_DataObject.cxx
src/LightApp/LightApp_DataObject.h
src/LightApp/LightApp_Dialog.cxx
src/LightApp/LightApp_Module.h
src/LightApp/LightApp_NameDlg.h
src/LightApp/LightApp_OCCSelector.cxx
src/LightApp/LightApp_Selection.cxx
src/LightApp/LightApp_SelectionMgr.h
src/LogWindow/LogWindow.cxx
src/ObjBrowser/OB_Browser.cxx
src/Plot2d/Plot2d_Curve.cxx
src/Plot2d/Plot2d_ViewFrame.cxx
src/QDS/QDS.cxx
src/QDS/QDS.h
src/QDS/QDS_CheckBox.h
src/QDS/QDS_ComboBox.h
src/QDS/QDS_Datum.cxx
src/QDS/QDS_Datum.h
src/QDS/QDS_LineEdit.h
src/QDS/QDS_RadioBox.h
src/QDS/QDS_SpinBox.h
src/QDS/QDS_SpinBoxDbl.h
src/QDS/QDS_TextEdit.h
src/ResExporter/ResourceExporter.cxx
src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_Module.h
src/SALOME_PYQT/SalomePyQt/SalomePyQt.h
src/SALOME_PYQT/SalomePyQt/SalomePyQt.sip
src/SOCC/SOCC_Prs.cxx
src/SOCC/SOCC_Prs.h
src/SalomeApp/SalomeApp_Application.cxx
src/SalomeApp/SalomeApp_DataObject.cxx
src/Session/SALOME_Session_Server.cxx

index b604a7b82834673e7049e171c05a55171c85723f..68446a9e89db62836b34b986f4545458d56e18c3 100644 (file)
@@ -2366,7 +2366,7 @@ void LightApp_Application::moduleIconNames( QMap<QString, QString>& iconMap ) co
   {
     QString modName = *it;
     QString modIntr = moduleName( modName );
-    QString modIcon = resMgr->stringValue( modIntr, "icon", QString::null );
+    QString modIcon = resMgr->stringValue( modIntr, "icon", QString() );
 
     if ( modIcon.isEmpty() )
       continue;
index 75b250e74e788809395b19f7e058d0fde5092710..1f746533d827172736b5710bac93b53ec2fba492 100644 (file)
@@ -27,6 +27,8 @@
 #include <CAM_Module.h>
 #include <SUIT_DataObjectKey.h>
 
+#include <QVariant>
+
 /*!
   \class LightApp_DataObject::Key
   \brief Represents unique data object key for the LightApp_DataObject
@@ -225,6 +227,75 @@ QString LightApp_DataObject::componentDataType() const
   return myCompDataType;
 }
 
+/*!
+  \brief Check if the specified column supports custom sorting.
+  \param index column index
+  \return \c true if column sorting should be customized
+  \sa compare()
+*/
+bool LightApp_DataObject::customSorting( const int index ) const
+{
+  // perform custom sorting for the "Entry" column
+  return index == EntryIdx ? true 
+    : CAM_DataObject::customSorting( index );
+}
+
+/*!
+  \brief Compares data from two items for sorting purposes.
+
+  This method is called only for those columns for which customSorting()
+  method returns \c true.
+
+  \param left first data to compare
+  \param right second data to compare
+  \param index column index
+  \return result of the comparison
+  \sa customSorting()
+*/
+bool LightApp_DataObject::compare( const QVariant& left, const QVariant& right, 
+                                  const int index ) const
+{
+  if ( index == EntryIdx ) {
+    // perform custom sorting for the "Entry" column
+    QString leftStr  = left.toString();
+    QString rightStr = right.toString();
+    QStringList idsLeft  = leftStr.split( ":", QString::SkipEmptyParts );
+    QStringList idsRight = rightStr.split( ":", QString::SkipEmptyParts );
+    if ( idsLeft.count() > 1 || idsRight.count() > 1 ) {
+      bool result = true;
+      bool calculated = false;
+      for ( int i = 0; i < idsLeft.count() || i < idsRight.count(); i++ ) {
+       bool okLeft = true, okRight = true;
+       int lid = 0, rid = 0;
+       if ( i < idsLeft.count() )
+         lid = idsLeft[i].toInt( &okLeft );
+       if ( i < idsRight.count() )
+         rid = idsRight[i].toInt( &okRight );
+       if ( okLeft && okRight ) {
+         // both seem to be correct integer ID
+         return lid < rid;
+       }
+       else if ( okLeft || okRight ) {
+         // objects with correct (int) ID have higher priority
+         return okLeft;
+       }
+       else {
+         // both not integer ID
+         int r = QString::localeAwareCompare( idsLeft[i], idsRight[i] ); 
+         if ( !calculated && r != 0 ) {
+           result = r < 0;
+           calculated = true;
+         }
+       }
+      }
+      // we should reach this if the entries are exactly equal
+      return result; 
+    }
+    return QString::localeAwareCompare( leftStr, rightStr ) < 0;
+  }
+  return CAM_DataObject::compare( left, right, index );
+}
+
 /*!
   \class LightApp_ModuleObject
   \brief Used for optimized access to the data model from the data objects.
index 0d6ade400cf8f7aa15df75c37bb9dec8d97e6fcf..77f3b7861956a6bdbffc3268e052ab0f35f3ce20 100644 (file)
@@ -55,6 +55,10 @@ public:
   virtual SUIT_DataObject*        componentObject() const;
   virtual QString                 componentDataType() const;
 
+  virtual bool                    customSorting( const int = NameIdx ) const;
+  virtual bool                    compare( const QVariant&, const QVariant&,
+                                          const int = NameIdx ) const;
+
 protected:
   QString                         myCompDataType;
   SUIT_DataObject*                myCompObject;
index 7d62a461a15803f980a2dd0050b27261c7ad0508..efa50e54da202a158bd593ba39f0596a917d3ec3 100644 (file)
@@ -236,7 +236,7 @@ void LightApp_Dialog::clearSelection( const int id )
     myObjects[ id ].myTypes.clear();
     myObjects[ id ].myNames.clear();
     
-    myObjects[ id ].myEdit->setText( QString::null );
+    myObjects[ id ].myEdit->setText( QString() );
     emit selectionChanged( id );
   }
 }
@@ -716,7 +716,7 @@ QString LightApp_Dialog::selectionDescription( const QStringList& names, const T
     return "LightApp_Dialog::selectionDescription(): Error!!!";
     
   if( names.isEmpty() )
-    return QString::null;
+    return QString();
     
   switch( ni )
   {
@@ -739,7 +739,7 @@ QString LightApp_Dialog::selectionDescription( const QStringList& names, const T
       return countOfTypes( types );
       break;
   };
-  return QString::null;
+  return QString();
 }
 
 /*!
index 0883d2120d9e83fc1a22070e718b36e9fc5771d9..58dec54acf2a4bc9800e64e31392f541e280077e 100644 (file)
@@ -115,8 +115,8 @@ protected:
 
   int                                 addPreference( const QString& label );
   int                                 addPreference( const QString& label, const int pId, const int = LightApp_Preferences::Auto,
-                                                    const QString& section = QString::null,
-                                                    const QString& param = QString::null );
+                                                    const QString& section = QString(),
+                                                    const QString& param = QString() );
   QVariant                            preferenceProperty( const int, const QString& ) const;
   void                                setPreferenceProperty( const int, const QString&, const QVariant& );
 
index 59c9a27a30465d28ee47d8f611ca4958db3b2d12..8a261dc9bfb093e872b78264d46288198a6ba59b 100644 (file)
@@ -44,7 +44,7 @@ public:
   void            setName( const QString& name );
   QString         name();
     
-  static QString  getName( QWidget* parent = 0, const QString& oldName = QString::null );
+  static QString  getName( QWidget* parent = 0, const QString& oldName = QString() );
     
 protected slots:
   void accept();
index 534cad26e9befc79573487d5a17352aad076e88d..b406503990b88bb7342f2f51b2f3b28e4a02c4ca 100644 (file)
@@ -133,7 +133,7 @@ void LightApp_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
 QString LightApp_OCCSelector::entry( const Handle(AIS_InteractiveObject)& anAIS ) const
 {
   if ( anAIS.IsNull() || !anAIS->HasOwner() )
-    return QString::null;
+    return QString();
 
   QString res;
 
index 4cc124bcb9cfc657c802aeec201a915a07ae5b07..29913715d6c47c634e075477d0b4eebdb17ac205 100644 (file)
@@ -181,7 +181,7 @@ QVariant LightApp_Selection::parameter( const QString& p ) const
   else if ( p == "activeModule" )
   {
     LightApp_Application* app = dynamic_cast<LightApp_Application*>( myStudy->application() );
-    QString mod_name = app ? QString( app->activeModule()->name() ) : QString::null;
+    QString mod_name = app ? QString( app->activeModule()->name() ) : QString();
     //cout << "activeModule : " << mod_name.latin1() << endl;
     if( !mod_name.isEmpty() )
       return mod_name;
@@ -190,11 +190,7 @@ QVariant LightApp_Selection::parameter( const QString& p ) const
   }
   else if ( p == "isActiveView" )  return QVariant( (bool)activeVW() );
   else if ( p == "activeView" )    return QVariant( activeViewType() );
-#ifndef WIN32
   else                             return QtxPopupSelection::parameter( p );
-#else
-  else                             return QtxPopupSelection::parameter( p ); //Selection::parameter( p ); //?
-#endif
 }
 
 /*!
@@ -236,7 +232,7 @@ QString LightApp_Selection::activeViewType() const
     if ( vm )
       return vm->getType();
   }
-  return QString::null;
+  return QString();
 }
 
 /*!
index ccc0c3eca77ff7abb00d5be4362ff14ff6882d31..26934b6d813825d11f08183788d2ce2510e5aed6 100644 (file)
@@ -56,7 +56,7 @@ public:
   typedef NCollection_DataMap< Handle(SALOME_InteractiveObject), TColStd_IndexedMapOfInteger > MapIOOfMapOfInteger;
   typedef NCollection_DataMap< TCollection_AsciiString, TColStd_IndexedMapOfInteger > MapEntryOfMapOfInteger;
 
-  void                   selectedObjects( SALOME_ListIO&, const QString& = QString::null, const bool = true ) const;
+  void                   selectedObjects( SALOME_ListIO&, const QString& = QString(), const bool = true ) const;
   void                   setSelectedObjects( const SALOME_ListIO&, const bool = false );
 
   void                   GetIndexes( const Handle(SALOME_InteractiveObject)& IObject, 
@@ -74,7 +74,7 @@ public:
 
   void                   selectedSubOwners( MapEntryOfMapOfInteger& theMap );
 #else
-  void                   selectedObjects( QStringList&, const QString& = QString::null, const bool = true ) const;
+  void                   selectedObjects( QStringList&, const QString& = QString(), const bool = true ) const;
 #endif
 
 signals:
index 1b1a9631963bbffd92987d5e0f0ee0c1ed2a5e52..ab0a237d9fd031ceffcf796d76e6f011c9740143 100755 (executable)
@@ -92,7 +92,7 @@ LogWindow::LogWindow( QWidget* parent )
 {
   SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
 
-  QString fntSet = resMgr ? resMgr->stringValue( "Log Window", "font", QString::null ) : QString::null;
+  QString fntSet = resMgr ? resMgr->stringValue( "Log Window", "font", QString() ) : QString();
 
   setFont( SUIT_Tools::stringToFont( fntSet ) );
 
@@ -354,7 +354,7 @@ void LogWindow::onSaveToFile()
     return;
 
   // call application-specific "Save file" dialog box
-  QString aName = app->getFileName( false, QString::null, QString( "*.log" ), QString::null, 0 );
+  QString aName = app->getFileName( false, QString(), QString( "*.log" ), QString(), 0 );
   if ( aName.isNull() )
     return;
 
index 0f944c30806cffb0fe4a204bb89065ee29f4069d..d30b7b6a20958c0392670b8b91ca13ed9c52e66b 100755 (executable)
@@ -358,6 +358,8 @@ void OB_Browser::select( const QModelIndex& index, const bool on, const bool kee
   \brief Select/deselect specified model indices.
   \param indexes model indices to be selected/deselected
   \param on if \c true, the indices will be selected, otherwise - deselected
+  \param keepSelection if \c true (default) the previous selection is kept, 
+  otherwise it is first cleared
 */
 void OB_Browser::select( const QModelIndexList& indexes, const bool on, const bool keepSelection )
 {
@@ -367,9 +369,14 @@ void OB_Browser::select( const QModelIndexList& indexes, const bool on, const bo
   QModelIndex idx;
   bool first = true;
 
-  foreach( idx, indexes ) {
-    select( idx, on, first ? keepSelection : true );
-    first = false;
+  if ( !indexes.isEmpty() ) {
+    foreach( idx, indexes ) {
+      select( idx, on, first ? keepSelection : true );
+      first = false;
+    }
+  }
+  else if ( !keepSelection ) {
+    myView->clearSelection();
   }
 
   myView->blockSignals( blocked );
index abbc13bd306876b64cc4c3bd8deddbc48bf45ec5..7224d857f1af43d4924ac675955ac950015f5a27 100755 (executable)
@@ -219,7 +219,7 @@ void Plot2d_Curve::setData( const double* hData, const double* vData, long size,
   clearAllPoints();
   QStringList::const_iterator anIt = lst.begin(), aLast = lst.end(); 
   for( long i = 0; i < size; i++, anIt++ )
-    addPoint( hData[i], vData[i], anIt==aLast ? QString::null : *anIt );
+    addPoint( hData[i], vData[i], anIt==aLast ? QString() : *anIt );
 }
 
 /*!
@@ -412,7 +412,7 @@ void Plot2d_Curve::setText( const int ind, const QString& txt )
 QString Plot2d_Curve::text( const int ind ) const
 {
   if( ind<0 || ind>=myPoints.count() )
-    return QString::null;
+    return QString();
   else
     return myPoints[ind].text;
 }
index 390659ac1034bbaa172aa50f77de1ab89212fc5d..5afc21af0e6541797d6512571874cb6d3f32e6ca 100755 (executable)
@@ -1199,22 +1199,22 @@ void Plot2d_ViewFrame::setTitle( bool enabled, const QString& title,
     case MainTitle:
       myTitleEnabled = enabled;
       myTitle = title;
-      myPlot->setTitle( myTitleEnabled ? myTitle : QString::null );
+      myPlot->setTitle( myTitleEnabled ? myTitle : QString() );
       break;
     case XTitle:
       myXTitleEnabled = enabled;
       myXTitle = title;
-      myPlot->setAxisTitle( QwtPlot::xBottom, myXTitleEnabled ? myXTitle : QString::null );
+      myPlot->setAxisTitle( QwtPlot::xBottom, myXTitleEnabled ? myXTitle : QString() );
       break;
     case YTitle:
       myYTitleEnabled = enabled;
       myYTitle = title;
-      myPlot->setAxisTitle( QwtPlot::yLeft, myYTitleEnabled ? myYTitle : QString::null );
+      myPlot->setAxisTitle( QwtPlot::yLeft, myYTitleEnabled ? myYTitle : QString() );
       break;
     case Y2Title:
       myY2TitleEnabled = enabled;
       myY2Title = title;
-      myPlot->setAxisTitle( QwtPlot::yRight, myY2TitleEnabled ? myY2Title : QString::null );
+      myPlot->setAxisTitle( QwtPlot::yRight, myY2TitleEnabled ? myY2Title : QString() );
       break;
   }
   if ( update )
index 8bd4cf307c5ae4274282a875c09be8409808cc80..60c746452ce84d94495e55d1453a0a1809868a6c 100644 (file)
@@ -71,7 +71,7 @@ QString QDS::toQString( const TCollection_ExtendedString& src )
 QString QDS::toQString( const Handle(TCollection_HAsciiString)& src )
 {
   if ( src.IsNull() )
-    return QString::null;
+    return QString();
   else
     return toQString( src->String() );
 }
@@ -84,7 +84,7 @@ QString QDS::toQString( const Handle(TCollection_HAsciiString)& src )
 QString QDS::toQString( const Handle(TCollection_HExtendedString)& src )
 {
   if ( src.IsNull() )
-    return QString::null;
+    return QString();
   else
     return toQString( src->String() );
 }
index c214bac1ac5c38b9df4187b653c2e91879fa9246..59edb25d4be56b62cf0a4ec7970927a0c316b91b 100644 (file)
@@ -63,10 +63,10 @@ public:
   static bool                       load( const QString& );
 
   static QString                    unitSystemLabel( const QString&,
-                                                     const QString& = QString::null );
-  static QString                    activeUnitSystem( const QString& = QString::null );
+                                                     const QString& = QString() );
+  static QString                    activeUnitSystem( const QString& = QString() );
   static void                       setActiveUnitSystem( const QString&,
-                                                         const QString& = QString::null );
+                                                         const QString& = QString() );
 
   static QString                    toQString( const TCollection_AsciiString& );
   static QString                    toQString( const TCollection_ExtendedString& );
index 9be0dde19f4d7ef7a38fe6da34509df46836efd3..f64c1f368347e02c3e93d782c7110911d60a39c5 100644 (file)
@@ -28,7 +28,7 @@ class QDS_EXPORT QDS_CheckBox : public QDS_Datum
   Q_OBJECT
 
 public:
-  QDS_CheckBox( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
+  QDS_CheckBox( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
   virtual ~QDS_CheckBox();
 
   bool                 isChecked() const;
index 25f4c423d536ef65d19ce103d82f700a82dfe48d..f08910ce747a96640967f45b717d6624eb474531 100644 (file)
@@ -38,7 +38,7 @@ class QDS_EXPORT QDS_ComboBox : public QDS_Datum
   Q_OBJECT
 
 public:
-  QDS_ComboBox( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
+  QDS_ComboBox( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
   virtual ~QDS_ComboBox();
 
   bool                       editable() const;
index 04b3ca1d71c5b534be67501d442ed928c63aba56..81e944e919b0bb1dd298000a9b68c30910642611 100644 (file)
@@ -1339,7 +1339,7 @@ void QDS_Datum::unitSystemChanged( const QString& unitSystem )
       labText = unitText;
     else if ( !unitText.isEmpty() )
       labText = QString( "%1 (%2)" ).arg( labText ).arg( unitText );
-    unitText = QString::null;
+    unitText = QString();
   }
 
   if ( labelWidget() )
@@ -1683,7 +1683,7 @@ QString QDS_Datum::canonicalFormat( const QString& fmt )
 QString QDS_Datum::canonicalFormat( const QString& fmt, QString& flags )
 {
   QString newFmt = fmt;
-  flags = QString::null;
+  flags = QString();
 
   QRegExp rx( "^(%[0-9]*.?[0-9]*)([a-z,A-Z]+)[g|c|d|i|o|u|x|e|f|n|p|s|X|E|G]$" );
   if ( rx.indexIn( newFmt ) >= 0 )
@@ -1720,7 +1720,7 @@ QString QDS_Datum::units( const QString& id )
 */
 QString QDS_Datum::prefix() const
 {
-  return QString::null;
+  return QString();
 }
 
 /*!
@@ -1729,7 +1729,7 @@ QString QDS_Datum::prefix() const
 */
 QString QDS_Datum::suffix() const
 {
-  return QString::null;
+  return QString();
 }
 
 /*!
@@ -1777,7 +1777,7 @@ QString QDS_Datum::maxValue() const
 */
 void QDS_Datum::invalidateCache()
 {
-  myTargetValue = QString::null;
+  myTargetValue = QString();
 }
 
 /*!
index f0748f3e9710d703c5c03fb94f71f7222ea9a73e..c42e92241e9ff38c2b39cade302859fda4603b46 100644 (file)
@@ -41,7 +41,7 @@ class QDS_EXPORT QDS_Datum : public QObject, public QDS
   class Wrapper;
 
 public:
-  QDS_Datum( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
+  QDS_Datum( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
   virtual ~QDS_Datum();
 
   QString                   id() const;
@@ -93,8 +93,8 @@ public:
   void                      setFocus();
 
   virtual bool              isValid( const bool = true, 
-                                     const QString& = QString::null,
-                                     const QString& = QString::null ) const;
+                                     const QString& = QString(),
+                                     const QString& = QString() ) const;
   virtual QValidator*       validator( const bool = false ) const;
 
   void                      addTo( QVBoxLayout* );
index 293e57eedf58b73cb0c52fac55d3b361c0f73423..8b13d6a393fa7ffb8c813cabf05b1953734bb836 100644 (file)
@@ -33,7 +33,7 @@ protected:
   class Editor;
 
 public:
-  QDS_LineEdit( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
+  QDS_LineEdit( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
   virtual ~QDS_LineEdit();
 
   virtual void         deselect();
index 32d0f6f93f88f27f8dbdcfefd797d66bfcdacd32..3863e905eb3f3236bb49d5f576bf39513b420257 100644 (file)
@@ -39,7 +39,7 @@ class QDS_EXPORT QDS_RadioBox : public QDS_Datum
   Q_OBJECT
 
 public:
-  QDS_RadioBox( const QString&, QWidget* = 0, const int = Control, const QString& = QString::null );
+  QDS_RadioBox( const QString&, QWidget* = 0, const int = Control, const QString& = QString() );
   virtual ~QDS_RadioBox();
 
   int                        count( bool = false ) const;
index f0456900e860cab9e7d73d1db16a886cece2a94a..672c4c70ffde23a297a7d4172f001d38f087f933 100644 (file)
@@ -28,7 +28,7 @@ class QDS_EXPORT QDS_SpinBox : public QDS_Datum
   Q_OBJECT
 
 public:
-  QDS_SpinBox( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
+  QDS_SpinBox( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
   virtual ~QDS_SpinBox();
 
   int              step() const;
index e801d6c5b218c4acb8b60ae9ec28d1afcb9c50b3..5181940e3936484764a69313fe642b6adcd2c07d 100644 (file)
@@ -28,7 +28,7 @@ class QDS_EXPORT QDS_SpinBoxDbl : public QDS_Datum
   Q_OBJECT
 
 public:
-  QDS_SpinBoxDbl( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
+  QDS_SpinBoxDbl( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
   virtual ~QDS_SpinBoxDbl();
 
   double            step() const;
index 469fbaa36e233b85ac57ecb3c847fe05ac31083f..9589b135c8bab948fd0acbee883118173f458cc7 100644 (file)
@@ -28,7 +28,7 @@ class QDS_EXPORT QDS_TextEdit : public QDS_Datum
   Q_OBJECT
 
 public:
-  QDS_TextEdit( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
+  QDS_TextEdit( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
   virtual ~QDS_TextEdit();
 
 signals:
index 8a086bf1deea5fcbdb916fb107cfb69f6db89f0b..bdb5a157a82a8f902cf197fe8feade9b64ca0363 100644 (file)
@@ -59,13 +59,13 @@ static QString salomeVersion()
 
   QFile vf( path );
   if ( !vf.open( QIODevice::ReadOnly ) )
-    return QString::null;
+    return QString();
 
   QString line( vf.readLine( 1024 ) );
   vf.close();
 
   if ( line.isEmpty() )
-    return QString::null;
+    return QString();
 
   while ( !line.isEmpty() && line.at( line.length() - 1 ) == QChar( '\n' ) )
     line.remove( line.length() - 1, 1 );
index ff9f9076b9673db517f3ec7ad9d1d4dfb11b0954..20fd583177902e284d443e377d8e5d958a426895 100644 (file)
@@ -113,8 +113,8 @@ public:
   int                        addGlobalPreference( const QString& );
   int                        addPreference( const QString& );
   int                        addPreference( const QString&, const int, const int = -1,
-                                           const QString& = QString::null,
-                                           const QString& = QString::null );
+                                           const QString& = QString(),
+                                           const QString& = QString() );
   QVariant                   preferenceProperty( const int, const QString& ) const;
   void                       setPreferenceProperty( const int, const QString&, 
                                                    const QVariant& );
index cef6a1a88489961cce1ff3ab3d00d72b2182d1f4..043363eb48cec78d1f50d8c2c08abebc0a76fccb 100644 (file)
@@ -125,11 +125,11 @@ public:
 
   static int               createMenu( const QString&, const int = -1,
                                       const int = -1, const int = -1, const int = -1 );
-  static int               createMenu( const QString&, const QString& = QString::null
+  static int               createMenu( const QString&, const QString& = QString()
                                       const int = -1, const int = -1, const int = -1 );
   static int               createMenu( const int,      const int = -1,
                                       const int = -1, const int = -1 );
-  static int               createMenu( const int,      const QString& = QString::null
+  static int               createMenu( const int,      const QString& = QString()
                                       const int = -1, const int = -1 );
   static int               createMenu( QtxAction*,     const int,      const int = -1, 
                                       const int = -1, const int = -1 );
@@ -139,8 +139,8 @@ public:
   static QtxAction*        createSeparator();
 
   static QtxAction*        createAction( const int, const QString&,
-                                        const QString& = QString::null, const QString& = QString::null
-                                        const QString& = QString::null, const int = 0, const bool = false );
+                                        const QString& = QString(), const QString& = QString()
+                                        const QString& = QString(), const int = 0, const bool = false );
 
   static QtxAction*        action( const int );
   static int               actionId( const QtxAction* );
@@ -169,8 +169,8 @@ public:
   static int               addPreference( const QString& );
   static int               addPreference( const QString&,
                                           const int, const int = -1,
-                                          const QString& = QString::null,
-                                         const QString& = QString::null );
+                                          const QString& = QString(),
+                                         const QString& = QString() );
   static QVariant          preferenceProperty( const int, const QString& );
   static void              setPreferenceProperty( const int, 
                                                   const QString&,
index ddc290a9f8b64287db89001750e9744092f11dae..81d76a9f1230377f5df213a37a63a755be689d94 100644 (file)
@@ -135,8 +135,8 @@ public:
   static QtxAction*        createSeparator() /ReleaseGIL/ ;
 
   static QtxAction*        createAction( const int, const QString&, 
-                                        const QString& = QString::null, const QString& = QString::null
-                                        const QString& = QString::null, const int = 0, const bool = false ) /ReleaseGIL/ ;
+                                        const QString& = QString(), const QString& = QString()
+                                        const QString& = QString(), const int = 0, const bool = false ) /ReleaseGIL/ ;
 
   static QtxAction*        action( const int ) /ReleaseGIL/ ;
   static int               actionId( const QtxAction* ) /ReleaseGIL/ ;
@@ -166,8 +166,8 @@ public:
   static int               addPreference( const QString& ) /ReleaseGIL/ ;
   static int               addPreference( const QString&,
                                           const int, const int = -1,
-                                          const QString& = QString::null,
-                                         const QString& = QString::null ) /ReleaseGIL/ ;
+                                          const QString& = QString(),
+                                         const QString& = QString() ) /ReleaseGIL/ ;
   static QVariant          preferenceProperty( const int, const QString& ) /ReleaseGIL/ ;
   static void              setPreferenceProperty( const int, 
                                                   const QString&,
index ad6f3154de203e7a8bb96244601de3f0c9849075..850c52a3b96069a5f732a89af6870a32385d67b4 100644 (file)
@@ -72,6 +72,14 @@ void SOCC_Prs::AddObject( const Handle(AIS_InteractiveObject)& obj )
   myObjects.Append( obj ); 
 }
 
+/*!
+  Remove all interactive objects
+*/
+void SOCC_Prs::Clear()
+{
+  myObjects.Clear();
+}
+
 /*!
   \return 0 if list of the interactive objects is empty [ Reimplemented from SALOME_Prs ]
 */
index 60dca4b3b7290dfb4ce5d3b7963abe3089eb005f..36435ae330469f3d34b4a3a05ccfcb6cc23481bd 100644 (file)
@@ -52,6 +52,9 @@ public:
   void AddObject( const Handle(AIS_InteractiveObject)& obj );
   // Add interactive object
 
+  void Clear();
+  // Remove all interactive objects
+
   bool IsNull() const;
   // Reimplemented from SALOME_Prs
 
index be51cafa0ba86d3f2fab7252152dfe45d9b0ad5c..234a2932e4a8fc9d5f8a8a0ce54265c9559389ab 100644 (file)
@@ -586,7 +586,7 @@ void SalomeApp_Application::onDeleteInvalidReferences()
 {
   SALOME_ListIO aList;
   LightApp_SelectionMgr* mgr = selectionMgr();
-  mgr->selectedObjects( aList, QString::null, false );
+  mgr->selectedObjects( aList, QString(), false );
 
   if( aList.IsEmpty() )
     return;
@@ -1057,7 +1057,7 @@ void SalomeApp_Application::contextMenuPopup( const QString& type, QMenu* thePop
   // Get selected objects
   SALOME_ListIO aList;
   LightApp_SelectionMgr* mgr = selectionMgr();
-  mgr->selectedObjects( aList, QString::null, false );
+  mgr->selectedObjects( aList, QString(), false );
 
   // add GUI state commands: restore, rename
   if ( aList.Extent() == 1 && aList.First()->hasEntry() && 
index 8bdc3502fff9cba048f387aa2168705ce51e91ed..1c2926425eb2a375bbae560619523c3d88f54ac3 100644 (file)
@@ -374,45 +374,9 @@ bool SalomeApp_DataObject::customSorting( const int index ) const
 bool SalomeApp_DataObject::compare( const QVariant& left, const QVariant& right, 
                                    const int index ) const
 {
-  if ( index == EntryIdx || index == RefEntryIdx ) {
-    // perform custom sorting for the "Entry" and "Reference Entry" columns
-    QString leftStr  = left.toString();
-    QString rightStr = right.toString();
-    QStringList idsLeft  = leftStr.split( ":", QString::SkipEmptyParts );
-    QStringList idsRight = rightStr.split( ":", QString::SkipEmptyParts );
-    if ( idsLeft.count() > 1 || idsRight.count() > 1 ) {
-      bool result = true;
-      bool calculated = false;
-      for ( int i = 0; i < idsLeft.count() || i < idsRight.count(); i++ ) {
-       bool okLeft = true, okRight = true;
-       int lid = 0, rid = 0;
-       if ( i < idsLeft.count() )
-         lid = idsLeft[i].toInt( &okLeft );
-       if ( i < idsRight.count() )
-         rid = idsRight[i].toInt( &okRight );
-       if ( okLeft && okRight ) {
-         // both seem to be correct integer ID
-         return lid < rid;
-       }
-       else if ( okLeft || okRight ) {
-         // objects with correct (int) ID have higher priority
-         return okLeft;
-       }
-       else {
-         // both not integer ID
-         int r = QString::localeAwareCompare( idsLeft[i], idsRight[i] ); 
-         if ( !calculated && r != 0 ) {
-           result = r < 0;
-           calculated = true;
-         }
-       }
-      }
-      // we should reach this if the entries are exactly equal
-      return result; 
-    }
-    return QString::localeAwareCompare( leftStr, rightStr ) < 0;
-  }
-  return LightApp_DataObject::compare( left, right, index );
+  // use the same custom sorting for the "Reference Entry" column as for the
+  // "Entry" column (call base implementation)
+  return LightApp_DataObject::compare( left, right, index == RefEntryIdx ? EntryIdx : index );
 }
 
 /*!
index 111284dae0dc0375abd7cac925f5a63793ff3e26..18a313b96556c3dbdb247d5319dd79491b7b4305 100755 (executable)
@@ -127,14 +127,14 @@ QString salomeVersion()
 
   QFile vf( path );
   if ( !vf.open( QIODevice::ReadOnly ) )
-    return QString::null;
+    return QString();
 
   QString line( vf.readLine( 1024 ) );
 
   vf.close();
 
   if ( line.isEmpty() )
-    return QString::null;
+    return QString();
 
   while ( !line.isEmpty() && line.at( line.length() - 1 ) == QChar( '\n' ) )
     line.remove( line.length() - 1, 1 );
@@ -219,8 +219,8 @@ public:
   static QString myExtAppVersion;
 };
 
-QString SALOME_ResourceMgr::myExtAppName    = QString::null;
-QString SALOME_ResourceMgr::myExtAppVersion = QString::null;
+QString SALOME_ResourceMgr::myExtAppName    = QString();
+QString SALOME_ResourceMgr::myExtAppVersion = QString();
 
 class SALOME_Session : public SUIT_Session
 {
@@ -321,57 +321,20 @@ int main( int argc, char **argv )
     SUIT_ResourceMgr resMgr( "SalomeApp", QString( "%1Config" ) );
     resMgr.setCurrentFormat( "xml" );
     resMgr.loadLanguage( "LightApp", "en" );
-    // ...get splash preferences
-    QString splashIcon, splashInfo, splashTextColors, splashProgressColors;
-    resMgr.value( "splash", "image",           splashIcon );
-    resMgr.value( "splash", "info",            splashInfo, false );
-    resMgr.value( "splash", "text_colors",     splashTextColors );
-    resMgr.value( "splash", "progress_colors", splashProgressColors );
-    QPixmap px( splashIcon );
-    if ( px.isNull() ) // try to get splash pixmap from resources
-      px = resMgr.loadPixmap( "LightApp", QObject::tr( "ABOUT_SPLASH" ) );
-    if ( !px.isNull() ) {
-      // ...set splash pixmap
-      splash = QtxSplash::splash( px );
-      // ...set splash text colors
-      if ( !splashTextColors.isEmpty() ) {
-       QStringList colors = splashTextColors.split( "|", QString::SkipEmptyParts );
-       QColor c1, c2;
-       if ( colors.count() > 0 ) c1 = QColor( colors[0] );
-       if ( colors.count() > 1 ) c2 = QColor( colors[1] );
-       splash->setTextColors( c1, c2 );
-      }
-      else {
-       splash->setTextColors( Qt::white, Qt::black );
-      }
-      // ...set splash progress colors
-      if ( !splashProgressColors.isEmpty() ) {
-       QStringList colors = splashProgressColors.split( "|", QString::SkipEmptyParts );
-       QColor c1, c2;
-       QtxSplash::GradientType gradType = QtxSplash::Vertical;
-       if ( colors.count() > 0 ) c1 = QColor( colors[0] );
-       if ( colors.count() > 1 ) c2 = QColor( colors[1] );
-       if ( colors.count() > 2 ) gradType = QtxSplash::GradientType( colors[2].toInt() );
-       splash->setProgressColors( c1, c2, gradType );
-      }
-      // ...set splash text font
-      QFont f = splash->font();
-      f.setBold( true );
-      splash->setFont( f );
-      // ...show splash initial status
-      if ( !splashInfo.isEmpty() ) {
-       splashInfo.replace( QRegExp( "%A" ),  QObject::tr( "APP_NAME" ) );
-       splashInfo.replace( QRegExp( "%V" ),  QObject::tr( "ABOUT_VERSION" ).arg( salomeVersion() ) );
-       splashInfo.replace( QRegExp( "%L" ),  QObject::tr( "ABOUT_LICENSE" ) );
-       splashInfo.replace( QRegExp( "%C" ),  QObject::tr( "ABOUT_COPYRIGHT" ) );
-       splashInfo.replace( QRegExp( "\\\\n" ), "\n" );
-       splash->setConstantInfo( splashInfo );
-      }
-      // ...set 'hide on click' flag
-#ifdef _DEBUG_
-      splash->setHideOnClick( true );
-#endif
-      // ...show splash
+    //
+    splash = QtxSplash::splash( QPixmap() );
+    splash->readSettings( &resMgr );
+    if ( splash->pixmap().isNull() )
+      splash->setPixmap( resMgr.loadPixmap( "LightApp", QObject::tr( "ABOUT_SPLASH" ) ) );
+    if ( splash->pixmap().isNull() ) {
+      delete splash;
+      splash = 0;
+    }
+    else {
+      splash->setOption( "%A", QObject::tr( "APP_NAME" ) );
+      splash->setOption( "%V", QObject::tr( "ABOUT_VERSION" ).arg( salomeVersion() ) );
+      splash->setOption( "%L", QObject::tr( "ABOUT_LICENSE" ) );
+      splash->setOption( "%C", QObject::tr( "ABOUT_COPYRIGHT" ) );
       splash->show();
       QApplication::instance()->processEvents();
     }
@@ -500,7 +463,8 @@ int main( int argc, char **argv )
   if ( !result ) {
     // Launch GUI activator
     if ( isGUI ) {
-      splash->setStatus( QApplication::translate( "", "Activating desktop..." ) );
+      if ( splash )
+       splash->setStatus( QApplication::translate( "", "Activating desktop..." ) );
       // ...retrieve Session interface reference
       CORBA::Object_var obj = _NS->Resolve( "/Kernel/Session" );
       SALOME::Session_var session = SALOME::Session::_narrow( obj ) ;
@@ -545,8 +509,7 @@ int main( int argc, char **argv )
          
        result = _qappl.exec();
        
-       if ( splash )
-         delete splash;
+       delete splash;
        splash = 0;
 
        if ( result == SUIT_Session::FROM_GUI ) // desktop is closed by user from GUI