ImagingTools Core SDK
CDesignTokenIconProcessorComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QtCore>
7
8// ACF includes
9#include <ilog/TLoggerCompWrap.h>
10#include <iprm/IParamsSet.h>
11
12// ImtCore includes
13#include <imtdesign/IDesignTokenProcessor.h>
14#include <imtdesign/IDesignTokenArgumentsParser.h>
15#include <imtdesign/IDesignTokenFileParser.h>
16
17
18namespace imtdesign
19{
20
21class CDesignTokenIconProcessorComp: public ilog::CLoggerComponentBase, public IDesignTokenProcessor
22{
23public:
24 typedef ilog::CLoggerComponentBase BaseClass;
25
26 I_BEGIN_COMPONENT(CDesignTokenIconProcessorComp);
27 I_REGISTER_INTERFACE(IDesignTokenProcessor);
28 I_ASSIGN(m_argumentParserCompPtr, "ArgumentsParser", "Arguments Parser", true, "IDesignTokenArgumentsParser")
29 I_ASSIGN(m_designTokenFileParserCompPtr, "DesignTokenFileParser", "Design token file parser", true, "IDesignTokenFileParser")
30 I_END_COMPONENT;
31
32 // reimplemented (IDesignTokenProcessor)
33 virtual int Exec() override;
34 virtual QByteArray GetHelpString() const override;
35
36
37private:
38 constexpr static const char* s_suffixOffNormal = "_Off_Normal";
39 constexpr static const char* s_suffixOffDisabled = "_Off_Disabled";
40 constexpr static const char* s_suffixOffActive = "_Off_Active";
41 constexpr static const char* s_suffixOffSelected = "_Off_Selected";
42 constexpr static const char* s_suffixOnNormal = "_On_Normal";
43 constexpr static const char* s_suffixOnDisabled = "_On_Disabled";
44 constexpr static const char* s_suffixOnActive = "_On_Active";
45 constexpr static const char* s_suffixOnSelected = "_On_Selected";
46
47 I_REF(IDesignTokenArgumentsParser, m_argumentParserCompPtr);
48 I_REF(IDesignTokenFileParser, m_designTokenFileParserCompPtr);
49
50 QByteArrayList m_templateIconColorList;
51 QMap<QByteArray/*template color*/,QByteArray> m_normalColor;
52 QMap<QByteArray/*template color*/,QByteArray> m_offNormalColor;
53 QMap<QByteArray/*template color*/,QByteArray> m_offDisabledColor;
54 QMap<QByteArray/*template color*/,QByteArray> m_offActiveColor;
55 QMap<QByteArray/*template color*/,QByteArray> m_offSelectedColor;
56 QMap<QByteArray/*template color*/,QByteArray> m_onNormalColor;
57 QMap<QByteArray/*template color*/,QByteArray> m_onDisabledColor;
58 QMap<QByteArray/*template color*/,QByteArray> m_onActiveColor;
59 QMap<QByteArray/*template color*/,QByteArray> m_onSelectedColor;
60
61 QString m_inputDirName;
62 QString m_inputFileName;
63 QString m_outputDirName;
64 QString m_projectName;
65 QFileInfo m_designTokenFileInfo;
66
67private:
68 QByteArray GetFileNameForState(const QString& fileName, IDesignTokenFileParser::IconState iconState) const;
69
73 bool SetColor(const QString& fileName, const QString& outputFileName, const QByteArray& replacedColor, const QByteArray& replacebleColor) const;
74
78 bool SetColorForAllModeState(const QString& fileName, const QString& outputDirName) const;
79
83 bool SetColorAllFilesInDir(const QString& inputDirName, const QString& outputDirName) const;
84
88 bool IgnoreFile(const QFileInfo& fileInfo) const;
89
90};
91
92
93} // namespace imtdesign
94