ImagingTools Core SDK
CDesignTokenQrcUpdaterComp.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#include <imtdesign/IDesignTokenQrcUpdater.h>
17
18
19namespace imtdesign
20{
21
22class CDesignTokenQrcUpdaterComp: public ilog::CLoggerComponentBase, public IDesignTokenQrcUpdater, public IDesignTokenProcessor
23{
24public:
25 typedef ilog::CLoggerComponentBase BaseClass;
26
27 I_BEGIN_COMPONENT(CDesignTokenQrcUpdaterComp);
28 I_REGISTER_INTERFACE(IDesignTokenQrcUpdater);
29 I_REGISTER_INTERFACE(IDesignTokenProcessor);
30 I_ASSIGN(m_argumentParserCompPtr, "ArgumentsParser", "Arguments Parser", true, "IDesignTokenArgumentsParser")
31 I_ASSIGN(m_designTokenFileParserCompPtr, "DesignTokenFileParser", "Design token file parser", true, "IDesignTokenFileParser")
32
33 I_END_COMPONENT;
34
35 // reimplemented (IDesignTokenProcessor)
36 virtual int Exec() override;
37 virtual QByteArray GetHelpString()const override;
38
39 // reimplemented (IDesignTokenQrcUpdater)
40 virtual bool CreateQrc(const QString& prefix, const QString& path, const QFileInfoList& files, const QByteArray& outputFileName) const override;
41 virtual bool CreateQrcForDirs(const QStringList& inputDirNames, const QByteArray& outputFileName) const override;
42 virtual bool CreateQrcRecursivly(const QString& inputDirName, const QByteArray& outputFileName) const override;
43 virtual bool ModifyQrc(const QString& prefix, const QString& path, const QFileInfoList& files, const QByteArray& outputFileName) const override;
44
45
46private:
47 bool CreateSingleEntry(const QString& prefix, const QString& inputDirPath, const QString& path, QXmlStreamWriter& xmlWriter) const;
48 bool CreateSingleEntryInCurrentPrefix(const QString& inputDirPath, const QString& path, QXmlStreamWriter& xmlWriter) const;
49 QString GetPathOverFile(const QString& dir, const QString& file) const;
50
51private:
52 I_REF(IDesignTokenArgumentsParser, m_argumentParserCompPtr);
53 I_REF(IDesignTokenFileParser, m_designTokenFileParserCompPtr);
54
55};
56
57
58} // namespace imtdesign
59