File indexing completed on 2024-05-12 15:56:53
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2006-2007 Thomas Zander <zander@kde.org> 0003 * SPDX-FileCopyrightText: 2004 Boudewijn Rempt <boud@valdyas.org> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "KoToolRegistry.h" 0009 0010 #include <FlakeDebug.h> 0011 #include <kconfiggroup.h> 0012 #include <ksharedconfig.h> 0013 0014 #include "tools/KoPathToolFactory.h" 0015 #include "tools/KoZoomTool.h" 0016 #include "tools/KoZoomToolFactory.h" 0017 #include "KoToolManager.h" 0018 #include <KoPluginLoader.h> 0019 0020 #include <QGlobalStatic> 0021 0022 Q_GLOBAL_STATIC(KoToolRegistry, s_instance) 0023 0024 KoToolRegistry::KoToolRegistry() 0025 : d(0) 0026 { 0027 } 0028 0029 void KoToolRegistry::init() 0030 { 0031 KoPluginLoader::PluginsConfig config; 0032 config.group = "krita"; 0033 config.whiteList = "ToolPlugins"; 0034 config.blacklist = "ToolPluginsDisabled"; 0035 KoPluginLoader::instance()->load(QString::fromLatin1("Krita/Tool"), 0036 QString::fromLatin1("[X-Flake-PluginVersion] == 28"), 0037 config); 0038 0039 // register generic tools 0040 add(new KoPathToolFactory()); 0041 add(new KoZoomToolFactory()); 0042 0043 KConfigGroup cfg = KSharedConfig::openConfig()->group("krita"); 0044 QStringList toolsBlacklist = cfg.readEntry("ToolsBlacklist", QStringList()); 0045 foreach (const QString& toolID, toolsBlacklist) { 0046 delete value(toolID); 0047 remove(toolID); 0048 } 0049 } 0050 0051 KoToolRegistry::~KoToolRegistry() 0052 { 0053 qDeleteAll(doubleEntries()); 0054 qDeleteAll(values()); 0055 } 0056 0057 KoToolRegistry* KoToolRegistry::instance() 0058 { 0059 if (!s_instance.exists()) { 0060 s_instance->init(); 0061 } 0062 return s_instance; 0063 }