Свой плагин для WLMill.

Количество задач, которые иногда нужно решать достаточно большое и порой использование скриптов не всегда хватает для этого. Чтобы можно было добавлять свои инструменты в функционал WLMill был создан инструмент – создание плагинов.

Как создать свой плагин?

  • Установить среду разработки QtCreator 5.12.5 (для windows).
  • Создать проект в котором произвести отладку функционала.
  • Создать плагин, который будет интерфейсом между WLMill и вашим проектом.
  • Положить файл dll в папку plugins.

1 . Скачиваем QtCreator и устанавливаем его. Внимание сейчас недоступен исходный код WLMill!!!

2. Данный шаг пропустим. Сделаем простой плагин с базовым функционалом.

3. Создаём проект плагина в QCreator.

Выбираем: Файл>>Создать файл или проект

Далее выбираем имя проекта и папку где он будет. Сделаем проект myPlugin.

Проект открыт.

Теперь удаляем файл _global.h. С помощью правой кнопкой мыши нажав на файл, выбрать пункт удалить.

Переносим файлы WLPlugins.pri, wlscriptplugin.h, wlscriptplugin.cpp в папку с проектом.

Подключаем их к нашему проекту.

Добавляем строки в наш класс MyPlugin.

Определяем интерфейс плагина и переопределив функцию getNameObjectMScript. – задав имя в скрипте.

Добавим переменную m_count и два метода взятия и установки значения.

Префикс Q_INVOKABLE – делает доступным эти функции в MScript и LScript.

#include "wlscriptplugin.h"

class  MyPlugin: public WLScriptPlugin
{
    Q_OBJECT
    Q_INTERFACES(WLScriptPlugin)
    Q_PLUGIN_METADATA(IID WLScriptPlugin_iid)// FILE "interface.json")

private:
    int m_count = 0;

public:
    MyPlugin();

    // WLScriptPlugin interface
public:
    QString getNameObjectMScript();

    Q_INVOKABLE int getCount() const;
    Q_INVOKABLE void setCount(int count);
    Q_INVOKABLE void printConsoleLScript(QString txt);
};

#endif // MYPLUGIN_H

4 Компилируем и переносим файл myPlugin.dll в папку plugins.

После запуска проверяем. Доступен ли нам объект в MScript. Набираем MY и нажимаем Ctrl+Пробел.

Объект доступен !!!

Проект целиком.

Прочие плагины.