File indexing completed on 2025-02-09 07:11:25
0001 /* 0002 This file is part of the Kasten Framework, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2008-2009 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef KASTEN_MODELENCODERFILESYSTEMEXPORTER_P_HPP 0010 #define KASTEN_MODELENCODERFILESYSTEMEXPORTER_P_HPP 0011 0012 // lib 0013 #include "modelencoderfilesystemexporter.hpp" 0014 #include "modelencoderfilesystemexportjob.hpp" 0015 #include <abstractmodelstreamencoder.hpp> 0016 #include <abstractmodelexporter_p.hpp> 0017 0018 namespace Kasten { 0019 0020 class ModelEncoderFileSystemExporterPrivate : public AbstractModelExporterPrivate 0021 { 0022 public: 0023 ModelEncoderFileSystemExporterPrivate(ModelEncoderFileSystemExporter* parent, 0024 const QString& remoteTypeName, const QString& remoteMimeType, 0025 AbstractModelStreamEncoder* encoder); 0026 0027 ~ModelEncoderFileSystemExporterPrivate() override; 0028 0029 public: // AbstractModelExporter API 0030 AbstractExportJob* startExport(AbstractModel* model, const AbstractModelSelection* selection, 0031 const QUrl& url); 0032 QString modelTypeName(AbstractModel* model, const AbstractModelSelection* selection) const; 0033 0034 public: 0035 AbstractModelStreamEncoder* encoder() const; 0036 0037 private: 0038 AbstractModelStreamEncoder* const mEncoder; 0039 }; 0040 0041 inline ModelEncoderFileSystemExporterPrivate::ModelEncoderFileSystemExporterPrivate(ModelEncoderFileSystemExporter* parent, 0042 const QString& remoteTypeName, const QString& remoteMimeType, 0043 AbstractModelStreamEncoder* encoder) 0044 : AbstractModelExporterPrivate(parent, remoteTypeName, remoteMimeType) 0045 , mEncoder(encoder) 0046 { 0047 } 0048 0049 inline ModelEncoderFileSystemExporterPrivate::~ModelEncoderFileSystemExporterPrivate() = default; 0050 0051 inline AbstractModelStreamEncoder* ModelEncoderFileSystemExporterPrivate::encoder() const { return mEncoder; } 0052 0053 inline AbstractExportJob* ModelEncoderFileSystemExporterPrivate::startExport(AbstractModel* model, 0054 const AbstractModelSelection* selection, 0055 const QUrl& url) 0056 { 0057 return new ModelEncoderFileSystemExportJob(model, selection, url, mEncoder); 0058 } 0059 0060 inline QString ModelEncoderFileSystemExporterPrivate::modelTypeName(AbstractModel* model, const AbstractModelSelection* selection) const 0061 { 0062 return mEncoder->modelTypeName(model, selection); 0063 } 0064 0065 } 0066 0067 #endif