File indexing completed on 2024-05-19 04:23:37
0001 // SPDX-FileCopyrightText: 2006-2013 Jesper K. Pedersen <jesper.pedersen@kdab.com> 0002 // SPDX-FileCopyrightText: 2007 Dirk Mueller <mueller@kde.org> 0003 // SPDX-FileCopyrightText: 2009 Henner Zeller <h.zeller@acm.org> 0004 // SPDX-FileCopyrightText: 2013 Dominik Broj <broj.dominik@gmail.com> 0005 // SPDX-FileCopyrightText: 2013-2023 Johannes Zarl-Zierl <johannes@zarl-zierl.at> 0006 // SPDX-FileCopyrightText: 2015 Tobias Leupold <tl@stonemx.de> 0007 // 0008 // SPDX-License-Identifier: GPL-2.0-or-later 0009 0010 #ifndef XMLDB_FILEWRITER_H 0011 #define XMLDB_FILEWRITER_H 0012 0013 #include <DB/ImageInfoPtr.h> 0014 0015 #include <QRect> 0016 #include <QString> 0017 0018 class QXmlStreamWriter; 0019 0020 namespace DB 0021 { 0022 class ImageDB; 0023 0024 class Database; 0025 0026 class FileWriter 0027 { 0028 public: 0029 explicit FileWriter(DB::ImageDB *db) 0030 : m_db(db) 0031 { 0032 } 0033 void save(const QString &fileName, bool isAutoSave); 0034 static QString escape(const QString &); 0035 0036 protected: 0037 void saveCategories(QXmlStreamWriter &); 0038 void saveImages(QXmlStreamWriter &); 0039 void saveBlockList(QXmlStreamWriter &); 0040 void saveMemberGroups(QXmlStreamWriter &); 0041 void saveGlobalSortOrder(QXmlStreamWriter&); 0042 void save(QXmlStreamWriter &writer, const DB::ImageInfoPtr &info); 0043 void writeCategories(QXmlStreamWriter &, const DB::ImageInfoPtr &info); 0044 void writeCategoriesCompressed(QXmlStreamWriter &, const DB::ImageInfoPtr &info); 0045 bool shouldSaveCategory(const QString &categoryName) const; 0046 // void saveSettings(QXmlStreamWriter&); 0047 0048 private: 0049 DB::ImageDB *const m_db; 0050 QString areaToString(QRect area) const; 0051 }; 0052 0053 } 0054 0055 #endif /* XMLDB_FILEWRITER_H */ 0056 0057 // vi:expandtab:tabstop=4 shiftwidth=4: