]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Merge from BR_WIN_INDUS_514 04/10/2010 V5_1_5a1
authorvsr <vsr@opencascade.com>
Mon, 4 Oct 2010 12:56:08 +0000 (12:56 +0000)
committervsr <vsr@opencascade.com>
Mon, 4 Oct 2010 12:56:08 +0000 (12:56 +0000)
src/LightApp/LightApp_SelectionMgr.cxx
src/OCCViewer/OCCViewer_CreateRestoreViewDlg.cxx
src/PyConsole/PyConsole_Console.cxx
src/PyConsole/PyConsole_Console.h
src/PyConsole/PyConsole_Editor.cxx
src/PyConsole/PyConsole_Editor.h
src/Qtx/QtxMainWindow.cxx
src/SUIT/SUIT_SelectionMgr.cxx
src/SalomeApp/SalomeApp_NoteBookDlg.cxx

index 397cfaebc624c1a9911b3a3ae6083e3f1c28517c..a7b9b17d20ac0d3446daa93781ea1ed1fe028180 100644 (file)
@@ -176,7 +176,7 @@ void LightApp_SelectionMgr::selectionChanged( SUIT_Selector* theSel )
 /*!
   get map of indexes for the given SALOME_InteractiveObject
 */
-void LightApp_SelectionMgr::GetIndexes( const Handle(SALOME_InteractiveObject)& IObject, 
+void LightApp_SelectionMgr::GetIndexes( const Handle(SALOME_InteractiveObject)& IObject,
                                         TColStd_IndexedMapOfInteger& theIndex)
 {
   theIndex.Clear();
@@ -186,12 +186,10 @@ void LightApp_SelectionMgr::GetIndexes( const Handle(SALOME_InteractiveObject)&
 
   for ( SUIT_DataOwnerPtrList::const_iterator itr = aList.begin(); itr != aList.end(); ++itr )
   {
-    const LightApp_DataSubOwner* subOwner = dynamic_cast<const LightApp_DataSubOwner*>( (*itr).operator->() );
-    if ( subOwner )
-      if ( subOwner->entry() == QString(IObject->getEntry()) )
-        theIndex.Add( subOwner->index() );
+    LightApp_DataSubOwner* subOwner = dynamic_cast<LightApp_DataSubOwner*>( (*itr).operator->() );
+    if ( subOwner && subOwner->entry() == QString(IObject->getEntry()) )
+      theIndex.Add( subOwner->index() );
   }
-  
 }
 
 /*!
@@ -223,12 +221,12 @@ void LightApp_SelectionMgr::AddOrRemoveIndex( const Handle(SALOME_InteractiveObj
                                               bool modeShift)
 {
   SUIT_DataOwnerPtrList remainsOwners;
-  
+
   SUIT_DataOwnerPtrList aList;
   selected( aList );
-  
+
   QString ioEntry (IObject->getEntry());
-  
+
   if ( !modeShift ) {
     for ( SUIT_DataOwnerPtrList::const_iterator itr = aList.begin(); itr != aList.end(); ++itr )
     {
@@ -253,7 +251,7 @@ void LightApp_SelectionMgr::AddOrRemoveIndex( const Handle(SALOME_InteractiveObj
   It.Initialize(theIndexes);
   for(;It.More();It.Next())
     remainsOwners.append( new LightApp_DataSubOwner( ioEntry, It.Key() ) );
-  
+
   bool append = false;
   setSelected( remainsOwners, append );
 
@@ -268,7 +266,7 @@ void LightApp_SelectionMgr::AddOrRemoveIndex( const Handle(SALOME_InteractiveObj
 /*!
   select 'subobjects' with given indexes
 */
-void LightApp_SelectionMgr::selectObjects( const Handle(SALOME_InteractiveObject)& IObject, 
+void LightApp_SelectionMgr::selectObjects( const Handle(SALOME_InteractiveObject)& IObject,
                                             TColStd_IndexedMapOfInteger theIndex, bool append )
 {
   SUIT_DataOwnerPtrList aList;
@@ -294,7 +292,7 @@ void LightApp_SelectionMgr::selectObjects( MapIOOfMapOfInteger theMapIO, bool ap
   SUIT_DataOwnerPtrList aList;
 
   MapIOOfMapOfInteger::Iterator it(theMapIO);
-  for ( ; it.More(); it.Next() ) 
+  for ( ; it.More(); it.Next() )
     {
       if ( it.Value().IsEmpty() )
         aList.append( new LightApp_DataOwner( QString(it.Key()->getEntry()) ) );
@@ -305,7 +303,7 @@ void LightApp_SelectionMgr::selectObjects( MapIOOfMapOfInteger theMapIO, bool ap
             aList.append( new LightApp_DataSubOwner( QString(it.Key()->getEntry()), it.Value()( i ) ) );
         }
     }
-  
+
   setSelected( aList, append );
 
 }
@@ -326,13 +324,13 @@ void LightApp_SelectionMgr::selectedSubOwners( MapEntryOfMapOfInteger& theMap )
   {
     const LightApp_DataSubOwner* subOwner =
       dynamic_cast<const LightApp_DataSubOwner*>( (*itr).operator->() );
-    if ( subOwner ) 
+    if ( subOwner )
     {
-#ifndef WNT
+//#ifndef WNT
       if ( !theMap.IsBound( TCollection_AsciiString(subOwner->entry().toLatin1().data()) ) )
-#else
-      if ( !theMap.IsBound( subOwner->entry().toLatin1().data() ) )
-#endif
+//#else
+//      if ( !theMap.IsBound( subOwner->entry().toLatin1().data() ) )
+//#endif
       {
         anIndexes.Clear();
         //Bug 17269: GetIndexes( subOwner->entry(), anIndexes );
index 574e7de739c54280bad193e7d170a855b800a9d0..95a4a96daa91ea92bda004879c1bcb01312202f6 100755 (executable)
@@ -181,25 +181,38 @@ viewAspect OCCViewer_CreateRestoreViewDlg::currentItem() const
 */
 void OCCViewer_CreateRestoreViewDlg::deleteSelectedItems()
 {
-  if( myListBox->count() )
+  QList<QListWidgetItem*> selectedItems = myListBox->selectedItems();
+  if( myListBox->count() && selectedItems.count())
   {
     int curIndex = -1;
-    for( int i = 0; i < (int)myListBox->count(); i++ )
-      if( myListBox->item( i )->isSelected() && ( myListBox->item( i )->flags() & Qt::ItemIsEditable ) )
+    // Iterate by all selected items
+    for(int i = 0; i < selectedItems.count(); i++) 
+    {
+      QListWidgetItem* item =  selectedItems.at(i);
+      // get position of the selected item in the list
+      int position = myListBox->row(item);
+
+      //Calculate current index in case if "item" is last selected item.
+      if(i == selectedItems.count() - 1)
       {
-        QListWidgetItem* anItemToDelete = myListBox->takeItem( i );
-        delete anItemToDelete;
-        for( int j = i; j < (int)myParametersMap.count(); j++ )
-          if( j != myParametersMap.count() - 1 )
-            myParametersMap[ j ] = myParametersMap[ j + 1 ];
-          else
-            myParametersMap.removeAt( j );
-        if( i != myListBox->count() )
-          curIndex = i;
-        else
-          curIndex = i - 1;
-        i--;
+       if(position != myListBox->count() - 1)
+         curIndex = position;
+       else 
+         curIndex = position - 1;
       }
+
+      //Delete item
+      delete item;
+
+      //Shift parameters in the map
+      for( int j = position; j < (int)myParametersMap.count(); j++ )
+      {
+       if( j != myParametersMap.count() - 1 )
+         myParametersMap[ j ] = myParametersMap[ j + 1 ];
+       else
+         myParametersMap.removeAt( j );
+      }
+    }
     if( curIndex >= 0 )
     {
       myListBox->setCurrentItem( myListBox->item( curIndex ) );
@@ -208,8 +221,7 @@ void OCCViewer_CreateRestoreViewDlg::deleteSelectedItems()
   }
   if( !myListBox->count() )
   {
-    myListBox->clear();
-    myListBox->insertItem( 0, "No Items" );
+    clearList();
   }
 }
 
@@ -220,8 +232,10 @@ void OCCViewer_CreateRestoreViewDlg::clearList()
 {
   myListBox->clear();
   myListBox->insertItem( 0, "No Items" );
-  
   myParametersMap.clear();
+       
+  //Clear view
+  myCurViewPort->reset();
 }
 
 /*!
index bae6451573514130de4b4b8add0a7ac53d2a905c..4abd2af8e45f8455c1b262c56063b7a65fbca872 100644 (file)
@@ -128,6 +128,30 @@ void PyConsole_Console::setIsSync( const bool on )
   myEditor->setIsSync( on );
 }
 
+/*!
+  \brief Get suppress output flag value.
+  
+  \sa setIsSuppressOutput()
+  \return True if python console output is suppressed.
+*/
+bool PyConsole_Console::isSuppressOutput() const
+{
+  return myEditor->isSuppressOutput();
+}
+
+/*!
+  \brief Set suppress output flag value.
+
+  In case if suppress output flag is true, the python 
+  console output suppressed.
+
+  \param on suppress output flag
+*/
+void PyConsole_Console::setIsSuppressOutput( const bool on )
+{
+  myEditor->setIsSuppressOutput(on);
+}
+
 /*!
   \brief Change the python console's font.
   \param f new font
index 0666396fc0b0e219c39c027a7955c0742ee3a5b3..8833039fb77620e3bd6fc25da6daddf7d4a62121 100644 (file)
@@ -63,6 +63,10 @@ public:
   bool                isSync() const;
   void                setIsSync( const bool );
 
+  bool                isSuppressOutput() const;
+  void                setIsSuppressOutput( const bool );
+
+
   void                exec( const QString& );
   void                execAndWait( const QString& );
 
index c622c66a833e77a9b5339c12ba3d7d755187eb97..54496b36fb836d75b3def6227d2eefa5020d9818 100644 (file)
@@ -226,7 +226,8 @@ private:
 
 void staticCallback( void* data, char* c )
 {
-  QApplication::postEvent( (PyConsole_Editor*)data, new PrintEvent( c ) ); 
+       if(!((PyConsole_Editor*)data)->isSuppressOutput())
+               QApplication::postEvent( (PyConsole_Editor*)data, new PrintEvent( c ) ); 
 }
 
 /*!
@@ -242,7 +243,8 @@ PyConsole_Editor::PyConsole_Editor( PyConsole_Interp* theInterp,
   myInterp( 0 ),
   myCmdInHistory( -1 ),
   myEventLoop( 0 ),
-  myIsSync( false )
+  myIsSync( false ),
+  myIsSuppressOutput(false)
 {
   QString fntSet( "" );
   QFont aFont = SUIT_Tools::stringToFont( fntSet );
@@ -296,6 +298,30 @@ void PyConsole_Editor::setIsSync( const bool on )
   myIsSync = on;
 }
 
+/*!
+  \brief Get suppress output flag value.
+  
+  \sa setIsSuppressOutput()
+  \return True if python console output is suppressed.
+*/
+bool PyConsole_Editor::isSuppressOutput() const
+{
+  return myIsSuppressOutput;
+}
+
+/*!
+  \brief Set suppress output flag value.
+
+  In case if suppress output flag is true, the python 
+  console output suppressed.
+
+  \param on suppress output flag
+*/
+void PyConsole_Editor::setIsSuppressOutput( const bool on )
+{
+  myIsSuppressOutput = on;
+}
+
 /*!
   \brief Put the string \a str to the python editor.
   \param str string to be put in the command line of the editor
index ae381467cd62b4413b2beae111fadd3ae06fcf19..6f8eba127022819d7c3b487121d08a2c013e08c5 100644 (file)
@@ -52,6 +52,9 @@ public:
   bool           isSync() const;
   void           setIsSync( const bool );
 
+  bool           isSuppressOutput() const;
+  void           setIsSuppressOutput(const bool);
+
 protected:
   virtual void   dropEvent( QDropEvent* event );
   virtual void   mouseReleaseEvent( QMouseEvent* event );
@@ -80,6 +83,7 @@ private:
   QString           myBanner;           //!< current banner
   QStringList       myQueue;            //!< python commands queue
   bool              myIsSync;           //!< synchronous mode flag
+  bool              myIsSuppressOutput; //!< suppress output flag
 };
 
 #endif // PYCONSOLE_EDITOR_H
index 75abd996ffb0d589067f7b701ca34943fbd7743f..d3cb7662132e88a58f3ae74990fbe4a07355337f 100644 (file)
@@ -110,6 +110,9 @@ QtxMainWindow::QtxMainWindow( QWidget* parent, Qt::WindowFlags f )
   myMenuBar( 0 ),
   myStatusBar( 0 )
 {
+       //rnv: Enables tooltips for inactive windows.
+       //rnv: For details see http://bugtracker.opencascade.com/show_bug.cgi?id=20893
+       setAttribute(Qt::WA_AlwaysShowToolTips);
 }
 
 /*!
index 042631603c8c3bb2e7041264afd8ab8ff147802e..5ab6c9b9d57da19538597a2791f4daa8ef272148 100755 (executable)
@@ -96,6 +96,8 @@ void SUIT_SelectionMgr::selected( SUIT_DataOwnerPtrList& lst, const QString& typ
 
   for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
+       if ( !(*it)->isEnabled() )
+         continue;
     if ( !type.isEmpty() && (*it)->type() != type )
       continue;
 
index 061976175d2eb6faa7ac102857c25069a162ae8d..9ab2640d25d131e752c6836245c1119f7e9c3c71 100644 (file)
@@ -301,7 +301,12 @@ bool NoteBook_TableRow::IsValidStringValue(const QString theValue)
     command += "\", ";
   }
   command += ") ";
+
+  //rnv: fix for bug 21947 WinTC5.1.4: Wrong error management of "Salome NoteBook"
+  bool oldSuppressValue = pyConsole->isSuppressOutput();
+  pyConsole->setIsSuppressOutput(true);        
   bool aResult = pyInterp->run(command.c_str());
+  pyConsole->setIsSuppressOutput(oldSuppressValue);    
   return !aResult;
 }
 
@@ -472,7 +477,13 @@ bool NoteBook_Table::IsValid() const
       command += "\",";
     }
   command += ")";
+
+  //rnv: fix for bug 21947 WinTC5.1.4: Wrong error management of "Salome NoteBook"
+  bool oldSuppressValue = pyConsole->isSuppressOutput();
+  pyConsole->setIsSuppressOutput(true);        
   bool aResult = pyInterp->run(command.c_str());
+  pyConsole->setIsSuppressOutput(oldSuppressValue);    
+
   return !aResult;
 }
 
@@ -481,7 +492,7 @@ bool NoteBook_Table::IsValid() const
  *  Purpose  : renumber row items
  */
 //============================================================================
-void NoteBook_Table::RenamberRowItems(){
+void NoteBook_Table::RenamberRowItems() {
   for(int i=0; i<myRows.size();i++){
     myRows[i]->GetHeaderItem()->setText(QString::number(i+1));
   }