summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-08-05 13:39:22 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2016-10-12 07:57:51 +0000
commit6b6b7786cfe0a90aaed359bafb7a9be2bd0502f9 (patch)
treefc24dfd43aef81df14c7c362028fdc9773fecab1
parentce463a102fb6799b825a505cbe4b5bda3d62a369 (diff)
downloadqttools-6b6b7786cfe0a90aaed359bafb7a9be2bd0502f9.tar.gz
Qt Designer: Introduce utility function for the Qt logo icon
Add a function qtLogoIcon() returning a multi-size icon to iconloader_p.h. Adapt the plugin dialog and widget box so that the logo icon is returned for empty icon names. Task-number: QTBUG-55137 Change-Id: If6843e75577b05c3bfcedf976849eba88b914547 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r--src/designer/src/components/widgetbox/widgetboxtreewidget.cpp4
-rw-r--r--src/designer/src/lib/shared/iconloader.cpp21
-rw-r--r--src/designer/src/lib/shared/iconloader_p.h1
-rw-r--r--src/designer/src/lib/shared/plugindialog.cpp11
-rw-r--r--src/designer/src/lib/shared/plugindialog_p.h1
5 files changed, 25 insertions, 13 deletions
diff --git a/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp b/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp
index 9f82dec5e..d331617d4 100644
--- a/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp
+++ b/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp
@@ -115,7 +115,7 @@ WidgetBoxTreeWidget::WidgetBoxTreeWidget(QDesignerFormEditorInterface *core, QWi
QIcon WidgetBoxTreeWidget::iconForWidget(QString iconName) const
{
if (iconName.isEmpty())
- iconName = QLatin1String(qtLogoC);
+ return qdesigner_internal::qtLogoIcon();
if (iconName.startsWith(QLatin1String(iconPrefixC))) {
const IconCache::const_iterator it = m_pluginIcons.constFind(iconName);
@@ -652,8 +652,6 @@ WidgetBoxTreeWidget::CategoryList WidgetBoxTreeWidget::loadCustomCategoryList()
icon_name = iconPrefix;
icon_name += pluginName;
m_pluginIcons.insert(icon_name, icon);
- } else {
- icon_name = QLatin1String(qtLogoC);
}
cat.addWidget(Widget(displayName, dom_xml, icon_name, Widget::Custom));
diff --git a/src/designer/src/lib/shared/iconloader.cpp b/src/designer/src/lib/shared/iconloader.cpp
index 5259d93cc..c1c476df1 100644
--- a/src/designer/src/lib/shared/iconloader.cpp
+++ b/src/designer/src/lib/shared/iconloader.cpp
@@ -65,6 +65,27 @@ QDESIGNER_SHARED_EXPORT QIcon emptyIcon()
return QIcon(QStringLiteral(":/qt-project.org/formeditor/images/emptyicon.png"));
}
+static QIcon buildIcon(const QString &prefix, const int *sizes, size_t sizeCount)
+{
+ QIcon result;
+ for (size_t i = 0; i < sizeCount; ++i) {
+ const QString size = QString::number(sizes[i]);
+ const QPixmap pixmap(prefix + size + QLatin1Char('x') + size + QStringLiteral(".png"));
+ Q_ASSERT(!pixmap.size().isEmpty());
+ result.addPixmap(pixmap);
+ }
+ return result;
+}
+
+QDESIGNER_SHARED_EXPORT QIcon qtLogoIcon()
+{
+ static const int sizes[] = {16, 24, 32, 64};
+ static const QIcon result =
+ buildIcon(QStringLiteral(":/qt-project.org/formeditor/images/qtlogo"),
+ sizes, sizeof(sizes) / sizeof(sizes[0]));
+ return result;
+}
+
} // namespace qdesigner_internal
QT_END_NAMESPACE
diff --git a/src/designer/src/lib/shared/iconloader_p.h b/src/designer/src/lib/shared/iconloader_p.h
index bde7304cc..fe9c5ca07 100644
--- a/src/designer/src/lib/shared/iconloader_p.h
+++ b/src/designer/src/lib/shared/iconloader_p.h
@@ -56,6 +56,7 @@ namespace qdesigner_internal {
QDESIGNER_SHARED_EXPORT QIcon createIconSet(const QString &name);
QDESIGNER_SHARED_EXPORT QIcon emptyIcon();
+QDESIGNER_SHARED_EXPORT QIcon qtLogoIcon();
} // namespace qdesigner_internal
diff --git a/src/designer/src/lib/shared/plugindialog.cpp b/src/designer/src/lib/shared/plugindialog.cpp
index 8102aa872..fd69c105d 100644
--- a/src/designer/src/lib/shared/plugindialog.cpp
+++ b/src/designer/src/lib/shared/plugindialog.cpp
@@ -34,6 +34,7 @@
#include "plugindialog_p.h"
#include "pluginmanager_p.h"
+#include "iconloader_p.h"
#include <QtDesigner/QDesignerFormEditorInterface>
#include <QtDesigner/QDesignerIntegrationInterface>
@@ -134,14 +135,6 @@ void PluginDialog::populateTreeWidget()
}
}
-QIcon PluginDialog::pluginIcon(const QIcon &icon)
-{
- if (icon.isNull())
- return QIcon(QStringLiteral(":/qt-project.org/formeditor/images/qtlogo.png"));
-
- return icon;
-}
-
QTreeWidgetItem* PluginDialog::setTopLevelItem(const QString &itemName)
{
QTreeWidgetItem *topLevelItem = new QTreeWidgetItem(ui.treeWidget);
@@ -175,7 +168,7 @@ void PluginDialog::setItem(QTreeWidgetItem *pluginItem, const QString &name,
item->setText(0, name);
item->setToolTip(0, toolTip);
item->setWhatsThis(0, whatsThis);
- item->setIcon(0, pluginIcon(icon));
+ item->setIcon(0, icon.isNull() ? qtLogoIcon() : icon);
}
void PluginDialog::updateCustomWidgetPlugins()
diff --git a/src/designer/src/lib/shared/plugindialog_p.h b/src/designer/src/lib/shared/plugindialog_p.h
index d5cb36973..77060f9fe 100644
--- a/src/designer/src/lib/shared/plugindialog_p.h
+++ b/src/designer/src/lib/shared/plugindialog_p.h
@@ -64,7 +64,6 @@ private slots:
private:
void populateTreeWidget();
- QIcon pluginIcon(const QIcon &icon);
QTreeWidgetItem* setTopLevelItem(const QString &itemName);
QTreeWidgetItem* setPluginItem(QTreeWidgetItem *topLevelItem,
const QString &itemName, const QFont &font);