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