]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Fix for the bug 21947 WinTC5.1.4: Wrong error management of "Salome NoteBook".
authorrnv <rnv@opencascade.com>
Fri, 17 Sep 2010 05:58:36 +0000 (05:58 +0000)
committerrnv <rnv@opencascade.com>
Fri, 17 Sep 2010 05:58:36 +0000 (05:58 +0000)
src/PyConsole/PyConsole_Console.cxx
src/PyConsole/PyConsole_Console.h
src/PyConsole/PyConsole_Editor.cxx
src/PyConsole/PyConsole_Editor.h
src/SalomeApp/SalomeApp_NoteBookDlg.cxx

index fe29cafdb336589be8af50879cc383731d410141..565731b2b80f959ddd3efaf624c0ffd54d7a3526 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 71dbf58a407cc2e145a250c9e7d360855dbc2db5..917f1af982aba46d3e702ac64420a1c76f85d310 100644 (file)
@@ -62,6 +62,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 6e0f9c9c57e112ac3afb51d7bc2013f0da04b376..141d560b2e008029ca5f638365fffdf45a57e1bf 100644 (file)
@@ -201,7 +201,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 ) ); 
 }
 
 /*!
@@ -217,7 +218,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 );
@@ -271,6 +273,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 e07b86179cebca980aa191f4f0b57249fe349362..a65cf5310faeb2a3e67e615f1caced1d92ae8be7 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 );
@@ -79,6 +82,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 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));
   }