diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-06-21 12:21:31 (GMT) |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-06-21 12:21:31 (GMT) |
commit | ffe6fcdad9cdcd02e821b59270972a8f04b115a9 (patch) | |
tree | 63e60bb381c8c71b4fbe9ddeffa222d6da7b7547 /tools/designer/src | |
parent | e4d59c1bd1ac43b65ed8b14d41ab488b8e3782bf (diff) | |
download | Qt-ffe6fcdad9cdcd02e821b59270972a8f04b115a9.zip Qt-ffe6fcdad9cdcd02e821b59270972a8f04b115a9.tar.gz Qt-ffe6fcdad9cdcd02e821b59270972a8f04b115a9.tar.bz2 |
Designer: Prevent QButtonGroup from being added for Q3ButtonGroup.
The internal QButtonGroup used by Q3ButtonGroup interferes with
saving mechanism for QButtonGroup (introduced in 4.5).
Reviewed-by: Jarek Kobus <jkobus@trolltech.com>
Task-number: QTBUG-11431
Diffstat (limited to 'tools/designer/src')
-rw-r--r-- | tools/designer/src/lib/uilib/abstractformbuilder.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tools/designer/src/lib/uilib/abstractformbuilder.cpp b/tools/designer/src/lib/uilib/abstractformbuilder.cpp index a0c9e83..6f009e3 100644 --- a/tools/designer/src/lib/uilib/abstractformbuilder.cpp +++ b/tools/designer/src/lib/uilib/abstractformbuilder.cpp @@ -2125,6 +2125,21 @@ void QAbstractFormBuilder::saveComboBoxExtraInfo(QComboBox *comboBox, DomWidget 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::saveComboBoxExtraInfo(QComboBox *comboBox, DomWidget 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()); |