Bug 117973

Summary: KDualColorButton does not have parent
Product: [Applications] kst Reporter: Andrew Walker <arwalker>
Component: generalAssignee: kst
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Andrew Walker 2005-12-09 01:11:37 UTC
Version:           HEAD (using KDE KDE 3.4.0)
Installed from:    Compiled From Sources
OS:                Linux

When the user clicks on a KDualColoarButton the color selector that is launched is not parented, and so can disappear behind the dialog that it was launched from.

There are currently five KDualColorButton widgets in use in Kst.

The problem is that in the constructor of the KDualColorButton there are seperate parameters for the parent of the widget itself and the parent of the color selector when it is launched from the widget. The latter is always NULL as the KDualColorButton's are created in Qt Designer generated code, which omits the second parent parameter value.

Either we should generate these widgets in our own code or modify KDualColorButton to use the same parent for itself and the color selector.
Comment 1 George Staikos 2005-12-19 17:30:12 UTC
SVN commit 489731 by staikos:

try hard to set a parent for the dialog so it doesn't fall behind when created
by designer.
BUG: 117973


 M  +5 -1      kdualcolorbutton.cpp  
 M  +2 -0      kdualcolorbutton.h  


--- branches/KDE/3.5/kdelibs/kdeui/kdualcolorbutton.cpp #489730:489731
@@ -36,7 +36,11 @@
   : QWidget(parent, name),
     d (new KDualColorPrivate)
 {
-    d->dialogParent = dialogParent;
+    if (!dialogParent && parent) {
+	d->dialogParent = parent;
+    } else {
+	d->dialogParent = dialogParent;
+    }
 
     arrowBitmap = new QBitmap(dcolorarrow_width, dcolorarrow_height,
                               (const unsigned char *)dcolorarrow_bits, true);
--- branches/KDE/3.5/kdelibs/kdeui/kdualcolorbutton.h #489730:489731
@@ -61,6 +61,8 @@
      * Constructs a new KDualColorButton using the default black and white
      * colors.
      *
+     * As of KDE 3.5, sets the dialog parent to the same as "parent" if that
+     * argument is non-null.
      */
     KDualColorButton(QWidget *parent=0, const char *name=0, QWidget* dialogParent=0);