From eac668d297edc81b18aea509ddfa861390ae98a7 Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Fri, 15 Aug 2025 20:55:53 +0200 Subject: [PATCH] removed XQIcon --- deprecated/xqicon.cpp | 29 +++++++++ deprecated/xqicon.h | 35 +++++++++++ src/application/xqappdata.cpp | 112 +++++++--------------------------- src/application/xqappdata.h | 5 +- src/items/xqitemtype.cpp | 13 +++- src/model/xqviewmodel.cpp | 2 + src/xtree.pro | 2 - 7 files changed, 101 insertions(+), 97 deletions(-) create mode 100644 deprecated/xqicon.cpp create mode 100644 deprecated/xqicon.h diff --git a/deprecated/xqicon.cpp b/deprecated/xqicon.cpp new file mode 100644 index 0000000..b489a90 --- /dev/null +++ b/deprecated/xqicon.cpp @@ -0,0 +1,29 @@ +/*************************************************************************** + + 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 + +XQIcon::XQIcon() +{} + +XQIcon::XQIcon( const QIcon& icon, const QString& iconKey ) + : QIcon{icon}, _iconKey{iconKey} +{ + +} + +const QString& XQIcon::iconKey() +{ + return _iconKey; +} diff --git a/deprecated/xqicon.h b/deprecated/xqicon.h new file mode 100644 index 0000000..7f4a41c --- /dev/null +++ b/deprecated/xqicon.h @@ -0,0 +1,35 @@ +/*************************************************************************** + + 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. + +***************************************************************************/ + + +#ifndef XQICON_H +#define XQICON_H + +#include + +class XQIcon : public QIcon +{ +public: + + XQIcon(); + XQIcon( const QIcon& icon, const QString& iconKey ); + + const QString& iconKey(); + +protected: + + QString _iconKey; + +}; + +#endif // XQICON_H diff --git a/src/application/xqappdata.cpp b/src/application/xqappdata.cpp index 3aa03fc..df86997 100644 --- a/src/application/xqappdata.cpp +++ b/src/application/xqappdata.cpp @@ -32,11 +32,14 @@ namespace XQAppData - class XQAppIconMap : public QMap + class XQAppIconMap : public QMap { public: - XQAppIconMap() = default; + XQAppIconMap() + { + + } void init() { @@ -80,7 +83,6 @@ namespace XQAppData 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 ); @@ -137,8 +139,13 @@ namespace XQAppData void namedInsert( const QString& key, QStyle::StandardPixmap pixmapID ) { QIcon icon = QApplication::style()->standardIcon( pixmapID ); - insert( key, XQIcon( icon, key ) ); - //_keysToNames.insert() + insert( key, icon ); + _keysToNames.insert( icon.cacheKey(), key ); + } + + QString iconName( const QIcon& icon ) + { + return _keysToNames[icon.cacheKey()]; } protected: @@ -160,100 +167,23 @@ namespace XQAppData static XQAppIconMap s_IconMap; - XQIcon typeIcon(const QString& key ) + QIcon 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; + + return QApplication::style()->standardIcon( QStyle::SP_TrashIcon); } + QString iconName( const QIcon& icon ) + { + if(s_IconMap.isEmpty()) + s_IconMap.init(); + return s_IconMap.iconName(icon); + } - /* - { "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 diff --git a/src/application/xqappdata.h b/src/application/xqappdata.h index 4ccddaf..b84be83 100644 --- a/src/application/xqappdata.h +++ b/src/application/xqappdata.h @@ -19,8 +19,8 @@ #include #include #include +#include -#include #include const QString c_Version = "0.1.1 04.09.2024"; @@ -49,7 +49,8 @@ namespace XQAppData { //class XQAppIconMap; - XQIcon typeIcon(const QString& key ); + QIcon typeIcon(const QString& key ); + QString iconName( const QIcon& icon ); } #endif // XQAPPDATA_H diff --git a/src/items/xqitemtype.cpp b/src/items/xqitemtype.cpp index 2831dcb..189e0d1 100644 --- a/src/items/xqitemtype.cpp +++ b/src/items/xqitemtype.cpp @@ -90,7 +90,15 @@ int XQItemType::roleForAttributeKey( const QString& attrKey ) XQItemType* XQItemType::replaceAttribute( const QVariant& newValue, int role ) { - qDebug() << " --- Before: " << makeItemTypeKey() << " role:" << XQItem::fetchItemDataRoleName(role) << " value:" << newValue.toString(); + QString msg = newValue.toString(); + if( role == XQItem::IconRole ) + { + QIcon icn = newValue.value(); + msg = XQAppData::iconName( icn ); + } + + qDebug() << " --- Before: " << makeItemTypeKey() << " role:" << XQItem::fetchItemDataRoleName(role) << " value:" << msg; + // hat sich überhaupt was geändert? QVariant oldValue = data(role); @@ -251,7 +259,8 @@ QString XQItemType::makeItemTypeKey() key = key.arg( data(XQItem::FlagsRole).toString() ); // icons haben leider keine namen, es sei denn, sie kommen aus einen theme //key = key.arg( icon().name() ); - key = key.arg( icon().cacheKey() ); + //key = key.arg( icon().cacheKey() ); + key = key.arg( XQAppData::iconName( icon() ) ); key = key.arg( fixedChoicesToString() ); return key; diff --git a/src/model/xqviewmodel.cpp b/src/model/xqviewmodel.cpp index 39db345..2350b37 100644 --- a/src/model/xqviewmodel.cpp +++ b/src/model/xqviewmodel.cpp @@ -197,6 +197,8 @@ void XQViewModel::onActionTriggered(QAction* action) void XQViewModel::onCommandRedo( XQCommand& command ) { + QMap> s_RedoMap; + try { diff --git a/src/xtree.pro b/src/xtree.pro index 5c8f6bf..00a8b87 100644 --- a/src/xtree.pro +++ b/src/xtree.pro @@ -43,7 +43,6 @@ HEADERS += \ util/xsingleton.h \ util/xtreewalker.h \ widgets/xqcontextmenu.h \ - widgets/xqicon.h \ widgets/xqtreetable.h SOURCES += \ @@ -68,7 +67,6 @@ SOURCES += \ pugixml/pugixml.cpp \ util/xqexception.cpp \ widgets/xqcontextmenu.cpp \ - widgets/xqicon.cpp \ widgets/xqtreetable.cpp