From 3e88d70c231e8e522f7c0a6d7aefafbc07c28ec6 Mon Sep 17 00:00:00 2001 From: Syping Date: Fri, 24 Aug 2018 17:45:33 +0200 Subject: [PATCH] getWidgetText added --- src/luaengineapp/app.lua | 3 +++ src/luaenginegui/luaengine/LuaEngineGui.cpp | 23 +++++++++++++++++++++ src/luaenginegui/luaengine/LuaEngineGui.h | 1 + 3 files changed, 27 insertions(+) diff --git a/src/luaengineapp/app.lua b/src/luaengineapp/app.lua index d367d5d..6ecea8c 100644 --- a/src/luaengineapp/app.lua +++ b/src/luaengineapp/app.lua @@ -76,6 +76,9 @@ end function closeDialog(pushButton) disconnect(pushButton, "clicked()") + if not (getWidgetText(dialogLineEdit) == "") then + showMessageBox(InfoMessageBox, "You typed: " .. getWidgetText(dialogLineEdit), "LuaEngine", getParent(pushButton)) + end closeWidget(getParent(pushButton)) end diff --git a/src/luaenginegui/luaengine/LuaEngineGui.cpp b/src/luaenginegui/luaengine/LuaEngineGui.cpp index 8e42df6..ee0d47a 100644 --- a/src/luaenginegui/luaengine/LuaEngineGui.cpp +++ b/src/luaenginegui/luaengine/LuaEngineGui.cpp @@ -59,6 +59,7 @@ void LuaEngineGui::pushClass(lua_State *L_p) pushFunction(L_p, "closeWidget", closeWidget); pushFunction(L_p, "executeWidget", executeWidget); pushFunction(L_p, "showWidget", showWidget); + pushFunction(L_p, "getWidgetText", getWidgetText); pushFunction(L_p, "setWidgetLayout", setWidgetLayout); pushVariant(L_p, "ShowCurrent", 0); pushVariant(L_p, "ShowNormal", 1); @@ -596,6 +597,28 @@ int LuaEngineGui::getParent(lua_State *L_p) return 0; } +int LuaEngineGui::getWidgetText(lua_State *L_p) +{ + if (getArgumentCount(L_p) >= 1) { + void *pointer = getPointer(L_p, 1); + if (pointer != NULL) { + if (((QObject*)pointer)->inherits("QLabel")) { + pushVariant(L_p, ((QLabel*)pointer)->text()); + return 1; + } + else if (((QObject*)pointer)->inherits("QLineEdit")) { + pushVariant(L_p, ((QLineEdit*)pointer)->text()); + return 1; + } + else if (((QObject*)pointer)->inherits("QWidget")) { + pushVariant(L_p, ((QWidget*)pointer)->windowTitle()); + return 1; + } + } + } + return 0; +} + QString LuaEngineGui::nameForPointer(void *pointer) { QString nameStorage; diff --git a/src/luaenginegui/luaengine/LuaEngineGui.h b/src/luaenginegui/luaengine/LuaEngineGui.h index 07e33dc..d9693ce 100644 --- a/src/luaenginegui/luaengine/LuaEngineGui.h +++ b/src/luaenginegui/luaengine/LuaEngineGui.h @@ -51,6 +51,7 @@ public: static int createPushButton(lua_State *L_p); static int createSpacerItem(lua_State *L_p); static int getParent(lua_State *L_p); + static int getWidgetText(lua_State *L_p); private: lua_State *L;