File indexing completed on 2025-02-02 05:02:27
0001 /* 0002 SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef DOCUMENTMANAGER_H 0008 #define DOCUMENTMANAGER_H 0009 0010 #include <QObject> 0011 0012 /** Manages documents attached to reservations. */ 0013 class DocumentManager : public QObject 0014 { 0015 Q_OBJECT 0016 public: 0017 explicit DocumentManager(QObject *parent = nullptr); 0018 ~DocumentManager() override; 0019 0020 /** Lists all documents in storage. */ 0021 QVector<QString> documents() const; 0022 /** Returns @c true if a document with the given id is present. */ 0023 bool hasDocument(const QString &id) const; 0024 0025 /** Returns the document meta data. */ 0026 QVariant documentInfo(const QString &id) const; 0027 /** Returns a file path for opening the document. */ 0028 QString documentFilePath(const QString &id) const; 0029 0030 /** Add a document from raw data. */ 0031 void addDocument(const QString &id, const QVariant &info, const QByteArray &data); 0032 /** Add a document from an external file. */ 0033 void addDocument(const QString &id, const QVariant &info, const QString &filePath); 0034 /** Remove a document. */ 0035 Q_INVOKABLE void removeDocument(const QString &id); 0036 0037 Q_SIGNALS: 0038 void documentAdded(const QString &id); 0039 void documentRemoved(const QString &id); 0040 0041 private: 0042 QString basePath() const; 0043 }; 0044 0045 #endif // DOCUMENTMANAGER_H