MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrWidgetIconStyleManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef lgrWidgetIconStyleManager_H_
10 #define lgrWidgetIconStyleManager_H_
11 
12 #include <QtGui/QIcon>
13 #include "lgrGui/lgrGui.h"
14 #include <lgrUtil/signalSlot.h>
16 #include "lgrApp/lgrApplication.h"
17 #include <lgrGui/lgrMainWindow.h>
18 
19 #include <QtCore/QPointer>
20 #include <utility>
21 
22 class QObject;
23 
24 namespace MAKLogger
25 {
26  class DtLgrGuiModel;
27 
29  {
30  public:
32  DtQIconConfiguration(const std::string& fileNameOrPath,
33  QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off);
34 
35  QIcon::Mode myIconMode;
36  QIcon::State myIconState;
37  std::string myIconFileNameOrPath;
38  };
39 
40 
42  {
43  public:
46 
48  virtual ~DtQIconConfigurations();
49 
55  virtual void addConfiguration(const DtQIconConfiguration& configuration);
56 
58  virtual const std::vector<DtQIconConfiguration>& configurations() const;
59 
62  virtual std::string iconFileNameOrPathFromQIconModeAndState(QIcon::Mode iconMode, QIcon::State iconState) const;
63 
67  virtual void setIsGenerateIconConfigurationsEnabledByMode(QIcon::Mode modeToSet, bool generateConfigurationForMode);
68 
72  virtual bool isGenerateIconConfigurationsEnabledByMode(QIcon::Mode modeToCheck) const;
73 
74  protected:
75  std::vector<DtQIconConfiguration> myConfigurations;
76 
79 
82 
85 
88  };
89 
90 
92  {
93  public:
96 
97  protected:
100  virtual bool eventFilter(QObject*, QEvent*) override;
101 
104 
105  };
106 
108  {
110  public:
111 
113  typedef std::vector<std::pair<int, DtQIconConfigurations> > DtIndexableQIconConfigurations;
114 
115  public:
116 
119 
121  virtual ~DtWidgetIconStyleManager();
122 
123 
127  virtual void manageWidget(QObject* widgetToManage, const std::string& iconFileNameOrPath);
128 
132  virtual void manageWidget(QObject* widgetToManage, const DtQIconConfigurations& iconConfigurations);
133 
138  virtual void manageIndexableWidget(QObject* indexedWidgetToManage,
139  int index, const DtQIconConfigurations& iconConfigurations);
140 
143  virtual void unmanageWidget(QObject* widgetToManage);
144 
147  virtual void clearCache(bool refreshIcons = true);
148 
151  virtual void rotateIcon(QTabWidget* myTabs, int deg, QIcon &icon);
152 
158  virtual QPixmap generateThemedPixmapFromSVGAndIconMode(const std::string& iconFileNameOrPath,
159  QIcon::Mode iconModeOfGeneratedPixmap = QIcon::Normal) const;
160 
163  virtual QIcon createQIconBasedOnConfigurations(const DtQIconConfigurations& configurations);
164 
187  virtual void generateAndAppendAdditionalIconConfigurationsIfNeeded(
188  QIcon& iconToAppendToIfNeeded, const DtQIconConfigurations& iconConfigurations) const;
189 
191  virtual void updateAllManagedIcons(bool lightDarkModeIconsEnabled);
192 
193  protected:
196  virtual void updateIcon(QObject* widget,
197  const DtQIconConfigurations& iconConfigurations, bool lightDarkModeIconsEnabled);
198 
201  virtual void updateIndexedIcon(QObject* indexedWidget,
202  const DtIndexableQIconConfigurations& iconConfigurations, bool lightDarkModeIconsEnabled);
203 
208  virtual QPixmap findOrCreatePixmapInCache(const std::string& filePath);
209 
212  virtual std::string iconsDirectory(const std::string& iconFileNameOrPath) const;
213 
216  virtual bool iconExistsOnDiskOrInCache(const std::string& iconFilePath) const;
217 
222  virtual bool getPixmapFromSVGAndColorMappings(const std::string& iconFileNameOrPath,
223  const std::vector<std::pair<QColor, QColor>> colorMappings, QPixmap& resultIcon) const;
224 
225 
226  protected:
227 
229  std::map<QPointer<QObject>, DtQIconConfigurations> myWidgetsToManage;
230 
234 
236  std::map<std::string, QPixmap> myFilepathsToPixmapCache;
237 
240 
243 
244  };
245 
246 }
247 
248 #endif
std::vector< std::pair< int, DtQIconConfigurations > > DtIndexableQIconConfigurations
Vector of mappings between a DtQIconConfigurations and the index to apply the configuration to...
Definition: lgrWidgetIconStyleManager.h:113
std::vector< DtQIconConfiguration > myConfigurations
Definition: lgrWidgetIconStyleManager.h:75
Contains MAKLogger::DtLoggerApplication class.
Contains MAKLogger::DtSlot and MAKLogger::DtFunctionSlot and MAKLogger::DtMemberSlot and MAKLogger::S...
Definition: lgrWidgetIconStyleManager.h:107
DtWidgetIconStyleManagerEventFilter * myEventFilter
Event filter to detect changes to enable state of some widget types.
Definition: lgrWidgetIconStyleManager.h:239
bool myGenerateNormalIconConfigurations
Generate normal icon configurations flag.
Definition: lgrWidgetIconStyleManager.h:78
bool myGenerateActiveIconConfigurations
Generate active icon configurations flag.
Definition: lgrWidgetIconStyleManager.h:87
std::string myIconFileNameOrPath
Definition: lgrWidgetIconStyleManager.h:37
QMainWindow * myMainWindow
Store a pointer to the main window.
Definition: lgrWidgetIconStyleManager.h:103
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
QIcon::Mode myIconMode
Definition: lgrWidgetIconStyleManager.h:35
std::map< QPointer< QObject >, DtQIconConfigurations > myWidgetsToManage
Mapping a QObject (UI element with the icon) and its configuration.
Definition: lgrWidgetIconStyleManager.h:229
bool myGenerateDisabledIconConfigurations
Generate disabled icon configurations flag.
Definition: lgrWidgetIconStyleManager.h:81
Definition: lgrWidgetIconStyleManager.h:41
Contains MAKLogger::DtLgrMainWindow class.
QMainWindow * myMainWindow
Store a pointer to the main window.
Definition: lgrWidgetIconStyleManager.h:242
bool myGenerateSelectedIconConfigurations
Generate selected icon configurations flag.
Definition: lgrWidgetIconStyleManager.h:84
Definition: lgrWidgetIconStyleManager.h:91
#define DT_DLL_LGRGUI
Definition: lgrGui.h:19
std::map< QPointer< QObject >, DtIndexableQIconConfigurations > myIndexedWidgetsToManage
Mapping an indexed QObject (UI element with indices where each index can have an icon) and its config...
Definition: lgrWidgetIconStyleManager.h:233
std::map< std::string, QPixmap > myFilepathsToPixmapCache
Mapping a filepath to the cached QPixmap for the asset pointed to by the filepath.
Definition: lgrWidgetIconStyleManager.h:236
Defines INPORT/EXPORT macros for lgrGui library.
Definition: lgrWidgetIconStyleManager.h:28
QIcon::State myIconState
Definition: lgrWidgetIconStyleManager.h:36

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)