File indexing completed on 2024-05-05 05:51:20
0001 /* 0002 SPDX-FileCopyrightText: 2021 Waqar Ahmed <waqar.17a@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 #include "cmaketoolsplugin.h" 0007 0008 #include <KPluginFactory> 0009 #include <KTextEditor/MainWindow> 0010 #include <KXMLGUIFactory> 0011 #include <ktexteditor/document.h> 0012 0013 #include <QDebug> 0014 0015 K_PLUGIN_FACTORY_WITH_JSON(CMakeToolsPluginFactory, "cmaketoolsplugin.json", registerPlugin<CMakeToolsPlugin>();) 0016 0017 CMakeToolsPlugin::CMakeToolsPlugin(QObject *parent, const QVariantList &) 0018 : KTextEditor::Plugin(parent) 0019 { 0020 } 0021 0022 CMakeToolsPlugin::~CMakeToolsPlugin() = default; 0023 0024 QObject *CMakeToolsPlugin::createView(KTextEditor::MainWindow *mainWindow) 0025 { 0026 return new CMakeToolsPluginView(this, mainWindow); 0027 } 0028 0029 CMakeToolsPluginView::CMakeToolsPluginView(CMakeToolsPlugin *plugin, KTextEditor::MainWindow *mainwindow) 0030 : QObject(plugin) 0031 , m_mainWindow(mainwindow) 0032 { 0033 connect(m_mainWindow, &KTextEditor::MainWindow::viewCreated, this, &CMakeToolsPluginView::onViewCreated); 0034 0035 /** 0036 * connect for all already existing views 0037 */ 0038 const auto views = m_mainWindow->views(); 0039 for (KTextEditor::View *view : views) { 0040 onViewCreated(view); 0041 } 0042 } 0043 0044 CMakeToolsPluginView::~CMakeToolsPluginView() 0045 { 0046 m_mainWindow->guiFactory()->removeClient(this); 0047 } 0048 0049 void CMakeToolsPluginView::onViewCreated(KTextEditor::View *v) 0050 { 0051 if (!CMakeCompletion::isCMakeFile(v->document()->url())) 0052 return; 0053 0054 v->registerCompletionModel(&m_completion); 0055 } 0056 0057 #include "cmaketoolsplugin.moc" 0058 #include "moc_cmaketoolsplugin.cpp"