/** * @RDE_HEADER@ * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2017-11-15 */ #pragma once #include #include namespace LtsNotification { class LtsNotification; } class QTcpSocket; namespace DeveloperTools { class FtcMock; class GuiPlugin final : public QObject, public GuiPluginBase::Plugin { Q_PLUGIN_METADATA(IID "gui:3:dev") Q_INTERFACES(GuiPluginBase::Plugin) Q_OBJECT public: explicit GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return QLatin1String("DeveloperToolsGuiPlugin"); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType ) const override { return true; } }; class InterfaceImpl final : public QObject, public GuiPluginBase::Interface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); ~InterfaceImpl(); QVector getActions() override; QString menuGroup() const override { return QStringLiteral("[Dev]"); } bool availableInPartition(IDL::PartitionType ) const override { return true; } private slots: void slotCheckFlags(); void slotCommand(QTcpSocket *client, const QStringList &argList); private: void showDevTools(); void showAutoRestart(); static bool s_devDialogVisible; LtsNotification::LtsNotification *m_noti { nullptr }; QStringList m_processedFlags; FtcMock *m_ftcMock { nullptr }; }; } // namespace ExerciseManagement