/*************************************************************************** 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: XQAppIconMap() = default; void init() { insert( "DirIcon" , QApplication::style()->standardIcon(QStyle::SP_DirIcon)); insert( "FileDialogBack", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)); insert( "FileDialogContentsView", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)); insert( "FileDialogDetailedView", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)); insert( "icn05Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)); insert( "icn06Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)); insert( "icn07Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)); insert( "icn08Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)); insert( "icn09Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)); insert( "icn10Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)); insert( "icn11Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowBack)); insert( "icn12Dummy", QApplication::style()->standardIcon(QStyle::SP_DirIcon)); insert( "icn13Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward)); insert( "icn14Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowDown)); insert( "icn15Dummy", QApplication::style()->standardIcon(QStyle::SP_DirLinkIcon)); insert( "icn16Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward)); insert( "icn17Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowForward)); insert( "icn18Dummy", QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)); insert( "icn19Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaStop)); insert( "icn20Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowLeft)); insert( "icn21Dummy", QApplication::style()->standardIcon(QStyle::SP_DockWidgetCloseButton)); insert( "icn22Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolume)); insert( "icn23Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowRight)); insert( "icn24Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveCDIcon)); insert( "icn25Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolumeMuted)); insert( "icn26Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowUp)); insert( "icn27Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveDVDIcon)); insert( "icn28Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical)); insert( "icn29Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserReload)); insert( "icn30Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon)); insert( "icn31Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation)); insert( "icn32Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserStop)); insert( "icn33Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveHDIcon)); insert( "icn34Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion)); insert( "icn35Dummy", QApplication::style()->standardIcon(QStyle::SP_CommandLink)); insert( "icn36Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveNetIcon)); insert( "icn37Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning)); insert( "icn38Dummy", QApplication::style()->standardIcon(QStyle::SP_ComputerIcon)); insert( "icn39Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)); insert( "icn40Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton)); insert( "icn41Dummy", QApplication::style()->standardIcon(QStyle::SP_CustomBase)); insert( "icn42Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)); insert( "icn43Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarContextHelpButton)); insert( "icn44Dummy", QApplication::style()->standardIcon(QStyle::SP_DesktopIcon)); insert( "icn45Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)); insert( "icn46Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMaxButton)); insert( "icn47Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton)); insert( "icn48Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)); insert( "icn49Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton)); insert( "icn50Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton)); insert( "icn51Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)); insert( "icn52Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMinButton)); insert( "icn53Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCloseButton)); insert( "icn54Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)); insert( "icn55Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarNormalButton)); insert( "icn56Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogDiscardButton)); insert( "icn57Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)); insert( "icn58Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarShadeButton)); insert( "icn59Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogHelpButton)); insert( "icn60Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)); insert( "icn61Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarUnshadeButton)); insert( "icn62Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogNoButton)); insert( "icn63Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)); insert( "icn64Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton)); insert( "icn65Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogOkButton)); insert( "FileIcon", QApplication::style()->standardIcon(QStyle::SP_FileIcon)); insert( "icn67Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton)); insert( "icn68Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogResetButton)); insert( "icn70Dummy", QApplication::style()->standardIcon(QStyle::SP_FileLinkIcon)); insert( "TrashIcon", QApplication::style()->standardIcon(QStyle::SP_TrashIcon)); insert( "icn72Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton)); insert( "icn73Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPause)); insert( "icn74Dummy", QApplication::style()->standardIcon(QStyle::SP_VistaShield)); insert( "icn75Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogYesButton)); insert( "icn76Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPlay)); insert( "icn77Dummy", QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon)); insert( "icn79Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekBackward)); insert( "DirHomeIcon", QApplication::style()->standardIcon(QStyle::SP_DirHomeIcon)); insert( "icn81Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekForward)); /* 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); } */ } }; /* Nein, so nicht! QApplication::style() gibts hier noch nicht -> aua! static XQAppIconMap s_IconMap { { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon) } } */ 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