File indexing completed on 2024-05-12 16:02:10

0001 /*  This file is part of the KDE project
0002 
0003     SPDX-FileCopyrightText: 1999 Matthias Elter <elter@kde.org>
0004     SPDX-FileCopyrightText: 2003 Patrick Julien <freak@codepimps.org>
0005     SPDX-FileCopyrightText: 2005 Sven Langkamp <sven.langkamp@gmail.com>
0006 
0007     SPDX-License-Identifier: LGPL-2.1-or-later
0008  */
0009 
0010 #ifndef KORESOURCESERVERPROVIDER_H
0011 #define KORESOURCESERVERPROVIDER_H
0012 
0013 #include <kritawidgets_export.h>
0014 
0015 #include <QThread>
0016 
0017 #include <WidgetsDebug.h>
0018 
0019 #include "KoResourceServer.h"
0020 #include <resources/KoPattern.h>
0021 #include <resources/KoAbstractGradient.h>
0022 #include <resources/KoColorSet.h>
0023 #include <resources/KoSvgSymbolCollectionResource.h>
0024 #include <resources/KoGamutMask.h>
0025 #include <config-seexpr.h>
0026 #if defined HAVE_SEEXPR
0027 #include <resources/KisSeExprScript.h>
0028 #endif
0029 
0030 /**
0031  * Provides default resource servers for gradients, patterns and palettes
0032  */
0033 class KRITAWIDGETS_EXPORT KoResourceServerProvider : public QObject
0034 {
0035     Q_OBJECT
0036 
0037 public:
0038     KoResourceServerProvider();
0039     ~KoResourceServerProvider() override;
0040 
0041     static KoResourceServerProvider* instance();
0042 
0043     static KoResourceServer<KoPattern> *patternServer();
0044     static KoResourceServer<KoAbstractGradient> *gradientServer();
0045     static KoResourceServer<KoColorSet> *paletteServer();
0046     static KoResourceServer<KoSvgSymbolCollectionResource> *svgSymbolCollectionServer();
0047     static KoResourceServer<KoGamutMask> *gamutMaskServer();
0048 #if defined HAVE_SEEXPR
0049     static KoResourceServer<KisSeExprScript> *seExprScriptServer();
0050 #endif
0051 
0052 private:
0053     KoResourceServerProvider(const KoResourceServerProvider&);
0054     KoResourceServerProvider operator=(const KoResourceServerProvider&);
0055 
0056 private:
0057     struct Private;
0058     Private* const d;
0059 };
0060 
0061 #endif // KORESOURCESERVERPROVIDER_H