File indexing completed on 2024-04-21 15:02:45

0001 /*
0002     SPDX-FileCopyrightText: 2000 David Faure <faure@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "plugin_spellcheck.h"
0008 
0009 #include <KActionCollection>
0010 #include <KLocalizedString>
0011 #include <KMessageBox>
0012 #include <KParts/ReadOnlyPart>
0013 #include <KPluginFactory>
0014 #include <QAction>
0015 #include <QDebug>
0016 #include <QTextEdit>
0017 
0018 PluginSpellCheck::PluginSpellCheck(QObject *parent, const QVariantList &)
0019     : Plugin(parent)
0020 {
0021     QAction *act = new QAction(QStringLiteral("&Select current line (plugin)"), this);
0022     actionCollection()->addAction(QStringLiteral("spellcheck"), act);
0023     connect(act, &QAction::triggered, this, &PluginSpellCheck::slotSpellCheck);
0024 }
0025 
0026 PluginSpellCheck::~PluginSpellCheck()
0027 {
0028 }
0029 
0030 void PluginSpellCheck::slotSpellCheck()
0031 {
0032     // qDebug() << "Plugin parent : " << parent()->objectName() << " (" << parent()->metaObject()->className() << ")";
0033     // The parent is assumed to be a NotepadPart
0034     // Can't use qobject_cast here, we would need NotepadPart to be in a shared library.
0035     if (!parent()->inherits("NotepadPart")) {
0036         KMessageBox::error(nullptr, QStringLiteral("You just called the spell-check action on a wrong part (not NotepadPart)"));
0037     } else {
0038         KParts::ReadOnlyPart *part = static_cast<KParts::ReadOnlyPart *>(parent());
0039         QTextEdit *widget = qobject_cast<QTextEdit *>(part->widget());
0040         Q_ASSERT(widget);
0041         widget->selectAll();
0042     }
0043 }
0044 
0045 K_PLUGIN_FACTORY(PluginSpellCheckFactory, registerPlugin<PluginSpellCheck>();)
0046 
0047 #include "moc_plugin_spellcheck.cpp"
0048 #include "plugin_spellcheck.moc"