summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-01-31 14:58:44 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-01-31 18:38:28 +0100
commit8eba5fc5addffe15b883f6693e1b7902b28d77d2 (patch)
treebab723f8a9a73d8bc17fa322c94602cb843cd0b9
parent4b7c85dd81d96592d1c691c4bbce814f34002472 (diff)
downloadqttools-8eba5fc5addffe15b883f6693e1b7902b28d77d2.tar.gz
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 <jaroslaw.kobus@qt.io>
-rw-r--r--src/designer/src/lib/shared/plugindialog.cpp13
-rw-r--r--src/designer/src/lib/shared/plugindialog_p.h4
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 <QtGui/QClipboard>
#endif
+#include <QtCore/qdir.h>
#include <QtCore/qfileinfo.h>
#include <QtCore/qpluginloader.h>
@@ -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<QDesignerCustomWidgetCollectionInterface*>(plugin)) {
@@ -108,7 +109,7 @@ void PluginDialog::populateTreeWidget()
const QString htmlFailureReason = QLatin1String("<html><head/><body><p>")
+ failureReason.toHtmlEscaped()
+ QLatin1String("</p></body></html>");
- 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);