summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-01-23 13:46:39 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-01-25 13:51:50 +0100
commit5d2e4c29d4413166faa0ba2d70a89497d2c8829b (patch)
treefd3095692e30615aeb39d94f553cad50d416a720
parentb6d2cf156fc93421ca59c5473e09898fab9d6e33 (diff)
downloadqttools-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>
-rw-r--r--src/shared/qtpropertybrowser/qteditorfactory.cpp15
-rw-r--r--src/shared/qtpropertybrowser/qtpropertybrowserutils.cpp16
-rw-r--r--src/shared/qtpropertybrowser/qtpropertybrowserutils_p.h3
-rw-r--r--src/shared/qtpropertybrowser/qtpropertymanager.cpp23
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());
}
/*!