File indexing completed on 2024-06-16 04:17:33

0001 /*
0002  * SPDX-FileCopyrightText: 2009 Boudewijn Rempt <boud@valdyas.com>
0003  * SPDX-FileCopyrightText: 2020 Ashwin Dhakaita <ashwingpdhakaita@gmail.com>
0004  *
0005  * SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #include "MyPaintPaintOpFactory.h"
0009 
0010 #include <qmath.h>
0011 #include <QJsonObject>
0012 #include <QJsonDocument>
0013 
0014 #include <kis_icon.h>
0015 #include <KoResourceServer.h>
0016 #include <KoResourceServerProvider.h>
0017 #include <KisResourceServerProvider.h>
0018 #include <KoResourceLoadResult.h>
0019 
0020 #include "MyPaintPaintOp.h"
0021 #include "MyPaintPaintOpPreset.h"
0022 #include "MyPaintPaintOpSettings.h"
0023 #include "MyPaintPaintOpSettingsWidget.h"
0024 
0025 class KisMyPaintOpFactory::Private {
0026 };
0027 
0028 KisMyPaintOpFactory::KisMyPaintOpFactory()
0029     : m_d(new Private)
0030 {
0031 }
0032 
0033 KisMyPaintOpFactory::~KisMyPaintOpFactory() {
0034 
0035     delete m_d;
0036 }
0037 
0038 KisPaintOp* KisMyPaintOpFactory::createOp(const KisPaintOpSettingsSP settings, KisPainter *painter, KisNodeSP node, KisImageSP image) {
0039 
0040     KisPaintOp* op = new KisMyPaintPaintOp(settings, painter, node, image);
0041     Q_CHECK_PTR(op);
0042     return op;
0043 }
0044 
0045 KisPaintOpSettingsSP KisMyPaintOpFactory::createSettings(KisResourcesInterfaceSP resourcesInterface) {
0046 
0047     KisPaintOpSettingsSP settings = new KisMyPaintOpSettings(resourcesInterface);
0048     return settings;
0049 }
0050 
0051 KisPaintOpConfigWidget* KisMyPaintOpFactory::createConfigWidget(QWidget* parent, KisResourcesInterfaceSP resourcesInterface, KoCanvasResourcesInterfaceSP canvasResourcesInterface) {
0052 
0053     KisPaintOpConfigWidget *widget = new KisMyPaintOpSettingsWidget(parent);
0054 
0055     widget->setResourcesInterface(resourcesInterface);
0056     widget->setCanvasResourcesInterface(canvasResourcesInterface);
0057 
0058     return widget;
0059 }
0060 
0061 QString KisMyPaintOpFactory::id() const {
0062 
0063     return "mypaintbrush";
0064 }
0065 
0066 QString KisMyPaintOpFactory::name() const {
0067 
0068     return "MyPaint";
0069 }
0070 
0071 QIcon KisMyPaintOpFactory::icon() {
0072 
0073     return KisIconUtils::loadIcon(id());
0074 }
0075 
0076 QString KisMyPaintOpFactory::category() const {
0077 
0078     return KisPaintOpFactory::categoryStable();
0079 }
0080 
0081 QList<KoResourceLoadResult> KisMyPaintOpFactory::prepareLinkedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface)
0082 {
0083     Q_UNUSED(settings)
0084     Q_UNUSED(resourcesInterface);
0085 
0086     return {};
0087 }
0088 
0089 QList<KoResourceLoadResult> KisMyPaintOpFactory::prepareEmbeddedResources(const KisPaintOpSettingsSP settings, KisResourcesInterfaceSP resourcesInterface)
0090 {
0091     Q_UNUSED(settings)
0092     Q_UNUSED(resourcesInterface);
0093 
0094     return {};
0095 }
0096 
0097 bool KisMyPaintOpFactory::lodSizeThresholdSupported() const
0098 {
0099     return true;
0100 }