]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Subcontrol wrapper behaviour corrected. Methods hide(), show(), setShown() were modified.
authorstv <stv@opencascade.com>
Tue, 29 Aug 2006 11:26:38 +0000 (11:26 +0000)
committerstv <stv@opencascade.com>
Tue, 29 Aug 2006 11:26:38 +0000 (11:26 +0000)
src/QDS/QDS_Datum.cxx
src/QDS/QDS_Datum.h

index 37be33349bd0d06a116b4681838eaec6947eb337..349cbc173ee62b33e52a6e44a4ec9658b1f5a7eb 100644 (file)
@@ -45,16 +45,13 @@ public:
   QWidget*      widget() const;
   void          setWidget( QWidget* );
 
-  virtual bool  eventFilter( QObject*, QEvent* );
-
-protected:
-  virtual void  resizeEvent( QResizeEvent* );
+  virtual void  setGeometry( int x, int y, int w, int h );
+  virtual void  setSizePolicy( QSizePolicy );
 
 private:
   QWidget*      myWid;
 };
 
-
 QDS_Datum::Wrapper::Wrapper( QWidget* parent )
 : QWidget( parent ),
 myWid( 0 )
@@ -78,9 +75,6 @@ void QDS_Datum::Wrapper::setWidget( QWidget* wid )
   if ( myWid == wid )
     return;
 
-  if ( myWid )
-    myWid->removeEventFilter( this );
-
   myWid = wid;
 
   if ( !myWid )
@@ -94,27 +88,22 @@ void QDS_Datum::Wrapper::setWidget( QWidget* wid )
 
   myWid->updateGeometry();
   updateGeometry();
-
-  myWid->installEventFilter( this );
 }
 
-bool QDS_Datum::Wrapper::eventFilter( QObject* o, QEvent* e )
+void QDS_Datum::Wrapper::setSizePolicy( QSizePolicy sp )
 {
-  if ( e->type() == QEvent::Resize && o == widget() )
-  {
-    QResizeEvent* re = (QResizeEvent*)e;
-    if ( re->size() != size() )
-      resize( re->size() );
-  }
-  return QWidget::eventFilter( o, e );
+  QWidget::setSizePolicy( sp );
+
+  if ( widget() )
+    widget()->setSizePolicy( sp );
 }
 
-void QDS_Datum::Wrapper::resizeEvent( QResizeEvent* e )
+void QDS_Datum::Wrapper::setGeometry( int x, int y, int w, int h )
 {
-  QWidget::resizeEvent( e );
+  QWidget::setGeometry( x, y, w, h );
 
   if ( widget() && widget()->size() != size() )
-    widget()->resize( size() );
+    widget()->setGeometry( 0, 0, width(), height() );
 }
 
 /*!
@@ -634,10 +623,15 @@ void QDS_Datum::setEnabled( bool on )
 */
 void QDS_Datum::setShown( const bool visible, const int flags )
 {
-  if ( visible )
-    show( flags );
-  else
-    hide( flags );
+  initDatum();
+
+  uint flag = Units;
+  while ( flag )
+  {
+    if ( flags & flag && widget( flag ) )
+      widget( flag )->setShown( visible );
+    flag = flag >> 1;
+  }
 }
 
 /*!
@@ -646,14 +640,7 @@ void QDS_Datum::setShown( const bool visible, const int flags )
 */
 void QDS_Datum::show( const int element )
 {
-  initDatum();
-
-  if ( ( element & Label ) && labelWidget() )
-    labelWidget()->show();
-  if ( ( element & Units ) && unitsWidget() )
-    unitsWidget()->show();
-  if ( ( element & Control ) && controlWidget() )
-    controlWidget()->show();
+  setShown( true, element );
 }
 
 /*!
@@ -662,14 +649,7 @@ void QDS_Datum::show( const int element )
 */
 void QDS_Datum::hide( const int element )
 {
-  initDatum();
-
-  if ( ( element & Label ) && labelWidget() )
-    labelWidget()->hide();
-  if ( ( element & Units ) && unitsWidget() )
-    unitsWidget()->hide();
-  if ( ( element & Control ) && controlWidget() )
-    controlWidget()->hide();
+  setShown( false, element );
 }
 
 /*!
index e650cd213fa44c126c91d64d6078a174c58a0436..45ef3458cac5ed17c174ee5fe0ee2bbf9cd09ea7 100644 (file)
@@ -82,9 +82,9 @@ public:
   virtual bool              isEnabled( const int = Control ) const;
   virtual void              setEnabled( const bool, const int );
 
-  void                      show( const int = -1 );
-  void                      hide( const int = -1 );
-  void                      setShown( const bool, const int = -1 );
+  void                      show( const int = All );
+  void                      hide( const int = All );
+  virtual void              setShown( const bool, const int = All );
 
   QWidget*                  widget( const int ) const;
   void                      setFocus();