tools/designer/src/lib/uilib/abstractformbuilder.cpp
changeset 33 3e2da88830cd
parent 18 2f34d5167611
--- a/tools/designer/src/lib/uilib/abstractformbuilder.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/tools/designer/src/lib/uilib/abstractformbuilder.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -2125,6 +2125,21 @@
     ui_widget->setElementItem(ui_items);
 }
 
+// Return the buttongroups assigned to a button except the internal one
+// (with empty object name) used by Q3ButtonGroup.
+static inline const QButtonGroup *formButtonGroup(const QAbstractButton *widget)
+{
+    const QButtonGroup *buttonGroup = widget->group();
+    if (!buttonGroup)
+        return 0;
+    if (buttonGroup->objectName().isEmpty()) {
+        if (const QWidget *parent = widget->parentWidget())
+            if (!qstrcmp(parent->metaObject()->className(), "Q3ButtonGroup"))
+                return 0;
+    }
+    return buttonGroup;
+}
+
 /*!
     \internal
     \since 4.5
@@ -2133,7 +2148,7 @@
 void QAbstractFormBuilder::saveButtonExtraInfo(const QAbstractButton *widget, DomWidget *ui_widget, DomWidget *)
 {
     typedef QList<DomProperty*> DomPropertyList;
-    if (const QButtonGroup *buttonGroup = widget->group()) {
+    if (const QButtonGroup *buttonGroup = formButtonGroup(widget)) {
         DomPropertyList attributes = ui_widget->elementAttribute();
         DomString *domString = new DomString();
         domString->setText(buttonGroup->objectName());