From 8275611766bceecf045c75a59487d46c8f8a8d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20K=C3=B6hne?= Date: Thu, 6 Jan 2022 16:03:21 +0100 Subject: Core: Remove 'properties' feature Even QtCore alone cannot be built without the properties feature since Qt 5.5. While fixing this is easy, other modules like dbus, networking are also using QObject::property() and friends liberally. All in all I doubt that anybody will miss the feature (otherwise it would have been fixed in the last decade). Change-Id: Iaf3cc20bda54ee2ff3b809fac8fa82b94ecc88c0 Reviewed-by: Lars Knoll Reviewed-by: Edward Welbourne --- src/corelib/configure.cmake | 8 +------- src/corelib/kernel/qobject.cpp | 5 ----- src/corelib/kernel/qobject.h | 2 -- src/gui/configure.cmake | 1 - src/gui/kernel/qguiapplication.cpp | 2 -- src/testlib/qtestblacklist.cpp | 2 -- src/tools/moc/generator.cpp | 6 ------ src/widgets/configure.cmake | 8 ++++---- src/widgets/dialogs/qinputdialog.cpp | 4 ---- src/widgets/itemviews/qitemdelegate.cpp | 11 ----------- src/widgets/itemviews/qstyleditemdelegate.cpp | 11 ----------- src/widgets/kernel/qwidget.cpp | 2 -- src/widgets/widgets/qwidgettextcontrol.cpp | 10 ---------- 13 files changed, 5 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake index 96b580a0b6..80cd8e9c0d 100644 --- a/src/corelib/configure.cmake +++ b/src/corelib/configure.cmake @@ -679,12 +679,6 @@ qt_feature("threadsafe-cloexec" ) qt_feature_definition("threadsafe-cloexec" "QT_THREADSAFE_CLOEXEC" VALUE "1") qt_feature_config("threadsafe-cloexec" QMAKE_PUBLIC_QT_CONFIG) -qt_feature("properties" PUBLIC - SECTION "Kernel" - LABEL "Properties" - PURPOSE "Supports scripting Qt-based applications." -) -qt_feature_definition("properties" "QT_NO_PROPERTIES" NEGATE VALUE "1") qt_feature("regularexpression" PUBLIC SECTION "Kernel" LABEL "QRegularExpression" @@ -861,7 +855,7 @@ qt_feature("animation" PUBLIC SECTION "Utilities" LABEL "Animation" PURPOSE "Provides a framework for animations." - CONDITION QT_FEATURE_properties AND QT_FEATURE_easingcurve + CONDITION QT_FEATURE_easingcurve ) qt_feature_definition("animation" "QT_NO_ANIMATION" NEGATE VALUE "1") qt_feature("gestures" PUBLIC diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index eac5f33501..8f528177d9 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -4048,8 +4048,6 @@ int QObjectPrivate::signalIndex(const char *signalName, Properties *****************************************************************************/ -#ifndef QT_NO_PROPERTIES - /*! Sets the value of the object's \a name property to \a value. @@ -4163,9 +4161,6 @@ QList QObject::dynamicPropertyNames() const return QList(); } -#endif // QT_NO_PROPERTIES - - /***************************************************************************** QObject debugging output routines. *****************************************************************************/ diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h index 08dbe0c348..ef785ddc24 100644 --- a/src/corelib/kernel/qobject.h +++ b/src/corelib/kernel/qobject.h @@ -397,13 +397,11 @@ public: void dumpObjectTree() const; void dumpObjectInfo() const; -#ifndef QT_NO_PROPERTIES bool setProperty(const char *name, const QVariant &value); QVariant property(const char *name) const; QList dynamicPropertyNames() const; QBindingStorage *bindingStorage() { return &d_ptr->bindingStorage; } const QBindingStorage *bindingStorage() const { return &d_ptr->bindingStorage; } -#endif // QT_NO_PROPERTIES Q_SIGNALS: void destroyed(QObject * = nullptr); diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake index b4625c77b4..501f49ddce 100644 --- a/src/gui/configure.cmake +++ b/src/gui/configure.cmake @@ -1158,7 +1158,6 @@ qt_feature("accessibility" PUBLIC SECTION "Utilities" LABEL "Accessibility" PURPOSE "Provides accessibility support." - CONDITION QT_FEATURE_properties ) qt_feature_definition("accessibility" "QT_NO_ACCESSIBILITY" NEGATE VALUE "1") qt_feature("multiprocess" PRIVATE diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 30c0a5fc86..6b9c122074 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -1281,7 +1281,6 @@ static void init_platform(const QString &pluginNamesWithArguments, const QString if (!QGuiApplicationPrivate::platform_theme) QGuiApplicationPrivate::platform_theme = new QPlatformTheme; -#ifndef QT_NO_PROPERTIES // Set arguments as dynamic properties on the native interface as // boolean 'foo' or strings: 'foo=bar' if (!platformArguments.isEmpty()) { @@ -1296,7 +1295,6 @@ static void init_platform(const QString &pluginNamesWithArguments, const QString } } } -#endif const auto platformIntegration = QGuiApplicationPrivate::platformIntegration(); fontSmoothingGamma = platformIntegration->styleHint(QPlatformIntegration::FontSmoothingGamma).toReal(); diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp index dd4e9fc94e..4e9934c80d 100644 --- a/src/testlib/qtestblacklist.cpp +++ b/src/testlib/qtestblacklist.cpp @@ -191,14 +191,12 @@ static QSet keywords() << "cmake" ; -#if QT_CONFIG(properties) QCoreApplication *app = QCoreApplication::instance(); if (app) { const QVariant platformName = app->property("platformName"); if (platformName.isValid()) set << platformName.toByteArray(); } -#endif return set; } diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 3f97544cf2..0f5d1a4f11 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -1022,8 +1022,6 @@ void Generator::generateMetacall() } if (cdef->propertyList.size()) { - - fprintf(out, "\n#ifndef QT_NO_PROPERTIES\n "); if (needElse) fprintf(out, "else "); fprintf(out, @@ -1032,7 +1030,6 @@ void Generator::generateMetacall() " || _c == QMetaObject::RegisterPropertyMetaType) {\n" " qt_static_metacall(this, _c, _id, _a);\n" " _id -= %d;\n }", int(cdef->propertyList.count())); - fprintf(out, "\n#endif // QT_NO_PROPERTIES"); } if (methodList.size() || cdef->propertyList.size()) fprintf(out, "\n "); @@ -1283,8 +1280,6 @@ void Generator::generateStaticMetacall() needReset |= !p.reset.isEmpty(); hasBindableProperties |= !p.bind.isEmpty(); } - fprintf(out, "\n#ifndef QT_NO_PROPERTIES\n "); - if (needElse) fprintf(out, "else "); fprintf(out, "if (_c == QMetaObject::ReadProperty) {\n"); @@ -1429,7 +1424,6 @@ void Generator::generateStaticMetacall() fprintf(out, " }\n"); } fprintf(out, " }"); - fprintf(out, "\n#endif // QT_NO_PROPERTIES"); needElse = true; } diff --git a/src/widgets/configure.cmake b/src/widgets/configure.cmake index 650c35876d..c0fadc97ec 100644 --- a/src/widgets/configure.cmake +++ b/src/widgets/configure.cmake @@ -42,7 +42,7 @@ qt_feature("style-stylesheet" PUBLIC SECTION "Styles" LABEL "QStyleSheetStyle" PURPOSE "Provides a widget style which is configurable via CSS." - CONDITION QT_FEATURE_style_windows AND QT_FEATURE_properties AND QT_FEATURE_cssparser + CONDITION QT_FEATURE_style_windows AND QT_FEATURE_cssparser ) qt_feature_definition("style-stylesheet" "QT_NO_STYLE_STYLESHEET" NEGATE VALUE "1") qt_feature("effects" PRIVATE @@ -355,7 +355,7 @@ qt_feature("textedit" PUBLIC SECTION "Widgets" LABEL "QTextEdit" PURPOSE "Supports rich text editing." - CONDITION QT_FEATURE_scrollarea AND QT_FEATURE_properties AND QT_FEATURE_widgettextcontrol + CONDITION QT_FEATURE_scrollarea AND QT_FEATURE_widgettextcontrol ) qt_feature_definition("textedit" "QT_NO_TEXTEDIT" NEGATE VALUE "1") qt_feature("syntaxhighlighter" PUBLIC @@ -468,7 +468,7 @@ qt_feature("wizard" PUBLIC SECTION "Dialogs" LABEL "QWizard" PURPOSE "Provides a framework for multi-page click-through dialogs." - CONDITION ( QT_FEATURE_dialog ) AND ( QT_FEATURE_pushbutton ) AND ( QT_FEATURE_properties ) AND ( QT_FEATURE_label ) + CONDITION ( QT_FEATURE_dialog ) AND ( QT_FEATURE_pushbutton ) AND ( QT_FEATURE_label ) ) qt_feature_definition("wizard" "QT_NO_WIZARD" NEGATE VALUE "1") qt_feature("listview" PUBLIC @@ -496,7 +496,7 @@ qt_feature("datawidgetmapper" PUBLIC SECTION "ItemViews" LABEL "QDataWidgetMapper" PURPOSE "Provides mapping between a section of a data model to widgets." - CONDITION QT_FEATURE_itemviews AND QT_FEATURE_properties + CONDITION QT_FEATURE_itemviews ) qt_feature_definition("datawidgetmapper" "QT_NO_DATAWIDGETMAPPER" NEGATE VALUE "1") qt_feature("columnview" PUBLIC diff --git a/src/widgets/dialogs/qinputdialog.cpp b/src/widgets/dialogs/qinputdialog.cpp index 7569367768..e77ae52d85 100644 --- a/src/widgets/dialogs/qinputdialog.cpp +++ b/src/widgets/dialogs/qinputdialog.cpp @@ -118,9 +118,7 @@ private slots: private: void keyPressEvent(QKeyEvent *event) override { if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) { -#ifndef QT_NO_PROPERTIES setProperty("value", property("value")); -#endif } else { QSpinBox::keyPressEvent(event); } @@ -153,9 +151,7 @@ private slots: private: void keyPressEvent(QKeyEvent *event) override { if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) { -#ifndef QT_NO_PROPERTIES setProperty("value", property("value")); -#endif } else { QDoubleSpinBox::keyPressEvent(event); } diff --git a/src/widgets/itemviews/qitemdelegate.cpp b/src/widgets/itemviews/qitemdelegate.cpp index 9d755c0b55..2640d7163d 100644 --- a/src/widgets/itemviews/qitemdelegate.cpp +++ b/src/widgets/itemviews/qitemdelegate.cpp @@ -522,10 +522,6 @@ QWidget *QItemDelegate::createEditor(QWidget *parent, void QItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { -#ifdef QT_NO_PROPERTIES - Q_UNUSED(editor); - Q_UNUSED(index); -#else QVariant v = index.data(Qt::EditRole); QByteArray n = editor->metaObject()->userProperty().name(); @@ -534,7 +530,6 @@ void QItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) con v = QVariant(editor->property(n).metaType()); editor->setProperty(n, v); } -#endif } /*! @@ -552,11 +547,6 @@ void QItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { -#ifdef QT_NO_PROPERTIES - Q_UNUSED(model); - Q_UNUSED(editor); - Q_UNUSED(index); -#else Q_D(const QItemDelegate); Q_ASSERT(model); Q_ASSERT(editor); @@ -566,7 +556,6 @@ void QItemDelegate::setModelData(QWidget *editor, model->data(index, Qt::EditRole).userType()); if (!n.isEmpty()) model->setData(index, editor->property(n), Qt::EditRole); -#endif } /*! diff --git a/src/widgets/itemviews/qstyleditemdelegate.cpp b/src/widgets/itemviews/qstyleditemdelegate.cpp index 975735eb15..ddf706c0e6 100644 --- a/src/widgets/itemviews/qstyleditemdelegate.cpp +++ b/src/widgets/itemviews/qstyleditemdelegate.cpp @@ -458,10 +458,6 @@ QWidget *QStyledItemDelegate::createEditor(QWidget *parent, */ void QStyledItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { -#ifdef QT_NO_PROPERTIES - Q_UNUSED(editor); - Q_UNUSED(index); -#else QVariant v = index.data(Qt::EditRole); QByteArray n = editor->metaObject()->userProperty().name(); @@ -470,7 +466,6 @@ void QStyledItemDelegate::setEditorData(QWidget *editor, const QModelIndex &inde v = QVariant(editor->property(n).metaType()); editor->setProperty(n, v); } -#endif } /*! @@ -487,11 +482,6 @@ void QStyledItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { -#ifdef QT_NO_PROPERTIES - Q_UNUSED(model); - Q_UNUSED(editor); - Q_UNUSED(index); -#else Q_D(const QStyledItemDelegate); Q_ASSERT(model); Q_ASSERT(editor); @@ -501,7 +491,6 @@ void QStyledItemDelegate::setModelData(QWidget *editor, model->data(index, Qt::EditRole).userType()); if (!n.isEmpty()) model->setData(index, editor->property(n), Qt::EditRole); -#endif } /*! diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 80dcadb81f..0a0957bf5e 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -9236,7 +9236,6 @@ bool QWidget::event(QEvent *event) d->renderToTextureReallyDirty = 1; #endif break; -#ifndef QT_NO_PROPERTIES case QEvent::DynamicPropertyChange: { const QByteArray &propName = static_cast(event)->propertyName(); if (propName.length() == 13 && !qstrncmp(propName, "_q_customDpi", 12)) { @@ -9254,7 +9253,6 @@ bool QWidget::event(QEvent *event) windowHandle()->setProperty(propName, property(propName)); Q_FALLTHROUGH(); } -#endif default: return QObject::event(event); } diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index ef1158b8ce..159262f953 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -1433,9 +1433,7 @@ QRectF QWidgetTextControlPrivate::rectForPosition(int position) const int cursorWidth; { bool ok = false; -#ifndef QT_NO_PROPERTIES cursorWidth = docLayout->property("cursorWidth").toInt(&ok); -#endif if (!ok) cursorWidth = 1; } @@ -2468,24 +2466,16 @@ void QWidgetTextControl::setOverwriteMode(bool overwrite) int QWidgetTextControl::cursorWidth() const { -#ifndef QT_NO_PROPERTIES Q_D(const QWidgetTextControl); return d->doc->documentLayout()->property("cursorWidth").toInt(); -#else - return 1; -#endif } void QWidgetTextControl::setCursorWidth(int width) { Q_D(QWidgetTextControl); -#ifdef QT_NO_PROPERTIES - Q_UNUSED(width); -#else if (width == -1) width = QApplication::style()->pixelMetric(QStyle::PM_TextCursorWidth, nullptr); d->doc->documentLayout()->setProperty("cursorWidth", width); -#endif d->repaintCursor(); } -- cgit v1.2.3