File indexing completed on 2024-05-12 16:01:54

0001 /*
0002  *  kis_resourceserver.cc - part of KImageShop
0003  *
0004  *  SPDX-FileCopyrightText: 1999 Matthias Elter <elter@kde.org>
0005  *  SPDX-FileCopyrightText: 2003 Patrick Julien <freak@codepimps.org>
0006  *  SPDX-FileCopyrightText: 2005 Sven Langkamp <sven.langkamp@gmail.com>
0007  *
0008  *  SPDX-License-Identifier: GPL-2.0-or-later
0009  */
0010 
0011 #include "KisResourceServerProvider.h"
0012 
0013 #include <QDir>
0014 #include <QApplication>
0015 #include <QGlobalStatic>
0016 
0017 #include <kis_debug.h>
0018 
0019 #include <KoResourcePaths.h>
0020 
0021 #include <KoResource.h>
0022 #include <KoResourceServer.h>
0023 #include <KoResourceServerProvider.h>
0024 
0025 #include <resources/KoPattern.h>
0026 #include <brushengine/kis_paintop_preset.h>
0027 #include <kis_workspace_resource.h>
0028 #include <KisWindowLayoutResource.h>
0029 #include <KisSessionResource.h>
0030 
0031 #include <kis_psd_layer_style.h>
0032 
0033 Q_GLOBAL_STATIC(KisResourceServerProvider, s_instance)
0034 
0035 typedef KoResourceServer<KisPaintOpPreset> KisPaintOpPresetResourceServer;
0036 typedef KoResourceServer<KisPSDLayerStyle> KisPSDLayerStyleServer;
0037 
0038 KisResourceServerProvider::KisResourceServerProvider()
0039 {
0040     m_paintOpPresetServer = new KisPaintOpPresetResourceServer(ResourceType::PaintOpPresets);
0041     m_workspaceServer = new KoResourceServer<KisWorkspaceResource>(ResourceType::Workspaces);
0042     m_windowLayoutServer = new KoResourceServer<KisWindowLayoutResource>(ResourceType::WindowLayouts);
0043     m_sessionServer = new KoResourceServer<KisSessionResource>(ResourceType::Sessions);
0044     m_layerStyleServer = new KisPSDLayerStyleServer(ResourceType::LayerStyles);
0045 }
0046 
0047 KisResourceServerProvider::~KisResourceServerProvider()
0048 {
0049     delete m_paintOpPresetServer;
0050     delete m_workspaceServer;
0051     delete m_sessionServer;
0052     delete m_windowLayoutServer;
0053     delete m_layerStyleServer;
0054 }
0055 
0056 KisResourceServerProvider* KisResourceServerProvider::instance()
0057 {
0058     return s_instance;
0059 }
0060 
0061 
0062 KisPaintOpPresetResourceServer* KisResourceServerProvider::paintOpPresetServer()
0063 {
0064     return m_paintOpPresetServer;
0065 }
0066 
0067 KoResourceServer< KisWorkspaceResource >* KisResourceServerProvider::workspaceServer()
0068 {
0069     return m_workspaceServer;
0070 }
0071 
0072 KoResourceServer< KisWindowLayoutResource >* KisResourceServerProvider::windowLayoutServer()
0073 {
0074     return m_windowLayoutServer;
0075 }
0076 
0077 KoResourceServer< KisSessionResource >* KisResourceServerProvider::sessionServer()
0078 {
0079     return m_sessionServer;
0080 }
0081 
0082 KoResourceServer<KisPSDLayerStyle> *KisResourceServerProvider::layerStyleServer()
0083 {
0084     return m_layerStyleServer;
0085 }
0086