Krita Source Code Documentation
Loading...
Searching...
No Matches
KisImportExportManager.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#ifndef KIS_IMPORT_EXPORT_MANAGER_H
8#define KIS_IMPORT_EXPORT_MANAGER_H
9
10#include <QObject>
11#include <QMap>
12#include <QByteArray>
13#include <QUrl>
14
16
17#include "kritaui_export.h"
18
19class KisDocument;
21
22template <class T>
23class QFuture;
24
38class KRITAUI_EXPORT KisImportExportManager : public QObject
39{
40 Q_OBJECT
41public:
45 enum Direction { Import = 1, Export = 2 };
46
50 explicit KisImportExportManager(KisDocument *document);
51
52public:
53
54 ~KisImportExportManager() override;
55
67 KisImportExportErrorCode importDocument(const QString &location, const QString &mimeType);
68
76 KisImportExportErrorCode exportDocument(const QString &location, const QString& realLocation, const QByteArray &mimeType, bool showWarnings = true, KisPropertiesConfigurationSP exportConfiguration = 0, bool isAdvancedExporting = false );
77
78 QFuture<KisImportExportErrorCode> exportDocumentAsync(const QString &location, const QString& realLocation, const QByteArray &mimeType, KisImportExportErrorCode &status, bool showWarnings = true, KisPropertiesConfigurationSP exportConfiguration = 0,bool isAdvancedExporting= false);
79
81
82
88 static QStringList supportedMimeTypes(Direction direction);
89
98 static KisImportExportFilter *filterForMimeType(const QString &mimetype, Direction direction);
99
104 static void fillStaticExportConfigurationProperties(KisPropertiesConfigurationSP exportConfiguration, KisImageSP image);
105
110 bool batchMode(void) const;
111
112 void setUpdater(KoUpdaterPtr updater);
113
114 static QString askForAudioFileName(const QString &defaultDir, QWidget *parent);
115
116 static QString getUriForAdditionalFile(const QString &defaultUri, QWidget *parent);
117
118
119private:
120
121 struct ConversionResult;
122 ConversionResult convert(Direction direction, const QString &location, const QString& realLocation, const QString &mimeType, bool showWarnings, KisPropertiesConfigurationSP exportConfiguration, bool isAsync, bool isAdvancedExporting= false);
123
124
125 void fillStaticExportConfigurationProperties(KisPropertiesConfigurationSP exportConfiguration);
126 bool askUserAboutExportConfiguration(QSharedPointer<KisImportExportFilter> filter, KisPropertiesConfigurationSP exportConfiguration, const QByteArray &from, const QByteArray &to, bool batchMode, const bool showWarnings, bool *alsoAsKra, bool isAdvancedExporting = false);
127
128 KisImportExportErrorCode doImport(const QString &location, QSharedPointer<KisImportExportFilter> filter);
129
130 KisImportExportErrorCode doExport(const QString &location, QSharedPointer<KisImportExportFilter> filter, KisPropertiesConfigurationSP exportConfiguration, const QString alsoAsKraLocation);
131 KisImportExportErrorCode doExportImpl(const QString &location, QSharedPointer<KisImportExportFilter> filter, KisPropertiesConfigurationSP exportConfiguration);
132
133 QString getAlsoAsKraLocation(const QString location) const;
134
135 // Private API
138
140
144
145 class Private;
146 Private * const d;
147};
148
149#endif // __KO_FILTER_MANAGER_H__
The base class for import and export filters.
The class managing all the filters.
KisImportExportManager & operator=(const KisImportExportManager &rhs)
static QStringList m_exportMimeTypes
KisImportExportManager(const KisImportExportManager &rhs)
static QStringList m_importMimeTypes
A static cache for the availability checks of filters.