From 9eb29fd87ee43ae4fcfcc74d426a849788e4f08a Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 1 Aug 2024 14:51:36 +0200 Subject: [PATCH] Lua: Cleanup qt types bindings Change-Id: Iba58eab8ef5c7439e1db0e27461671cf6d8e5b3e Reviewed-by: hjk --- src/plugins/lua/CMakeLists.txt | 1 + src/plugins/lua/bindings/qt.cpp | 78 +++++++++++++++++++++++++++++++++ src/plugins/lua/luaqttypes.cpp | 78 +++------------------------------ 3 files changed, 85 insertions(+), 72 deletions(-) create mode 100644 src/plugins/lua/bindings/qt.cpp diff --git a/src/plugins/lua/CMakeLists.txt b/src/plugins/lua/CMakeLists.txt index 846e9cdcf2d..80c563cb821 100644 --- a/src/plugins/lua/CMakeLists.txt +++ b/src/plugins/lua/CMakeLists.txt @@ -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 diff --git a/src/plugins/lua/bindings/qt.cpp b/src/plugins/lua/bindings/qt.cpp new file mode 100644 index 00000000000..4616b7d51b0 --- /dev/null +++ b/src/plugins/lua/bindings/qt.cpp @@ -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 + +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 diff --git a/src/plugins/lua/luaqttypes.cpp b/src/plugins/lua/luaqttypes.cpp index ac3ff81bed2..840482f4837 100644 --- a/src/plugins/lua/luaqttypes.cpp +++ b/src/plugins/lua/luaqttypes.cpp @@ -3,6 +3,12 @@ #include "luaengine.h" +#include +#include +#include +#include +#include + // This defines the conversion from QString to lua_string and vice versa bool sol_lua_check(sol::types, lua_State *L, @@ -241,75 +247,3 @@ int sol_lua_push(sol::types, 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