File indexing completed on 2024-05-12 15:59:14
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2012 Arjen Hiemstra <ahiemstra@heimr.nl> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef DOCUMENTMANAGER_H 0008 #define DOCUMENTMANAGER_H 0009 0010 #include <QObject> 0011 #include <QVariantMap> 0012 0013 #include "krita_sketch_export.h" 0014 0015 class RecentFileManager; 0016 class Settings; 0017 class ProgressProxy; 0018 class KisDocument; 0019 0020 class KRITA_SKETCH_EXPORT DocumentManager : public QObject 0021 { 0022 Q_OBJECT 0023 public: 0024 KisDocument* document() const; 0025 ProgressProxy* progressProxy() const; 0026 Settings* settingsManager() const; 0027 void setSettingsManager(Settings* newManager); 0028 RecentFileManager* recentFileManager() const; 0029 bool isTemporaryFile() const; 0030 0031 public Q_SLOTS: 0032 void newDocument(int width, int height, float resolution); 0033 void newDocument(const QVariantMap& options); 0034 void openDocument(const QString& document, bool import = false); 0035 void closeDocument(); 0036 bool save(); 0037 void saveAs(const QString &filename, const QString &mimetype); 0038 void reload(); 0039 void setTemporaryFile(bool temp); 0040 0041 static DocumentManager* instance(); 0042 0043 Q_SIGNALS: 0044 void documentChanged(); 0045 void aboutToDeleteDocument(); 0046 void documentSaved(); 0047 0048 private: 0049 explicit DocumentManager(QObject *parent = 0); 0050 virtual ~DocumentManager(); 0051 0052 class Private; 0053 Private * const d; 0054 0055 static DocumentManager *sm_instance; 0056 0057 private Q_SLOTS: 0058 void delayedNewDocument(); 0059 void delayedSaveAs(); 0060 void delayedOpenDocument(); 0061 0062 void onLoadCompleted(); 0063 void onLoadCanceled(const QString &errMsg); 0064 }; 0065 0066 #endif // DOCUMENTMANAGER_H