Lua: Cleanup qt types bindings

Change-Id: Iba58eab8ef5c7439e1db0e27461671cf6d8e5b3e
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2024-08-01 14:51:36 +02:00
parent a8126b2b49
commit 9eb29fd87e
3 changed files with 85 additions and 72 deletions

View File

@@ -15,6 +15,7 @@ add_qtc_plugin(Lua
bindings/localsocket.cpp
bindings/macro.cpp
bindings/messagemanager.cpp
bindings/qt.cpp
bindings/qtcprocess.cpp
bindings/settings.cpp
bindings/texteditor.cpp

View File

@@ -0,0 +1,78 @@
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "../luaengine.h"
#include <QDir>
namespace Lua::Internal {
void setupQtModule()
{
registerProvider("Qt", [](sol::state_view lua) {
sol::table qt(lua, sol::create);
// clang-format off
qt["TextElideMode"] = lua.create_table_with(
"ElideLeft", Qt::ElideLeft,
"ElideRight", Qt::ElideRight,
"ElideMiddle", Qt::ElideMiddle,
"ElideNone", Qt::ElideNone
);
qt["QDirIterator"] = lua.create_table_with(
"IteratorFlag", lua.create_table_with(
"NoIteratorFlags", QDirIterator::NoIteratorFlags,
"FollowSymlinks", QDirIterator::FollowSymlinks,
"Subdirectories", QDirIterator::Subdirectories
)
);
qt["QDir"] = lua.create_table_with(
// QDir::Filters
"Filters", lua.create_table_with(
"Dirs", QDir::Dirs,
"Files", QDir::Files,
"Drives", QDir::Drives,
"NoSymLinks", QDir::NoSymLinks,
"AllEntries", QDir::AllEntries,
"TypeMask", QDir::TypeMask,
"Readable", QDir::Readable,
"Writable", QDir::Writable,
"Executable", QDir::Executable,
"PermissionMask", QDir::PermissionMask,
"Modified", QDir::Modified,
"Hidden", QDir::Hidden,
"System", QDir::System,
"AccessMask", QDir::AccessMask,
"AllDirs", QDir::AllDirs,
"CaseSensitive", QDir::CaseSensitive,
"NoDot", QDir::NoDot,
"NoDotDot", QDir::NoDotDot,
"NoDotAndDotDot", QDir::NoDotAndDotDot,
"NoFilter", QDir::NoFilter
),
// QDir::SortFlag
"SortFlags", lua.create_table_with(
"Name", QDir::Name,
"Time", QDir::Time,
"Size", QDir::Size,
"Unsorted", QDir::Unsorted,
"SortByMask", QDir::SortByMask,
"DirsFirst", QDir::DirsFirst,
"Reversed", QDir::Reversed,
"IgnoreCase", QDir::IgnoreCase,
"DirsLast", QDir::DirsLast,
"LocaleAware", QDir::LocaleAware,
"Type", QDir::Type,
"NoSort", QDir::NoSort
)
);
// clang-format on
return qt;
});
}
} // namespace Lua::Internal

View File

@@ -3,6 +3,12 @@
#include "luaengine.h"
#include <QColor>
#include <QPoint>
#include <QRect>
#include <QSize>
#include <QString>
// This defines the conversion from QString to lua_string and vice versa
bool sol_lua_check(sol::types<QString>,
lua_State *L,
@@ -241,75 +247,3 @@ int sol_lua_push(sol::types<QStringList>, lua_State *L, const QStringList &value
table.add(str);
return sol::stack::push(L, table);
}
namespace Lua::Internal {
void setupQtModule()
{
registerProvider("Qt", [](sol::state_view lua) {
sol::table qt(lua, sol::create);
// clang-format off
qt["TextElideMode"] = lua.create_table_with(
"ElideLeft", Qt::ElideLeft,
"ElideRight", Qt::ElideRight,
"ElideMiddle", Qt::ElideMiddle,
"ElideNone", Qt::ElideNone
);
qt["QDirIterator"] = lua.create_table_with(
"IteratorFlag", lua.create_table_with(
"NoIteratorFlags", QDirIterator::NoIteratorFlags,
"FollowSymlinks", QDirIterator::FollowSymlinks,
"Subdirectories", QDirIterator::Subdirectories
)
);
qt["QDir"] = lua.create_table_with(
// QDir::Filters
"Filters", lua.create_table_with(
"Dirs", QDir::Dirs,
"Files", QDir::Files,
"Drives", QDir::Drives,
"NoSymLinks", QDir::NoSymLinks,
"AllEntries", QDir::AllEntries,
"TypeMask", QDir::TypeMask,
"Readable", QDir::Readable,
"Writable", QDir::Writable,
"Executable", QDir::Executable,
"PermissionMask", QDir::PermissionMask,
"Modified", QDir::Modified,
"Hidden", QDir::Hidden,
"System", QDir::System,
"AccessMask", QDir::AccessMask,
"AllDirs", QDir::AllDirs,
"CaseSensitive", QDir::CaseSensitive,
"NoDot", QDir::NoDot,
"NoDotDot", QDir::NoDotDot,
"NoDotAndDotDot", QDir::NoDotAndDotDot,
"NoFilter", QDir::NoFilter
),
// QDir::SortFlag
"SortFlags", lua.create_table_with(
"Name", QDir::Name,
"Time", QDir::Time,
"Size", QDir::Size,
"Unsorted", QDir::Unsorted,
"SortByMask", QDir::SortByMask,
"DirsFirst", QDir::DirsFirst,
"Reversed", QDir::Reversed,
"IgnoreCase", QDir::IgnoreCase,
"DirsLast", QDir::DirsLast,
"LocaleAware", QDir::LocaleAware,
"Type", QDir::Type,
"NoSort", QDir::NoSort
)
);
// clang-format on
return qt;
});
}
} // namespace Lua::Internal