[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kdeui/widgets
From:       Roberto Raggi <roberto () kdevelop ! org>
Date:       2007-03-26 11:31:25
Message-ID: 1174908685.696231.20225.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 646640 by raggi:

QWidget::show() is not virtual in Qt 4.x :-)


 M  +26 -27    kcompletionbox.cpp  
 M  +1 -6      kcompletionbox.h  


--- trunk/KDE/kdelibs/kdeui/widgets/kcompletionbox.cpp #646639:646640
@@ -317,38 +317,37 @@
     }
 }
 
-void KCompletionBox::show()
+void KCompletionBox::setVisible( bool visible )
 {
-    d->upwardBox = false;
-    if ( d->m_parent ) {
-        sizeAndPosition();
-        qApp->installEventFilter( this );
-    }
+    if (visible) {
+        d->upwardBox = false;
+        if ( d->m_parent ) {
+            sizeAndPosition();
+            qApp->installEventFilter( this );
+        }
 
-    // ### we shouldn't need to call this, but without this, the scrollbars
-    // are pretty b0rked.
-    //triggerUpdate( true );
+        // ### we shouldn't need to call this, but without this, the scrollbars
+        // are pretty b0rked.
+        //triggerUpdate( true );
 
-    // Workaround for I'm not sure whose bug - if this KCompletionBox' parent
-    // is in a layout, that layout will detect inserting new child (posted
-    // ChildInserted event), and will trigger relayout (post LayoutHint event).
-    // QWidget::show() sends also posted ChildInserted events for the parent,
-    // and later all LayoutHint events, which causes layout updating.
-    // The problem is, KCompletionBox::eventFilter() detects resizing
-    // of the parent, and calls hide() - and this hide() happen in the middle
-    // of show(), causing inconsistent state. I'll try to submit a Qt patch too.
-    qApp->sendPostedEvents();
-    KListWidget::show();
+        // Workaround for I'm not sure whose bug - if this KCompletionBox' parent
+        // is in a layout, that layout will detect inserting new child (posted
+        // ChildInserted event), and will trigger relayout (post LayoutHint event).
+        // QWidget::show() sends also posted ChildInserted events for the parent,
+        // and later all LayoutHint events, which causes layout updating.
+        // The problem is, KCompletionBox::eventFilter() detects resizing
+        // of the parent, and calls hide() - and this hide() happen in the middle
+        // of show(), causing inconsistent state. I'll try to submit a Qt patch too.
+        qApp->sendPostedEvents();
+    } else {
+        if ( d->m_parent )
+            qApp->removeEventFilter( this );
+        d->cancelText.clear();
+    }
+  
+    KListWidget::setVisible(visible);
 }
 
-void KCompletionBox::hide()
-{
-    if ( d->m_parent )
-        qApp->removeEventFilter( this );
-    d->cancelText.clear();
-    KListWidget::hide();
-}
-
 QRect KCompletionBox::calculateGeometry() const
 {
     int x = 0, y = 0;
--- trunk/KDE/kdelibs/kdeui/widgets/kcompletionbox.h #646639:646640
@@ -179,13 +179,8 @@
     /**
      * Re-implemented for internal reasons.  API is unaffected.
      */
-    virtual void show();
+    virtual void setVisible( bool visible );
 
-    /**
-     * Re-implemented for internal reasons.  API is unaffected.
-     */
-    virtual void hide();
-
 Q_SIGNALS:
     /**
      * Emitted when an item was selected, contains the text of
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic