VR-Exchange 2.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
widgetIconStyleManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <QtGui/QIcon>
13 #include <widgets/brokerDialog.h>
14 #include <QtCore/QPointer>
15 #include <utility>
16 
17 class QObject;
18 
19 namespace MAKVrExchange
20 {
22  {
23  public:
25  DtQIconConfiguration(const std::string& fileNameOrPath,
26  QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off);
27 
28  QIcon::Mode myIconMode;
29  QIcon::State myIconState;
30  std::string myIconFileNameOrPath;
31  };
32 
33 
35  {
36  public:
39 
41  virtual ~DtQIconConfigurations();
42 
48  virtual void addConfiguration(const DtQIconConfiguration& configuration);
49 
51  virtual const std::vector<DtQIconConfiguration>& configurations() const;
52 
55  virtual std::string iconFileNameOrPathFromQIconModeAndState(QIcon::Mode iconMode, QIcon::State iconState) const;
56 
60  virtual void setIsGenerateIconConfigurationsEnabledByMode(QIcon::Mode modeToSet, bool generateConfigurationForMode);
61 
65  virtual bool isGenerateIconConfigurationsEnabledByMode(QIcon::Mode modeToCheck) const;
66 
67  protected:
68  std::vector<DtQIconConfiguration> myConfigurations;
69 
72 
75 
78 
81  };
82 
83 
85  {
86  public:
89 
90  protected:
93  virtual bool eventFilter(QObject*, QEvent*) override;
94 
97 
98  };
99 
101  {
103  public:
104 
106  typedef std::vector<std::pair<int, DtQIconConfigurations> > DtIndexableQIconConfigurations;
107 
108  public:
109 
112 
114  virtual ~DtWidgetIconStyleManager();
115 
116 
120  virtual void manageWidget(QObject* widgetToManage, const std::string& iconFileNameOrPath);
121 
125  virtual void manageWidget(QObject* widgetToManage, const DtQIconConfigurations& iconConfigurations);
126 
131  virtual void manageIndexableWidget(QObject* indexedWidgetToManage,
132  int index, const DtQIconConfigurations& iconConfigurations);
133 
136  virtual void unmanageWidget(QObject* widgetToManage);
137 
140  virtual void clearCache(bool refreshIcons = true);
141 
147  virtual QPixmap generateThemedPixmapFromSVGAndIconMode(const std::string& iconFileNameOrPath,
148  QIcon::Mode iconModeOfGeneratedPixmap = QIcon::Normal) const;
149 
152  virtual QIcon createQIconBasedOnConfigurations(const DtQIconConfigurations& configurations);
153 
176  virtual void generateAndAppendAdditionalIconConfigurationsIfNeeded(
177  QIcon& iconToAppendToIfNeeded, const DtQIconConfigurations& iconConfigurations) const;
178 
180  virtual void updateAllManagedIcons(bool lightDarkModeIconsEnabled);
181 
182  protected:
185  virtual void updateIcon(QObject* widget,
186  const DtQIconConfigurations& iconConfigurations, bool lightDarkModeIconsEnabled);
187 
190  virtual void updateIndexedIcon(QObject* indexedWidget,
191  const DtIndexableQIconConfigurations& iconConfigurations, bool lightDarkModeIconsEnabled);
192 
197  virtual QPixmap findOrCreatePixmapInCache(const std::string& filePath);
198 
201  virtual std::string iconsDirectory(const std::string& iconFileNameOrPath) const;
202 
205  virtual bool iconExistsOnDiskOrInCache(const std::string& iconFilePath) const;
206 
211  virtual bool getPixmapFromSVGAndColorMappings(const std::string& iconFileNameOrPath,
212  const std::vector<std::pair<QColor, QColor>> colorMappings, QPixmap& resultIcon) const;
213 
214 
215  protected:
216 
218  std::map<QPointer<QObject>, DtQIconConfigurations> myWidgetsToManage;
219 
223 
225  std::map<std::string, QPixmap> myFilepathsToPixmapCache;
226 
229 
232 
233  };
234 
235 }
bool myGenerateSelectedIconConfigurations
Generate selected icon configurations flag.
Definition: widgetIconStyleManager.h:77
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: widgetIconStyleManager.h:222
DtBrokerDialog * myDialog
Store a pointer to the main window.
Definition: widgetIconStyleManager.h:231
std::vector< std::pair< int, DtQIconConfigurations > > DtIndexableQIconConfigurations
Vector of mappings between a DtQIconConfigurations and the index to apply the configuration to...
Definition: widgetIconStyleManager.h:106
Definition: widgetIconStyleManager.h:34
std::vector< DtQIconConfiguration > myConfigurations
Definition: widgetIconStyleManager.h:68
Definition: widgetIconStyleManager.h:100
bool myGenerateNormalIconConfigurations
Generate normal icon configurations flag.
Definition: widgetIconStyleManager.h:71
DtBrokerDialog * myDialog
Store a pointer to the main window.
Definition: widgetIconStyleManager.h:96
std::string myIconFileNameOrPath
Definition: widgetIconStyleManager.h:30
DtWidgetIconStyleManagerEventFilter * myEventFilter
Event filter to detect changes to enable state of some widget types.
Definition: widgetIconStyleManager.h:228
Definition: widgetIconStyleManager.h:21
Contains the DtBrokerDialog class declaration.
std::map< std::string, QPixmap > myFilepathsToPixmapCache
Mapping a filepath to the cached QPixmap for the asset pointed to by the filepath.
Definition: widgetIconStyleManager.h:225
std::map< QPointer< QObject >, DtQIconConfigurations > myWidgetsToManage
Mapping a QObject (UI element with the icon) and its configuration.
Definition: widgetIconStyleManager.h:218
Definition: widgetIconStyleManager.h:84
bool myGenerateActiveIconConfigurations
Generate active icon configurations flag.
Definition: widgetIconStyleManager.h:80
#define DT_DLL_WIDGETS
Definition: include/widgets/dllExport.h:22
QIcon::Mode myIconMode
Definition: widgetIconStyleManager.h:28
QIcon::State myIconState
Definition: widgetIconStyleManager.h:29
Responsible for displaying all information about the broker.
Definition: brokerDialog.h:40
bool myGenerateDisabledIconConfigurations
Generate disabled icon configurations flag.
Definition: widgetIconStyleManager.h:74

Document ID: Generated on Tue Aug 16 16:15:26 EDT 2022 from SVN revision 245901
Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)