File indexing completed on 2024-05-12 16:34:59

0001 /* This file is part of the KDE project
0002  * Copyright (C) 2010 Thomas Zander <zander@kde.org>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Library General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Library General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Library General Public License
0015  * along with this library; see the file COPYING.LIB.  If not, write to
0016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #include "TextEditingPluginContainer.h"
0021 #include "TextTool.h"
0022 #include <KoTextEditingRegistry.h>
0023 #include <KoTextEditingPlugin.h>
0024 
0025 #include <QDebug>
0026 
0027 TextEditingPluginContainer::TextEditingPluginContainer(QObject * parent)
0028     : QObject(parent)
0029 {
0030     foreach (const QString &key, KoTextEditingRegistry::instance()->keys()) {
0031         KoTextEditingFactory *factory =  KoTextEditingRegistry::instance()->value(key);
0032         Q_ASSERT(factory);
0033         if (m_textEditingPlugins.contains(factory->id())) {
0034             qWarning() << "Duplicate id for textEditingPlugin, ignoring one! (" << factory->id() << ")";
0035             continue;
0036         }
0037         KoTextEditingPlugin *plugin = factory->create();
0038         if (plugin) {
0039             m_textEditingPlugins.insert(factory->id(), plugin);
0040         }
0041     }
0042 }
0043 
0044 TextEditingPluginContainer::~TextEditingPluginContainer()
0045 {
0046     qDeleteAll(m_textEditingPlugins);
0047     m_textEditingPlugins.clear();
0048 }
0049 
0050 KoTextEditingPlugin *TextEditingPluginContainer::spellcheck() const
0051 {
0052     return plugin("spellcheck");
0053 }