2026-04-06 00:20:51 -05:00

63 lines
2.0 KiB
C++

#ifndef AXCOMMANDWRAPPERS_H
#define AXCOMMANDWRAPPERS_H
#include <QJSEngine>
#include <QObject>
#include <QJSValue>
#include <Agent/Commander.h>
class AxCommandWrappers : public QObject {
Q_OBJECT
Command command;
public:
explicit AxCommandWrappers(const QString &name, const QString &description, const QString &example, const QString &message, QObject* parent = nullptr);
Command getCommand() const;
Q_INVOKABLE void addSubCommands(const QJSValue& array);
Q_INVOKABLE void addArgBool(const QString &flag, const QJSValue &arg2 = QJSValue(), const QJSValue &arg3 = QJSValue());
Q_INVOKABLE void addArgInt(const QString &name, const QJSValue &arg2 = QJSValue(), const QJSValue &arg3 = QJSValue());
Q_INVOKABLE void addArgFlagInt(const QString &flag, const QString &name, const QJSValue &arg3 = QJSValue(), const QJSValue &arg4 = QJSValue());
Q_INVOKABLE void addArgString(const QString &name, const QJSValue &arg2 = QJSValue(), const QJSValue &arg3 = QJSValue());
Q_INVOKABLE void addArgFlagString(const QString &flag, const QString &name, const QJSValue &arg3 = QJSValue(), const QJSValue &arg4 = QJSValue());
Q_INVOKABLE void addArgFile(const QString &name, bool required = false, const QString &description = "");
Q_INVOKABLE void addArgFlagFile(const QString &flag, const QString &name, bool required = false, const QString &description = "");
Q_INVOKABLE void setPreHook(const QJSValue& handler);
Q_SIGNALS:
void scriptError(const QString &msg);
};
class AxCommandGroupWrapper : public QObject {
Q_OBJECT
QObject* parent;
QString name;
QList<Command> commands;
QJSEngine* engine;
public:
explicit AxCommandGroupWrapper(QJSEngine* engine, QObject* parent = nullptr);
void SetParams(const QString &name, const QJSValue& array);
QString getName() const;
QList<Command> getCommands() const;
QJSEngine* getEngine() const;
Q_INVOKABLE void add(const QJSValue& array);
Q_SIGNALS:
void scriptError(const QString &msg);
};
#endif