File indexing completed on 2024-05-19 04:26:38

0001 /*
0002  *  SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "kis_transform_mask_params_factory_registry.h"
0008 
0009 #include <QGlobalStatic>
0010 
0011 #include "kis_transform_mask_params_interface.h"
0012 
0013 Q_GLOBAL_STATIC(KisTransformMaskParamsFactoryRegistry, s_instance)
0014 
0015 
0016 KisTransformMaskParamsFactoryRegistry::KisTransformMaskParamsFactoryRegistry()
0017 {
0018 }
0019 
0020 KisTransformMaskParamsFactoryRegistry::~KisTransformMaskParamsFactoryRegistry()
0021 {
0022 }
0023 
0024 void KisTransformMaskParamsFactoryRegistry::addFactory(const QString &id, const KisTransformMaskParamsFactory &factory)
0025 {
0026     m_map.insert(id, factory);
0027 }
0028 
0029 KisTransformMaskParamsInterfaceSP
0030 KisTransformMaskParamsFactoryRegistry::createParams(const QString &id, const QDomElement &e)
0031 {
0032     KisTransformMaskParamsFactoryMap::iterator it = m_map.find(id);
0033     return it != m_map.end() ? (*it)(e) : KisTransformMaskParamsInterfaceSP(0);
0034 }
0035 
0036 void KisTransformMaskParamsFactoryRegistry::setAnimatedParamsHolderFactory(const KisAnimatedTransformMaskParamsHolderFactory &factory)
0037 {
0038     m_animatedParamsFactory = factory;
0039 }
0040 
0041 KisAnimatedTransformParamsHolderInterfaceSP KisTransformMaskParamsFactoryRegistry::createAnimatedParamsHolder(KisDefaultBoundsBaseSP defaultBounds)
0042 {
0043     KIS_ASSERT(m_animatedParamsFactory);
0044     return m_animatedParamsFactory(defaultBounds);
0045 }
0046 
0047 KisTransformMaskParamsFactoryRegistry*
0048 KisTransformMaskParamsFactoryRegistry::instance()
0049 {
0050     return s_instance;
0051 }