From 98e5639f78302d16b4d93b3f20dd2f546ab25074 Mon Sep 17 00:00:00 2001 From: Samuel Ghinet Date: Wed, 13 Oct 2021 09:04:16 +0300 Subject: [PATCH] Make use of font icons for the wizards Qt Design Studio will be using font icons to display project types (wizards) in the New Project dialog box, rather than .png icons. The unicode values will be saved in the wizard.json files as "fontIconCode". We need a way to access that value in code. Task-number: QDS-4490 Change-Id: I5dbcc522a707c288ee1f05ab6ec1cb24bcd75025 Reviewed-by: Eike Ziller --- src/plugins/coreplugin/iwizardfactory.h | 3 +++ src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/plugins/coreplugin/iwizardfactory.h b/src/plugins/coreplugin/iwizardfactory.h index 1e27ec6c900..0cb1b96d43b 100644 --- a/src/plugins/coreplugin/iwizardfactory.h +++ b/src/plugins/coreplugin/iwizardfactory.h @@ -64,6 +64,7 @@ public: Utils::Id id() const { return m_id; } WizardKind kind() const { return m_supportedProjectTypes.isEmpty() ? FileWizard : ProjectWizard; } QIcon icon() const { return m_icon; } + QString fontIcondCode() const { return m_fontIconCode; } QString description() const { return m_description; } QString displayName() const { return m_displayName; } QString category() const { return m_category; } @@ -78,6 +79,7 @@ public: void setId(const Utils::Id id) { m_id = id; } void setSupportedProjectTypes(const QSet &projectTypes) { m_supportedProjectTypes = projectTypes; } void setIcon(const QIcon &icon, const QString &iconText = {}); + void setFontIconCode(const QString &code) { m_fontIconCode = code; } void setDescription(const QString &description) { m_description = description; } void setDisplayName(const QString &displayName) { m_displayName = displayName; } void setCategory(const QString &category) { m_category = category; } @@ -135,6 +137,7 @@ private: QAction *m_action = nullptr; QIcon m_icon; + QString m_fontIconCode; QString m_description; QString m_displayName; QString m_category; diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp index 1c8c710743c..31155c276c0 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp @@ -72,6 +72,7 @@ const char CATEGORY_NAME_KEY[] = "trDisplayCategory"; const char DISPLAY_NAME_KEY[] = "trDisplayName"; const char ICON_KEY[] = "icon"; const char ICON_TEXT_KEY[] = "iconText"; +const char FONT_ICON_CODE_KEY[] = "fontIconCode"; const char IMAGE_KEY[] = "image"; const char ICON_KIND_KEY[] = "iconKind"; const char DESCRIPTION_KEY[] = "trDescription"; @@ -737,6 +738,9 @@ bool JsonWizardFactory::initialize(const QVariantMap &data, const FilePath &base : QIcon(iconPath.toString()), iconText); + const QString fontIconCode = data.value(QLatin1String(FONT_ICON_CODE_KEY)).toString(); + setFontIconCode(fontIconCode); + strVal = data.value(QLatin1String(IMAGE_KEY)).toString(); if (!strVal.isEmpty()) { const FilePath imagePath = baseDir.resolvePath(strVal);