File indexing completed on 2024-05-05 16:46:04

0001 /*
0002     SPDX-FileCopyrightText: 2010, 2015 Alex Richardson <alex.richardson@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 
0007 #include "outlineviewplugin.h"
0008 
0009 #include <KLocalizedString>
0010 #include <KPluginFactory>
0011 
0012 #include <interfaces/iuicontroller.h>
0013 #include <interfaces/icore.h>
0014 
0015 #include <debug.h>
0016 #include "outlinewidget.h"
0017 
0018 K_PLUGIN_FACTORY_WITH_JSON(KDevOutlineViewFactory, "kdevoutlineview.json", registerPlugin<OutlineViewPlugin>();)
0019 
0020 using namespace KDevelop;
0021 
0022 class OutlineViewFactory: public KDevelop::IToolViewFactory {
0023 public:
0024     explicit OutlineViewFactory(OutlineViewPlugin *plugin) : m_plugin(plugin) {}
0025 
0026     QWidget* create(QWidget *parent = nullptr) override
0027     {
0028         return new OutlineWidget(parent, m_plugin);
0029     }
0030 
0031     Qt::DockWidgetArea defaultPosition() const override
0032     {
0033         return Qt::RightDockWidgetArea;
0034     }
0035 
0036     QString id() const override
0037     {
0038         return QStringLiteral("org.kdevelop.OutlineView");
0039     }
0040 
0041 private:
0042     OutlineViewPlugin *m_plugin;
0043 };
0044 
0045 OutlineViewPlugin::OutlineViewPlugin(QObject *parent, const QVariantList&)
0046         : KDevelop::IPlugin(QStringLiteral("kdevoutlineview"), parent)
0047         , m_factory(new OutlineViewFactory(this))
0048 {
0049     core()->uiController()->addToolView(i18nc("@title:window", "Outline"), m_factory);
0050 }
0051 
0052 OutlineViewPlugin::~OutlineViewPlugin()
0053 {
0054 }
0055 
0056 void OutlineViewPlugin::unload()
0057 {
0058     core()->uiController()->removeToolView(m_factory);
0059 }
0060 
0061 #include "outlineviewplugin.moc"
0062 #include "moc_outlineviewplugin.cpp"