diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-08-05 13:39:22 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-10-12 07:57:51 +0000 |
commit | 6b6b7786cfe0a90aaed359bafb7a9be2bd0502f9 (patch) | |
tree | fc24dfd43aef81df14c7c362028fdc9773fecab1 | |
parent | ce463a102fb6799b825a505cbe4b5bda3d62a369 (diff) | |
download | qttools-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.cpp | 4 | ||||
-rw-r--r-- | src/designer/src/lib/shared/iconloader.cpp | 21 | ||||
-rw-r--r-- | src/designer/src/lib/shared/iconloader_p.h | 1 | ||||
-rw-r--r-- | src/designer/src/lib/shared/plugindialog.cpp | 11 | ||||
-rw-r--r-- | src/designer/src/lib/shared/plugindialog_p.h | 1 |
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); |