File indexing completed on 2024-06-16 04:17:29

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISEMBEDDEDTEXTUREDATA_H
0007 #define KISEMBEDDEDTEXTUREDATA_H
0008 
0009 #include "kis_types.h"
0010 #include <boost/operators.hpp>
0011 #include <kritapaintop_export.h>
0012 #include <KoPattern.h>
0013 
0014 class KisPropertiesConfiguration;
0015 
0016 
0017 class PAINTOP_EXPORT KisEmbeddedTextureData : boost::equality_comparable<KisEmbeddedTextureData>
0018 {
0019 public:
0020     inline friend bool operator==(const KisEmbeddedTextureData &lhs, const KisEmbeddedTextureData &rhs) {
0021         return lhs.md5Base64 == rhs.md5Base64 &&
0022                 lhs.md5sum == rhs.md5sum &&
0023                 lhs.fileName == rhs.fileName &&
0024                 lhs.name == rhs.name &&
0025                 lhs.patternBase64 == rhs.patternBase64;
0026     }
0027 
0028     QString md5Base64;
0029     QString md5sum;
0030     QString fileName;
0031     QString name;
0032     QString patternBase64;
0033 
0034     bool isNull() const;
0035 
0036     static KisEmbeddedTextureData fromPattern(KoPatternSP pattern);
0037     KoResourceLoadResult loadLinkedPattern(KisResourcesInterfaceSP resourcesInterface) const;
0038 
0039     bool read(const KisPropertiesConfiguration *setting);
0040     void write(KisPropertiesConfiguration *setting) const;
0041 
0042 private:
0043     KoResourceLoadResult tryFetchPattern(KisResourcesInterfaceSP resourcesInterface) const;
0044     KoResourceLoadResult tryLoadEmbeddedPattern() const;
0045 };
0046 
0047 #endif // KISEMBEDDEDTEXTUREDATA_H