From 8eba5fc5addffe15b883f6693e1b7902b28d77d2 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 31 Jan 2023 14:58:44 +0100 Subject: Qt Designer: Add tool tip with file name and date to the plugin dialog This comes in handy when developing custom plugins. Pick-to: 6.5 Change-Id: I2b98c69ec1f898f264e28957387fbab5a24d6764 Reviewed-by: Jarek Kobus --- src/designer/src/lib/shared/plugindialog.cpp | 13 +++++++++---- src/designer/src/lib/shared/plugindialog_p.h | 4 +++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/designer/src/lib/shared/plugindialog.cpp b/src/designer/src/lib/shared/plugindialog.cpp index 5dfd10476..dda523b7c 100644 --- a/src/designer/src/lib/shared/plugindialog.cpp +++ b/src/designer/src/lib/shared/plugindialog.cpp @@ -22,6 +22,7 @@ # include #endif +#include #include #include @@ -84,7 +85,7 @@ void PluginDialog::populateTreeWidget() QPluginLoader loader(fileName); const QFileInfo fileInfo(fileName); - QTreeWidgetItem *pluginItem = setPluginItem(topLevelItem, fileInfo.fileName(), boldFont); + QTreeWidgetItem *pluginItem = setPluginItem(topLevelItem, fileInfo, boldFont); if (QObject *plugin = loader.instance()) { if (const QDesignerCustomWidgetCollectionInterface *c = qobject_cast(plugin)) { @@ -108,7 +109,7 @@ void PluginDialog::populateTreeWidget() const QString htmlFailureReason = QLatin1String("

") + failureReason.toHtmlEscaped() + QLatin1String("

"); - QTreeWidgetItem *pluginItem = setPluginItem(topLevelItem, plugin, boldFont); + QTreeWidgetItem *pluginItem = setPluginItem(topLevelItem, QFileInfo(plugin), boldFont); auto errorItem = setItem(pluginItem, failureReason, htmlFailureReason, QString(), QIcon()); errorItem->setData(0, ErrorItemRole, QVariant(true)); @@ -138,11 +139,15 @@ QTreeWidgetItem* PluginDialog::setTopLevelItem(const QString &itemName) } QTreeWidgetItem* PluginDialog::setPluginItem(QTreeWidgetItem *topLevelItem, - const QString &itemName, const QFont &font) + const QFileInfo &file, const QFont &font) { QTreeWidgetItem *pluginItem = new QTreeWidgetItem(topLevelItem); + QString toolTip = QDir::toNativeSeparators(file.absoluteFilePath()); + if (file.exists()) + toolTip += u'\n' + file.lastModified().toString(); pluginItem->setFont(0, font); - pluginItem->setText(0, itemName); + pluginItem->setText(0, file.fileName()); + pluginItem->setToolTip(0, toolTip); pluginItem->setExpanded(true); pluginItem->setIcon(0, style()->standardPixmap(QStyle::SP_DirOpenIcon)); diff --git a/src/designer/src/lib/shared/plugindialog_p.h b/src/designer/src/lib/shared/plugindialog_p.h index 99d44cfa1..cbdad6019 100644 --- a/src/designer/src/lib/shared/plugindialog_p.h +++ b/src/designer/src/lib/shared/plugindialog_p.h @@ -19,6 +19,8 @@ QT_BEGIN_NAMESPACE +class QFileInfo; + class QDesignerFormEditorInterface; namespace qdesigner_internal { @@ -37,7 +39,7 @@ private: void populateTreeWidget(); QTreeWidgetItem* setTopLevelItem(const QString &itemName); QTreeWidgetItem* setPluginItem(QTreeWidgetItem *topLevelItem, - const QString &itemName, const QFont &font); + const QFileInfo &file, const QFont &font); QTreeWidgetItem *setItem(QTreeWidgetItem *pluginItem, const QString &name, const QString &toolTip, const QString &whatsThis, const QIcon &icon); -- cgit v1.2.1