File indexing completed on 2024-05-12 15:55:23

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: