From c5bc38df6d86e16a5da87e2a23fcbd016a4fa6cb Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Mon, 5 Jul 2010 10:47:24 +0200 Subject: [PATCH] Add QDeclarativeItem as base class for NewClassWidget. --- src/libs/utils/newclasswidget.cpp | 3 +++ src/libs/utils/newclasswidget.h | 1 + src/libs/utils/newclasswidget.ui | 7 ++++++- src/plugins/cppeditor/cppclasswizard.cpp | 10 +++++++++- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/libs/utils/newclasswidget.cpp b/src/libs/utils/newclasswidget.cpp index afec2c0cf5d..bd946d70786 100644 --- a/src/libs/utils/newclasswidget.cpp +++ b/src/libs/utils/newclasswidget.cpp @@ -407,6 +407,9 @@ static inline NewClassWidget::ClassType classTypeForBaseClass(const QString &bas if (baseClass == QLatin1String("QWidget") || baseClass == QLatin1String("QMainWindow") || baseClass == QLatin1String("QDialog")) return NewClassWidget::ClassInheritsQWidget; + // Declarative Items + if (baseClass == QLatin1String("QDeclarativeItem")) + return NewClassWidget::ClassInheritsQDeclarativeItem; return NewClassWidget::NoClassType; } diff --git a/src/libs/utils/newclasswidget.h b/src/libs/utils/newclasswidget.h index 68962c2d1b9..ddf8be2886f 100644 --- a/src/libs/utils/newclasswidget.h +++ b/src/libs/utils/newclasswidget.h @@ -78,6 +78,7 @@ class QTCREATOR_UTILS_EXPORT NewClassWidget : public QWidget Q_ENUMS(ClassType) public: enum ClassType { NoClassType, ClassInheritsQObject, ClassInheritsQWidget, + ClassInheritsQDeclarativeItem, SharedDataClass }; explicit NewClassWidget(QWidget *parent = 0); diff --git a/src/libs/utils/newclasswidget.ui b/src/libs/utils/newclasswidget.ui index e23ef8ed4b0..dc3c315e86b 100644 --- a/src/libs/utils/newclasswidget.ui +++ b/src/libs/utils/newclasswidget.ui @@ -69,6 +69,11 @@ <string>Inherits QWidget</string> </property> </item> + <item> + <property name="text"> + <string>Inherits QDeclarativeItem</string> + </property> + </item> <item> <property name="text"> <string>Based on QSharedData</string> @@ -175,7 +180,7 @@ </widget> </item> <item row="8" column="1"> - <widget class="Utils::PathChooser" name="pathChooser" native="true"/> + <widget class="Utils::PathChooser" name="pathChooser"/> </item> </layout> </widget> diff --git a/src/plugins/cppeditor/cppclasswizard.cpp b/src/plugins/cppeditor/cppclasswizard.cpp index 2333cc4daff..3f7e66b56df 100644 --- a/src/plugins/cppeditor/cppclasswizard.cpp +++ b/src/plugins/cppeditor/cppclasswizard.cpp @@ -69,7 +69,8 @@ ClassNamePage::ClassNamePage(QWidget *parent) : m_newClassWidget->setBaseClassChoices(QStringList() << QString() << QLatin1String("QObject") << QLatin1String("QWidget") - << QLatin1String("QMainWindow")); + << QLatin1String("QMainWindow") + << QLatin1String("QDeclarativeItem")); m_newClassWidget->setBaseClassEditable(true); m_newClassWidget->setFormInputVisible(false); m_newClassWidget->setNamespacesEnabled(true); @@ -257,6 +258,13 @@ bool CppClassWizard::generateHeaderAndSource(const CppClassWizardParameters &par parentQObjectClass = QLatin1String("QWidget"); defineQObjectMacro = true; break; + case Utils::NewClassWidget::ClassInheritsQDeclarativeItem: + parentQObjectClass = QLatin1String("QDeclarativeItem"); + defineQObjectMacro = true; + break; + case Utils::NewClassWidget::NoClassType: + case Utils::NewClassWidget::SharedDataClass: + break; } const QString baseClass = params.baseClass.isEmpty() && params.classType != Utils::NewClassWidget::NoClassType ? -- GitLab