Lua: Add support for permissions in FilePath class

Change-Id: Ie7fde3f3efe79930ef89715ae43a520583016495
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Justyna Hudziak
2024-09-27 14:54:24 +02:00
parent 293dd59c2b
commit e26e58df99
4 changed files with 53 additions and 1 deletions

View File

@@ -9,6 +9,7 @@
#include <QClipboard> #include <QClipboard>
#include <QCompleter> #include <QCompleter>
#include <QDir> #include <QDir>
#include <QFileDevice>
namespace Lua::Internal { namespace Lua::Internal {
@@ -110,6 +111,23 @@ void setupQtModule()
"NoSort", QDir::NoSort "NoSort", QDir::NoSort
) )
); );
qt["QFileDevice"] = lua.create_table_with(
"Permission", lua.create_table_with(
"ReadOwner", QFileDevice::ReadOwner,
"ReadUser", QFileDevice::ReadUser,
"ReadGroup", QFileDevice::ReadGroup,
"ReadOther", QFileDevice::ReadOther,
"WriteOwner", QFileDevice::WriteOwner,
"WriteUser", QFileDevice::WriteUser,
"WriteGroup", QFileDevice::WriteGroup,
"WriteOther", QFileDevice::WriteOther,
"ExeOwner", QFileDevice::ExeOwner,
"ExeUser", QFileDevice::ExeUser,
"ExeGroup", QFileDevice::ExeGroup,
"ExeOther", QFileDevice::ExeOther
)
);
// clang-format on // clang-format on
return qt; return qt;

View File

@@ -161,7 +161,15 @@ void setupUtilsModule()
"resolvePath", "resolvePath",
sol::overload( sol::overload(
[](const FilePath &p, const QString &path) { return p.resolvePath(path); }, [](const FilePath &p, const QString &path) { return p.resolvePath(path); },
[](const FilePath &p, const FilePath &path) { return p.resolvePath(path); })); [](const FilePath &p, const FilePath &path) { return p.resolvePath(path); }),
"permissions",
[](FilePath& p) {
return static_cast<QFileDevice::Permission>(p.permissions().toInt());
},
"setPermissions",
[](FilePath& p, QFileDevice::Permission permissions) {
p.setPermissions(static_cast<QFile::Permissions>(permissions));
});
utils["FilePath"]["dirEntries_cb"] = utils["__dirEntries_cb__"]; utils["FilePath"]["dirEntries_cb"] = utils["__dirEntries_cb__"];
utils["FilePath"]["dirEntries"] = wrap(utils["__dirEntries_cb__"]); utils["FilePath"]["dirEntries"] = wrap(utils["__dirEntries_cb__"]);

View File

@@ -92,4 +92,22 @@ qt.QDirIterator = {
} }
} }
qt.QFileDevice = {
---@enum Permission
Permission = {
ReadOwner = 0,
ReadUser = 0,
ReadGroup = 0,
ReadOther = 0,
WriteOwner = 0,
WriteUser = 0,
WriteGroup = 0,
WriteOther = 0,
ExeOwner = 0,
ExeUser = 0,
ExeGroup = 0,
ExeOther = 0,
}
}
return qt return qt

View File

@@ -89,6 +89,14 @@ function utils.FilePath:completeSuffix() end
---@return boolean ---@return boolean
function utils.FilePath:isAbsolutePath() end function utils.FilePath:isAbsolutePath() end
---Returns the complete OR-ed together combination of permissions for the file.
---@return Permission
function utils.FilePath:permissions() end
---Sets permissions for the file.
---@param permissions Permission The complete OR-ed together combination of permissions for the file.
function utils.FilePath:setPermissions() end
---@class CommandLine ---@class CommandLine
---@field command FilePath The command to execute. ---@field command FilePath The command to execute.
---@field arguments string[] The arguments to pass to the command. ---@field arguments string[] The arguments to pass to the command.