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

0001 /*
0002  *  SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net>
0003  *  SPDX-FileCopyrightText: 2021 L. E. Segovia <amy@amyspark.me>
0004  *
0005  *  SPDX-License-Identifier: LGPL-2.1-or-later
0006  */
0007 
0008 #ifndef _KIS_IPTC_IO_H_
0009 #define _KIS_IPTC_IO_H_
0010 
0011 #include <klocalizedstring.h>
0012 
0013 #include <kis_meta_data_io_backend.h>
0014 
0015 class KisIptcIO : public KisMetaData::IOBackend
0016 {
0017 public:
0018     KisIptcIO();
0019     ~KisIptcIO() override;
0020     QString id() const override
0021     {
0022         return "iptc";
0023     }
0024     QString name() const override
0025     {
0026         return i18n("Iptc");
0027     }
0028     BackendType type() const override
0029     {
0030         return Binary;
0031     }
0032     bool supportSaving() const override
0033     {
0034         return true;
0035     }
0036     bool saveTo(const KisMetaData::Store *store, QIODevice *ioDevice, HeaderType headerType = NoHeader) const override;
0037     bool canSaveAllEntries(KisMetaData::Store *store) const override;
0038     bool supportLoading() const override
0039     {
0040         return true;
0041     }
0042     bool loadFrom(KisMetaData::Store *store, QIODevice *ioDevice) const override;
0043 
0044 private:
0045     void initMappingsTable() const;
0046 
0047 private:
0048     struct Private;
0049     Private *const d;
0050 };
0051 
0052 #endif