Add plugin permissions and IO API (#5231)

This commit is contained in:
Mm2PL
2024-03-09 20:16:25 +01:00
committed by GitHub
parent 2361d30e4b
commit 658fceddaa
16 changed files with 889 additions and 19 deletions
+10
View File
@@ -4,6 +4,7 @@
# include "Application.hpp"
# include "controllers/plugins/LuaAPI.hpp"
# include "controllers/plugins/LuaUtilities.hpp"
# include "controllers/plugins/PluginPermission.hpp"
# include <QDir>
# include <QString>
@@ -42,6 +43,8 @@ struct PluginMeta {
// optionally tags that might help in searching for the plugin
std::vector<QString> tags;
std::vector<PluginPermission> permissions;
// errors that occurred while parsing info.json
std::vector<QString> errors;
@@ -88,6 +91,11 @@ public:
return this->loadDirectory_;
}
QDir dataDirectory() const
{
return this->loadDirectory_.absoluteFilePath("data");
}
// Note: The CallbackFunction object's destructor will remove the function from the lua stack
using LuaCompletionCallback =
lua::CallbackFunction<lua::api::CompletionList, QString, QString, int,
@@ -130,6 +138,8 @@ public:
int addTimeout(QTimer *timer);
void removeTimeout(QTimer *timer);
bool hasFSPermissionFor(bool write, const QString &path);
private:
QDir loadDirectory_;
lua_State *state_;