File indexing completed on 2024-06-16 04:16:05

0001 /*
0002  *  SPDX-FileCopyrightText: 2015 Jouni Pentikäinen <joupent@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "KisAnimDockers.h"
0008 #include "KisAnimTimelineDocker.h"
0009 #include "KisOnionSkinsDocker.h"
0010 #include "KisAnimCurvesDocker.h"
0011 
0012 #include <kpluginfactory.h>
0013 
0014 #include <KoDockFactoryBase.h>
0015 #include <KoDockRegistry.h>
0016 
0017 #include "KisViewManager.h"
0018 
0019 K_PLUGIN_FACTORY_WITH_JSON(AnimationDockersPluginFactory, "krita_animationdocker.json", registerPlugin<AnimationDockersPlugin>();)
0020 
0021 class TimelineDockerFactory : public KoDockFactoryBase {
0022 public:
0023     TimelineDockerFactory()
0024     {
0025     }
0026 
0027     QString id() const override
0028     {
0029         return QString( "TimelineDocker" );
0030     }
0031 
0032     virtual Qt::DockWidgetArea defaultDockWidgetArea() const
0033     {
0034         return Qt::RightDockWidgetArea;
0035     }
0036 
0037     QDockWidget *createDockWidget() override
0038     {
0039         KisAnimTimelineDocker *dockWidget = new KisAnimTimelineDocker();
0040         dockWidget->setObjectName(id());
0041 
0042         return dockWidget;
0043     }
0044 
0045     DockPosition defaultDockPosition() const override
0046     {
0047         return DockMinimized;
0048     }
0049 private:
0050 };
0051 
0052 class OnionSkinsDockerFactory : public KoDockFactoryBase {
0053 public:
0054     OnionSkinsDockerFactory()
0055     {
0056     }
0057 
0058     QString id() const override
0059     {
0060         return QString( "OnionSkinsDocker" );
0061     }
0062 
0063     virtual Qt::DockWidgetArea defaultDockWidgetArea() const
0064     {
0065         return Qt::RightDockWidgetArea;
0066     }
0067 
0068     QDockWidget *createDockWidget() override
0069     {
0070         KisOnionSkinsDocker *dockWidget = new KisOnionSkinsDocker();
0071         dockWidget->setObjectName(id());
0072 
0073         return dockWidget;
0074     }
0075 
0076     DockPosition defaultDockPosition() const override
0077     {
0078         return DockMinimized;
0079     }
0080 private:
0081 };
0082 
0083 class AnimationCurvesDockerFactory : public KoDockFactoryBase {
0084 public:
0085     AnimationCurvesDockerFactory()
0086     {
0087     }
0088 
0089     QString id() const override
0090     {
0091         return QString( "AnimationCurvesDocker" );
0092     }
0093 
0094     virtual Qt::DockWidgetArea defaultDockWidgetArea() const
0095     {
0096         return Qt::RightDockWidgetArea;
0097     }
0098 
0099     QDockWidget *createDockWidget() override
0100     {
0101         KisAnimCurvesDocker *dockWidget = new KisAnimCurvesDocker();
0102         dockWidget->setObjectName(id());
0103 
0104         return dockWidget;
0105     }
0106 
0107     DockPosition defaultDockPosition() const override
0108     {
0109         return DockMinimized;
0110     }
0111 private:
0112 };
0113 
0114 AnimationDockersPlugin::AnimationDockersPlugin(QObject *parent, const QVariantList &)
0115     : QObject(parent)
0116 {
0117     KoDockRegistry::instance()->add(new TimelineDockerFactory());
0118     KoDockRegistry::instance()->add(new OnionSkinsDockerFactory());
0119     KoDockRegistry::instance()->add(new AnimationCurvesDockerFactory());
0120 }
0121 
0122 AnimationDockersPlugin::~AnimationDockersPlugin()
0123 {
0124 }
0125 
0126 #include "KisAnimDockers.moc"