diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-01-23 13:46:39 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-01-25 13:51:50 +0100 |
commit | 5d2e4c29d4413166faa0ba2d70a89497d2c8829b (patch) | |
tree | fd3095692e30615aeb39d94f553cad50d416a720 | |
parent | b6d2cf156fc93421ca59c5473e09898fab9d6e33 (diff) | |
download | qttools-5d2e4c29d4413166faa0ba2d70a89497d2c8829b.tar.gz |
Qt Designer/Property Browser: Remove duplicate instance of QtCursorDatabase
It causes conflicts in CMake Unity (Jumbo) builds.
Pick-to: 6.5
Task-number: QTBUG-109394
Change-Id: Ic9e1740b360381fffaf85fc1fe1da8731852b81b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
4 files changed, 29 insertions, 28 deletions
diff --git a/src/shared/qtpropertybrowser/qteditorfactory.cpp b/src/shared/qtpropertybrowser/qteditorfactory.cpp index e53f68760..5b5aa1a69 100644 --- a/src/shared/qtpropertybrowser/qteditorfactory.cpp +++ b/src/shared/qtpropertybrowser/qteditorfactory.cpp @@ -1912,8 +1912,6 @@ void QtEnumEditorFactory::disconnectPropertyManager(QtEnumPropertyManager *manag // QtCursorEditorFactory -Q_GLOBAL_STATIC(QtCursorDatabase, cursorDatabase) - class QtCursorEditorFactoryPrivate { QtCursorEditorFactory *q_ptr; @@ -1949,7 +1947,8 @@ void QtCursorEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, con return; m_updatingEnum = true; - m_enumPropertyManager->setValue(enumProp, cursorDatabase()->cursorToValue(cursor)); + auto *cdb = QtCursorDatabase::instance(); + m_enumPropertyManager->setValue(enumProp, cdb->cursorToValue(cursor)); m_updatingEnum = false; } @@ -1965,7 +1964,8 @@ void QtCursorEditorFactoryPrivate::slotEnumChanged(QtProperty *property, int val if (!cursorManager) return; #ifndef QT_NO_CURSOR - cursorManager->setValue(prop, QCursor(cursorDatabase()->valueToCursor(value))); + auto *cdb = QtCursorDatabase::instance(); + cursorManager->setValue(prop, QCursor(cdb->valueToCursor(value))); #endif } @@ -2050,10 +2050,11 @@ QWidget *QtCursorEditorFactory::createEditor(QtCursorPropertyManager *manager, Q enumProp = d_ptr->m_propertyToEnum[property]; } else { enumProp = d_ptr->m_enumPropertyManager->addProperty(property->propertyName()); - d_ptr->m_enumPropertyManager->setEnumNames(enumProp, cursorDatabase()->cursorShapeNames()); - d_ptr->m_enumPropertyManager->setEnumIcons(enumProp, cursorDatabase()->cursorShapeIcons()); + auto *cdb = QtCursorDatabase::instance(); + d_ptr->m_enumPropertyManager->setEnumNames(enumProp, cdb->cursorShapeNames()); + d_ptr->m_enumPropertyManager->setEnumIcons(enumProp, cdb->cursorShapeIcons()); #ifndef QT_NO_CURSOR - d_ptr->m_enumPropertyManager->setValue(enumProp, cursorDatabase()->cursorToValue(manager->value(property))); + d_ptr->m_enumPropertyManager->setValue(enumProp, cdb->cursorToValue(manager->value(property))); #endif d_ptr->m_propertyToEnum[property] = enumProp; d_ptr->m_enumToProperty[enumProp] = property; diff --git a/src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp b/src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp index c43e83dce..6c2470861 100644 --- a/src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp +++ b/src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp @@ -13,8 +13,17 @@ QT_BEGIN_NAMESPACE +// Make sure icons are removed as soon as QApplication is destroyed, otherwise, +// handles are leaked on X11. +static void clearCursorDatabase() +{ + QtCursorDatabase::instance()->clear(); +} + QtCursorDatabase::QtCursorDatabase() { + qAddPostRoutine(clearCursorDatabase); + appendCursor(Qt::ArrowCursor, QCoreApplication::translate("QtCursorDatabase", "Arrow"), QIcon(QLatin1String(":/qt-project.org/qtpropertybrowser/images/cursor-arrow.png"))); appendCursor(Qt::UpArrowCursor, QCoreApplication::translate("QtCursorDatabase", "Up Arrow"), @@ -117,6 +126,13 @@ QCursor QtCursorDatabase::valueToCursor(int value) const } #endif +Q_GLOBAL_STATIC(QtCursorDatabase, cursorDatabase) + +QtCursorDatabase *QtCursorDatabase::instance() +{ + return cursorDatabase(); +} + QPixmap QtPropertyBrowserUtils::brushValuePixmap(const QBrush &b) { QImage img(16, 16, QImage::Format_ARGB32_Premultiplied); diff --git a/src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h b/src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h index 38f8672db..60d19c26d 100644 --- a/src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h +++ b/src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h @@ -40,6 +40,9 @@ public: #ifndef QT_NO_CURSOR QCursor valueToCursor(int value) const; #endif + + static QtCursorDatabase *instance(); + private: void appendCursor(Qt::CursorShape shape, const QString &name, const QIcon &icon); QStringList m_cursorNames; diff --git a/src/shared/qtpropertybrowser/qtpropertymanager.cpp b/src/shared/qtpropertybrowser/qtpropertymanager.cpp index 8d5a43ec2..f874c6193 100644 --- a/src/shared/qtpropertybrowser/qtpropertymanager.cpp +++ b/src/shared/qtpropertybrowser/qtpropertymanager.cpp @@ -6234,25 +6234,6 @@ void QtColorPropertyManager::uninitializeProperty(QtProperty *property) // QtCursorPropertyManager -// Make sure icons are removed as soon as QApplication is destroyed, otherwise, -// handles are leaked on X11. -static void clearCursorDatabase(); -namespace { -struct CursorDatabase : public QtCursorDatabase -{ - CursorDatabase() - { - qAddPostRoutine(clearCursorDatabase); - } -}; -} -Q_GLOBAL_STATIC(QtCursorDatabase, cursorDatabase) - -static void clearCursorDatabase() -{ - cursorDatabase()->clear(); -} - class QtCursorPropertyManagerPrivate { QtCursorPropertyManager *q_ptr; @@ -6330,7 +6311,7 @@ QString QtCursorPropertyManager::valueText(const QtProperty *property) const if (it == d_ptr->m_values.constEnd()) return QString(); - return cursorDatabase()->cursorToShapeName(it.value()); + return QtCursorDatabase::instance()->cursorToShapeName(it.value()); } /*! @@ -6342,7 +6323,7 @@ QIcon QtCursorPropertyManager::valueIcon(const QtProperty *property) const if (it == d_ptr->m_values.constEnd()) return QIcon(); - return cursorDatabase()->cursorToShapeIcon(it.value()); + return QtCursorDatabase::instance()->cursorToShapeIcon(it.value()); } /*! |