Warning, file /utilities/okteta/parts/kpart/partfactory.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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 #if KPARTS_VERSION >= QT_VERSION_CHECK(5, 77, 0)
0024 #include <KPluginMetaData>
0025 #endif
0026 #include <KLocalizedString>
0027 
0028 OktetaPartFactory::OktetaPartFactory()
0029 #if KPARTS_VERSION >= QT_VERSION_CHECK(5, 77, 0)
0030 {
0031 #else
0032     : mAboutData(QStringLiteral("oktetapart"),
0033                  i18n("OktetaPart"),
0034                  QStringLiteral(OKTETA_VERSION),
0035                  i18n("Embedded hex editor"),
0036                  KAboutLicense::LGPL_V2_1,
0037                  i18n("Copyright 2003-%1 Friedrich W. H. Kossebau", QStringLiteral("2024")))
0038 {
0039     mAboutData.addAuthor(i18n("Friedrich W. H. Kossebau"), i18n("Author"), QStringLiteral("kossebau@kde.org"));
0040 #endif
0041     mByteArrayViewProfileManager = new Kasten::ByteArrayViewProfileManager();
0042 
0043     mModelCodecViewManager = new Kasten::ModelCodecViewManager();
0044     mModelCodecManager = new Kasten::ModelCodecManager();
0045 
0046     const QVector<Kasten::AbstractModelStreamEncoder*> encoderList =
0047         Kasten::ByteArrayStreamEncoderFactory::createStreamEncoders();
0048 
0049     const QVector<Kasten::AbstractModelDataGenerator*> generatorList =
0050         Kasten::ByteArrayDataGeneratorFactory::createDataGenerators();
0051 
0052     const QVector<Kasten::AbstractModelStreamEncoderConfigEditorFactory*> encoderConfigEditorFactoryList =
0053         Kasten::ByteArrayStreamEncoderConfigEditorFactoryFactory::createFactorys();
0054 
0055     const QVector<Kasten::AbstractModelDataGeneratorConfigEditorFactory*> generatorConfigEditorFactoryList =
0056         Kasten::ByteArrayDataGeneratorConfigEditorFactoryFactory::createFactorys();
0057 
0058     mModelCodecManager->setEncoders( encoderList );
0059     mModelCodecManager->setGenerators( generatorList );
0060 
0061     mModelCodecViewManager->setEncoderConfigEditorFactories(encoderConfigEditorFactoryList);
0062     mModelCodecViewManager->setGeneratorConfigEditorFactories(generatorConfigEditorFactoryList);
0063 }
0064 
0065 OktetaPartFactory::~OktetaPartFactory()
0066 {
0067     delete mByteArrayViewProfileManager;
0068     delete mModelCodecViewManager;
0069     delete mModelCodecManager;
0070 }
0071 
0072 QObject* OktetaPartFactory::create(const char* iface,
0073                                    QWidget* parentWidget,
0074                                    QObject* parent,
0075                                    const QVariantList& args,
0076                                    const QString& keyword)
0077 {
0078     Q_UNUSED(parentWidget)
0079     Q_UNUSED(keyword);
0080 
0081     const OktetaPart::Modus modus =
0082         (args.contains(QStringLiteral("Browser/View")) ||
0083          (strcmp(iface, "Browser/View") == 0)) ?       OktetaPart::Modus::BrowserView :
0084         (strcmp(iface, "KParts::ReadOnlyPart") == 0) ? OktetaPart::Modus::ReadOnly :
0085         /* else */                                     OktetaPart::Modus::ReadWrite;
0086 
0087 #if KPARTS_VERSION >= QT_VERSION_CHECK(5, 77, 0)
0088     auto* part = new OktetaPart(parent, metaData(), modus, mByteArrayViewProfileManager, mModelCodecManager, mModelCodecViewManager);
0089 #else
0090     auto* part = new OktetaPart(parent, mAboutData, modus, mByteArrayViewProfileManager, mModelCodecManager, mModelCodecViewManager);
0091 #endif
0092 
0093     return part;
0094 }
0095 
0096 #include "moc_partfactory.cpp"