diff --git a/src/libs/utils/fsengine/fileiconprovider.cpp b/src/libs/utils/fsengine/fileiconprovider.cpp index 41c1f727c6a..9d2a7c8c050 100644 --- a/src/libs/utils/fsengine/fileiconprovider.cpp +++ b/src/libs/utils/fsengine/fileiconprovider.cpp @@ -93,6 +93,13 @@ public: }); } + void registerIconForMimeType(const QIcon &icon, const QString &mimeName) + { + // avoid accessing the MIME database right away + m_mimeUpdater.append( + [this, icon, mimeName] { addIconForMimeType(icon, Utils::mimeTypeForName(mimeName)); }); + } + void registerIconOverlayForMimeType(const QString &iconFilePath, const QString &mimeName) { // avoid accessing the MIME database right away @@ -123,6 +130,13 @@ private: registerIconOverlayForSuffix(iconFilePath, suffix); } + void addIconForMimeType(const QIcon &icon, const Utils::MimeType &mimeType) + { + const QStringList suffixes = mimeType.suffixes(); + for (const QString &suffix : suffixes) + m_suffixCache.insert(suffix, icon); + } + void ensureMimeOverlays() const { for (const std::function &f : m_mimeUpdater) @@ -306,6 +320,11 @@ void registerIconOverlayForMimeType(const QIcon &icon, const QString &mimeType) instance()->registerIconOverlayForMimeType(icon, mimeType); } +void registerIconForMimeType(const QIcon &icon, const QString &mimeType) +{ + instance()->registerIconForMimeType(icon, mimeType); +} + /*! \internal \overload diff --git a/src/libs/utils/fsengine/fileiconprovider.h b/src/libs/utils/fsengine/fileiconprovider.h index 60479220cd8..5db70e62587 100644 --- a/src/libs/utils/fsengine/fileiconprovider.h +++ b/src/libs/utils/fsengine/fileiconprovider.h @@ -37,6 +37,8 @@ QTCREATOR_UTILS_EXPORT void registerIconOverlayForMimeType(const QIcon &icon, QTCREATOR_UTILS_EXPORT QIcon directoryIcon(const QString &overlay); +QTCREATOR_UTILS_EXPORT void registerIconForMimeType(const QIcon &icon, const QString &mimeType); + } // namespace FileIconProvider } // namespace Utils diff --git a/src/plugins/compilerexplorer/compilerexplorerplugin.cpp b/src/plugins/compilerexplorer/compilerexplorerplugin.cpp index 4063814e6ca..f6670df80ad 100644 --- a/src/plugins/compilerexplorer/compilerexplorerplugin.cpp +++ b/src/plugins/compilerexplorer/compilerexplorerplugin.cpp @@ -18,6 +18,8 @@ #include +#include + #include using namespace Core; @@ -42,6 +44,9 @@ public: settings().defaultDocument().toUtf8()); }); + Utils::FileIconProvider::registerIconForMimeType(QIcon(":/compilerexplorer/logos/ce.ico"), + "application/compiler-explorer"); + ProjectExplorer::JsonWizardFactory::addWizardPath(":/compilerexplorer/wizard/"); ActionContainer *mtools = ActionManager::actionContainer(Core::Constants::M_TOOLS); diff --git a/src/plugins/compilerexplorer/logos/ce.ico b/src/plugins/compilerexplorer/logos/ce.ico new file mode 100644 index 00000000000..e0d26b2f5ff Binary files /dev/null and b/src/plugins/compilerexplorer/logos/ce.ico differ diff --git a/src/plugins/compilerexplorer/logos/logos.qrc b/src/plugins/compilerexplorer/logos/logos.qrc index 501cafddfcb..a7aa39684f2 100644 --- a/src/plugins/compilerexplorer/logos/logos.qrc +++ b/src/plugins/compilerexplorer/logos/logos.qrc @@ -1,3 +1,5 @@ - + + ce.ico + diff --git a/src/plugins/compilerexplorer/wizard/cpp/wizard.json b/src/plugins/compilerexplorer/wizard/cpp/wizard.json index b736551b69e..6851a0b3139 100644 --- a/src/plugins/compilerexplorer/wizard/cpp/wizard.json +++ b/src/plugins/compilerexplorer/wizard/cpp/wizard.json @@ -6,7 +6,7 @@ "trDescription": "Creates an example CompilerExplorer setup for C++.", "trDisplayName": "Compiler Explorer C++ Source", "trDisplayCategory": "Compiler Explorer", - "icon": "", + "icon": ":/compilerexplorer/logos/ce.ico", "iconKind": "Plain", "options": { "key": "DefaultSuffix", diff --git a/src/plugins/compilerexplorer/wizard/python/wizard.json b/src/plugins/compilerexplorer/wizard/python/wizard.json index b026adb4cdb..35a0106ab34 100644 --- a/src/plugins/compilerexplorer/wizard/python/wizard.json +++ b/src/plugins/compilerexplorer/wizard/python/wizard.json @@ -6,7 +6,7 @@ "trDescription": "Creates an example CompilerExplorer setup for Python.", "trDisplayName": "Compiler Explorer Python Source", "trDisplayCategory": "Compiler Explorer", - "icon": "", + "icon": ":/compilerexplorer/logos/ce.ico", "iconKind": "Plain", "options": { "key": "DefaultSuffix",