diff --git a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml index b454ca7d846..72e7b8ba39d 100644 --- a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml +++ b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml @@ -68,6 +68,8 @@ Item { id: mouseRegion anchors.fill: parent + tooltip: toolTip + onShowContextMenu: delegateRoot.showContextMenu() onPressed: (mouse)=> { allowTooltip = false diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml index e390906b9f6..ae46115889b 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml @@ -5,7 +5,7 @@ import QtQuick 2.15 import QtQuick.Layouts 1.15 import HelperWidgets 2.0 -MouseArea { +ToolTipArea { id: mouseArea property bool allowTooltip: true diff --git a/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h b/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h index cd9d37ec679..3126dc00537 100644 --- a/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h +++ b/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h @@ -47,6 +47,7 @@ public: QString requiredImport() const; QString customComponentSource() const; QStringList extraFilePaths() const; + QString toolTip() const; using Property = QmlDesigner::PropertyContainer; @@ -62,6 +63,7 @@ public: void setCategory(const QString &category); void setQmlPath(const QString &qml); void setRequiredImport(const QString &requiredImport); + void setToolTip(const QString &tooltip); void addHints(const QHash &hints); void setCustomComponentSource(const QString &source); void addExtraFilePath(const QString &extraFile); diff --git a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp index a96fac3ad09..ffdf282ce1e 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp @@ -3,6 +3,7 @@ #include "itemlibraryinfo.h" #include "nodemetainfo.h" +#include "qregularexpression.h" #include @@ -32,6 +33,7 @@ public: QHash hints; QString customComponentSource; QStringList extraFilePaths; + QString toolTip; }; } // namespace Internal @@ -96,6 +98,11 @@ QStringList ItemLibraryEntry::extraFilePaths() const return m_data->extraFilePaths; } +QString ItemLibraryEntry::toolTip() const +{ + return m_data->toolTip; +} + int ItemLibraryEntry::majorVersion() const { return m_data->majorVersion; @@ -165,6 +172,16 @@ void ItemLibraryEntry::setRequiredImport(const QString &requiredImport) m_data->requiredImport = requiredImport; } +void ItemLibraryEntry::setToolTip(const QString &tooltip) +{ + static QRegularExpression regularExpressionPattern(QLatin1String("^qsTr\\(\"(.*)\"\\)$")); + const QRegularExpressionMatch match = regularExpressionPattern.match(tooltip); + if (match.hasMatch()) + m_data->toolTip = match.captured(1); + else + m_data->toolTip = tooltip; +} + void ItemLibraryEntry::addHints(const QHash &hints) { Utils::addToHash(&m_data->hints, hints); diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp index 862db6095b6..91fb7efab91 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp @@ -266,6 +266,8 @@ void MetaInfoReader::readItemLibraryEntryProperty(const QString &name, const QVa setVersion(value.toString()); } else if (name == QStringLiteral("requiredImport")) { m_currentEntry.setRequiredImport(value.toString()); + } else if (name == QStringLiteral("toolTip")) { + m_currentEntry.setToolTip(value.toString()); } else { addError(::QmlDesigner::Internal::MetaInfoReader::tr( "Unknown property for ItemLibraryEntry %1")