From 8aac85e99b4497f6f32082a6b95bfe7e2430fbeb Mon Sep 17 00:00:00 2001 From: Syping Date: Sat, 16 May 2020 16:57:07 +0200 Subject: [PATCH] decrease repeating code --- src/luaenginegui/luaengine/LuaEngineGui.cpp | 182 +++----------------- src/luaenginegui/luaengine/LuaEngineGui.h | 6 +- 2 files changed, 32 insertions(+), 156 deletions(-) diff --git a/src/luaenginegui/luaengine/LuaEngineGui.cpp b/src/luaenginegui/luaengine/LuaEngineGui.cpp index 1bd79a4..320de6c 100644 --- a/src/luaenginegui/luaengine/LuaEngineGui.cpp +++ b/src/luaenginegui/luaengine/LuaEngineGui.cpp @@ -720,20 +720,7 @@ int LuaEngineGui::createCheckBox(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { labelText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QCheckBox *checkBox = new QCheckBox(parent); @@ -779,20 +766,7 @@ int LuaEngineGui::createGroupBox(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { groupBoxTitle = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QGroupBox *groupBox = new QGroupBox(parent); @@ -813,20 +787,7 @@ int LuaEngineGui::createLabel(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { labelText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QLabel *label = new QLabel(parent); @@ -888,20 +849,7 @@ int LuaEngineGui::createLineEdit(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { editText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QLineEdit *lineEdit = new QLineEdit(parent); @@ -1022,20 +970,7 @@ int LuaEngineGui::createPlainTextEdit(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { editText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QPlainTextEdit *textEdit = new QPlainTextEdit(parent); @@ -1058,20 +993,7 @@ int LuaEngineGui::createProgressBar(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { value = getVariant(L_p, 1).toInt(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); if (getArgumentCount(L_p) >= 4) { minValue = getVariant(L_p, 3).toInt(); maxValue = getVariant(L_p, 4).toInt(); @@ -1098,20 +1020,7 @@ int LuaEngineGui::createPushButton(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { buttonText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QPushButton *pushButton = new QPushButton(parent); @@ -1132,20 +1041,7 @@ int LuaEngineGui::createRadioButton(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { labelText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QRadioButton *radioButton = new QRadioButton(parent); @@ -1187,20 +1083,7 @@ int LuaEngineGui::createTabBar(lua_State *L_p) QLayout *layout = nullptr; QWidget *parent = nullptr; if (getArgumentCount(L_p) >= 1) { - void *pointer = getPointer(L_p, 1); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 1), layout, parent); } QTabWidget *tabWidget = new QTabWidget(parent); tabWidget->setObjectName(nameForPointer(tabWidget)); @@ -1219,20 +1102,7 @@ int LuaEngineGui::createTextEdit(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { editText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QTextEdit *textEdit = new QTextEdit(parent); @@ -1253,20 +1123,7 @@ int LuaEngineGui::createToolButton(lua_State *L_p) if (getArgumentCount(L_p) >= 1) { buttonText = getVariant(L_p, 1).toString(); if (getArgumentCount(L_p) >= 2) { - void *pointer = getPointer(L_p, 2); - if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { - parent = ((QMainWindow*)pointer)->centralWidget(); - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { - parent = (QWidget*)pointer; - } - else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { - QWidget *widget = windowForObject((QObject*)pointer); - if (widget != nullptr) { - layout = (QLayout*)pointer; - parent = widget; - } - } + lpForPointer(getPointer(L_p, 2), layout, parent); } } QToolButton *toolButton = new QToolButton(parent); @@ -1421,6 +1278,23 @@ QWidget* LuaEngineGui::windowForObject(QObject *object) return nullptr; } +void LuaEngineGui::lpForPointer(void *pointer, QLayout *layout, QWidget *parent) +{ + if (pointer != NULL && ((QObject*)pointer)->inherits("QMainWindow")) { + parent = ((QMainWindow*)pointer)->centralWidget(); + } + else if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) { + parent = (QWidget*)pointer; + } + else if (pointer != NULL && ((QObject*)pointer)->inherits("QLayout")) { + QWidget *widget = windowForObject((QObject*)pointer); + if (widget != nullptr) { + layout = (QLayout*)pointer; + parent = widget; + } + } +} + QString LuaEngineGui::nameForPointer(void *pointer) { QString nameStorage; diff --git a/src/luaenginegui/luaengine/LuaEngineGui.h b/src/luaenginegui/luaengine/LuaEngineGui.h index 910795a..9f133bd 100644 --- a/src/luaenginegui/luaengine/LuaEngineGui.h +++ b/src/luaenginegui/luaengine/LuaEngineGui.h @@ -21,8 +21,9 @@ #include "LuaEngineGui_global.h" #include "LuaEngine.h" #include -#include +#include #include +#include class LUAENGINEGUISHARED_EXPORT LuaEngineGui : public LuaEngine { @@ -80,8 +81,9 @@ public: private: lua_State *L; - static QString nameForPointer(void *pointer); static QWidget* windowForObject(QObject *object); + static void lpForPointer(void *pointer, QLayout *layout, QWidget *parent); + static QString nameForPointer(void *pointer); }; #endif // LUAENGINEGUI_H