File indexing completed on 2024-05-05 05:56:43

0001 /*
0002     This file is part of the Okteta KPart module, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2003, 2007, 2009, 2019 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 #include "partfactory.hpp"
0010 
0011 // part
0012 #include "part.hpp"
0013 // Okteta Kasten
0014 #include <Kasten/Okteta/ByteArrayViewProfileManager>
0015 #include <Kasten/Okteta/ByteArrayStreamEncoderConfigEditorFactoryFactory>
0016 #include <Kasten/Okteta/ByteArrayDataGeneratorConfigEditorFactoryFactory>
0017 #include <Kasten/Okteta/ByteArrayStreamEncoderFactory>
0018 #include <Kasten/Okteta/ByteArrayDataGeneratorFactory>
0019 // Kasten
0020 #include <Kasten/ModelCodecViewManager>
0021 #include <Kasten/ModelCodecManager>
0022 // KF
0023 #include <KPluginMetaData>
0024 #include <KLocalizedString>
0025 
0026 OktetaPartFactory::OktetaPartFactory()
0027 {
0028     mByteArrayViewProfileManager = new Kasten::ByteArrayViewProfileManager();
0029 
0030     mModelCodecViewManager = new Kasten::ModelCodecViewManager();
0031     mModelCodecManager = new Kasten::ModelCodecManager();
0032 
0033     const QVector<Kasten::AbstractModelStreamEncoder*> encoderList =
0034         Kasten::ByteArrayStreamEncoderFactory::createStreamEncoders();
0035 
0036     const QVector<Kasten::AbstractModelDataGenerator*> generatorList =
0037         Kasten::ByteArrayDataGeneratorFactory::createDataGenerators();
0038 
0039     const QVector<Kasten::AbstractModelStreamEncoderConfigEditorFactory*> encoderConfigEditorFactoryList =
0040         Kasten::ByteArrayStreamEncoderConfigEditorFactoryFactory::createFactorys();
0041 
0042     const QVector<Kasten::AbstractModelDataGeneratorConfigEditorFactory*> generatorConfigEditorFactoryList =
0043         Kasten::ByteArrayDataGeneratorConfigEditorFactoryFactory::createFactorys();
0044 
0045     mModelCodecManager->setEncoders( encoderList );
0046     mModelCodecManager->setGenerators( generatorList );
0047 
0048     mModelCodecViewManager->setEncoderConfigEditorFactories(encoderConfigEditorFactoryList);
0049     mModelCodecViewManager->setGeneratorConfigEditorFactories(generatorConfigEditorFactoryList);
0050 }
0051 
0052 OktetaPartFactory::~OktetaPartFactory()
0053 {
0054     delete mByteArrayViewProfileManager;
0055     delete mModelCodecViewManager;
0056     delete mModelCodecManager;
0057 }
0058 
0059 QObject* OktetaPartFactory::create(const char* iface,
0060                                    QWidget* parentWidget,
0061                                    QObject* parent,
0062                                    const QVariantList& args,
0063                                    const QString& keyword)
0064 {
0065     Q_UNUSED(parentWidget)
0066     Q_UNUSED(keyword);
0067 
0068     const OktetaPart::Modus modus =
0069         (args.contains(QStringLiteral("Browser/View")) ||
0070          (strcmp(iface, "Browser/View") == 0)) ?       OktetaPart::Modus::BrowserView :
0071         (strcmp(iface, "KParts::ReadOnlyPart") == 0) ? OktetaPart::Modus::ReadOnly :
0072         /* else */                                     OktetaPart::Modus::ReadWrite;
0073 
0074     auto* part = new OktetaPart(parent, metaData(), modus, mByteArrayViewProfileManager, mModelCodecManager, mModelCodecViewManager);
0075 
0076     return part;
0077 }
0078 
0079 #include "moc_partfactory.cpp"