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"