154 lines
8.8 KiB
C++
154 lines
8.8 KiB
C++
/***************************************************************************
|
|
|
|
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 <xqappdata.h>
|
|
|
|
#include <QDebug>
|
|
#include <QApplication>
|
|
#include <QStyle>
|
|
#include <QIcon>
|
|
#include <QMap>
|
|
#include <QMetaEnum>
|
|
#include <QPushButton>
|
|
|
|
namespace XQAppData
|
|
{
|
|
template<typename E>
|
|
constexpr auto to_underlying(E e) noexcept
|
|
{
|
|
return static_cast<std::underlying_type_t<E>>(e);
|
|
}
|
|
|
|
class XQAppIconMap : public QMap<QString,QIcon>
|
|
{
|
|
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<QIcon::ThemeIcon>(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
|