/*************************************************************************** source::worx xtree Copyright © 2024-2025 c.holzheuer christoph.holzheuer@gmail.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ***************************************************************************/ #include #include #include #include #include #include #include #include namespace XQAppData { template constexpr auto to_underlying(E e) noexcept { return static_cast>(e); } class XQAppIconMap : public QMap { public: void init() { auto from = to_underlying(QIcon::ThemeIcon::AddressBookNew); auto to = to_underlying(QIcon::ThemeIcon::NThemeIcons); for (auto i = from; i < to; ++i) { QIcon::ThemeIcon f = static_cast(i); QIcon icon = QIcon::fromTheme(f); // Nur hinzufügen, wenn das Icon existiert if (!icon.isNull()) insert(icon.name(), icon); } } }; static XQAppIconMap s_IconMap; bool hasTypeIcon(const QString& key ) { if(s_IconMap.isEmpty()) s_IconMap.init(); return !key.isEmpty() && s_IconMap.contains(key); } QIcon typeIcon(const QString& key ) { if( hasTypeIcon(key) ) return s_IconMap[key]; return QApplication::style()->standardIcon(QStyle::SP_TrashIcon); } /* { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon) }, { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon)}, { "icn02Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, { "icn03Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, { "icn04Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, { "icn05Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, { "icn06Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, { "icn07Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, { "icn08Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, { "icn09Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, { "icn10Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, { "icn11Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowBack)}, { "icn12Dummy", QApplication::style()->standardIcon(QStyle::SP_DirIcon)}, { "icn13Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward)}, { "icn14Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowDown)}, { "icn15Dummy", QApplication::style()->standardIcon(QStyle::SP_DirLinkIcon)}, { "icn16Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward)}, { "icn17Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowForward)}, { "icn18Dummy", QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)}, { "icn19Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaStop)}, { "icn20Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowLeft)}, { "icn21Dummy", QApplication::style()->standardIcon(QStyle::SP_DockWidgetCloseButton)}, { "icn22Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolume)}, { "icn23Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowRight)}, { "icn24Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveCDIcon)}, { "icn25Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolumeMuted)}, { "icn26Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowUp)}, { "icn27Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveDVDIcon)}, { "icn28Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical)}, { "icn29Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserReload)}, { "icn30Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon)}, { "icn31Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation)}, { "icn32Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserStop)}, { "icn33Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveHDIcon)}, { "icn34Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion)}, { "icn35Dummy", QApplication::style()->standardIcon(QStyle::SP_CommandLink)}, { "icn36Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveNetIcon)}, { "icn37Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning)}, { "icn38Dummy", QApplication::style()->standardIcon(QStyle::SP_ComputerIcon)}, { "icn39Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, { "icn40Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton)}, { "icn41Dummy", QApplication::style()->standardIcon(QStyle::SP_CustomBase)}, { "icn42Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, { "icn43Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarContextHelpButton)}, { "icn44Dummy", QApplication::style()->standardIcon(QStyle::SP_DesktopIcon)}, { "icn45Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, { "icn46Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMaxButton)}, { "icn47Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton)}, { "icn48Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, { "icn49Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton)}, { "icn50Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton)}, { "icn51Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, { "icn52Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMinButton)}, { "icn53Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCloseButton)}, { "icn54Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, { "icn55Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarNormalButton)}, { "icn56Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogDiscardButton)}, { "icn57Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, { "icn58Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarShadeButton)}, { "icn59Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogHelpButton)}, { "icn60Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, { "icn61Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarUnshadeButton)}, { "icn62Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogNoButton)}, { "icn63Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, { "icn64Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton)}, { "icn65Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogOkButton)}, { "icn66Dummy", QApplication::style()->standardIcon(QStyle::SP_FileIcon)}, { "icn67Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton)}, { "icn68Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogResetButton)}, { "icn70Dummy", QApplication::style()->standardIcon(QStyle::SP_FileLinkIcon)}, { "icn71Dummy", QApplication::style()->standardIcon(QStyle::SP_TrashIcon)}, { "icn72Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton)}, { "icn73Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPause)}, { "icn74Dummy", QApplication::style()->standardIcon(QStyle::SP_VistaShield)}, { "icn75Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogYesButton)}, { "icn76Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPlay)}, { "icn77Dummy", QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon)}, { "icn79Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekBackward)}, { "icn80Dummy", QApplication::style()->standardIcon(QStyle::SP_DirHomeIcon)}, { "icn81Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekForward)} } */ }; // namespace XQAppData