File indexing completed on 2024-05-05 04:39:43

0001 /*
0002     SPDX-FileCopyrightText: 2017 Aleix Pol Gonzalez <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #ifndef DOCKERPLUGIN_H
0008 #define DOCKERPLUGIN_H
0009 
0010 #include <interfaces/iruntime.h>
0011 #include <interfaces/iplugin.h>
0012 #include <util/path.h>
0013 // Qt
0014 #include <QProcess>
0015 #include <QHash>
0016 
0017 class DockerPreferencesSettings;
0018 
0019 class DockerPlugin : public KDevelop::IPlugin
0020 {
0021     Q_OBJECT
0022 public:
0023     DockerPlugin(QObject *parent, const QVariantList & args);
0024     ~DockerPlugin() override;
0025 
0026     KDevelop::ContextMenuExtension contextMenuExtension(KDevelop::Context* context, QWidget* parent) override;
0027 
0028     void imagesListFinished(int code);
0029 
0030     int configPages() const override;
0031     KDevelop::ConfigPage* configPage(int number, QWidget* parent) override;
0032 
0033 Q_SIGNALS:
0034     ///only used by the test
0035     void imagesListed();
0036 
0037 private:
0038     void runtimeChanged(KDevelop::IRuntime* newRuntime);
0039 
0040     QHash<KDevelop::Path, KDevelop::IRuntime *> m_runtimes;
0041     QScopedPointer<DockerPreferencesSettings> m_settings;
0042 };
0043 
0044 #endif