mirror of
https://gitlab.com/Syping/luaengineapp.git
synced 2024-12-22 11:55:29 +01:00
add getWidgetPixelRatio and setObjectImage
This commit is contained in:
parent
5343818dd4
commit
ca82f46e5f
4 changed files with 96 additions and 4 deletions
|
@ -45,7 +45,8 @@ int main(int argc, char *argv[])
|
||||||
if (arguments.length() >= 2) {
|
if (arguments.length() >= 2) {
|
||||||
QVariant rtPath = arguments.first();
|
QVariant rtPath = arguments.first();
|
||||||
arguments.removeFirst();
|
arguments.removeFirst();
|
||||||
QFile luaScript(arguments.first().toString());
|
QVariant scriptPath = arguments.first();
|
||||||
|
QFile luaScript(scriptPath.toString());
|
||||||
if (!luaScript.open(QIODevice::ReadOnly)) {
|
if (!luaScript.open(QIODevice::ReadOnly)) {
|
||||||
QTextStream(stderr) << "Error: Failed to open \"" << arguments.first().toString() << "\"." << endl;
|
QTextStream(stderr) << "Error: Failed to open \"" << arguments.first().toString() << "\"." << endl;
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -62,6 +63,8 @@ int main(int argc, char *argv[])
|
||||||
LuaEngineIO::pushClass(&luaEngineGui);
|
LuaEngineIO::pushClass(&luaEngineGui);
|
||||||
LuaEngineOS::pushClass(&luaEngineGui);
|
LuaEngineOS::pushClass(&luaEngineGui);
|
||||||
luaEngineGui.pushVariant("_LuaEngineRT", rtPath);
|
luaEngineGui.pushVariant("_LuaEngineRT", rtPath);
|
||||||
|
luaEngineGui.setProperty("EngineType", "Runtime");
|
||||||
|
luaEngineGui.setProperty("ScriptPath", scriptPath);
|
||||||
luaEngineGui.executeLuaScript(luaScript.readAll());
|
luaEngineGui.executeLuaScript(luaScript.readAll());
|
||||||
|
|
||||||
if (luaEngineGui.executeLuaFunction("main", arguments, true)) {
|
if (luaEngineGui.executeLuaFunction("main", arguments, true)) {
|
||||||
|
|
|
@ -77,6 +77,7 @@ int main(int argc, char *argv[])
|
||||||
LuaEngineGui luaEngineGui;
|
LuaEngineGui luaEngineGui;
|
||||||
LuaEngineIO::pushClass(&luaEngineGui);
|
LuaEngineIO::pushClass(&luaEngineGui);
|
||||||
LuaEngineOS::pushClass(&luaEngineGui);
|
LuaEngineOS::pushClass(&luaEngineGui);
|
||||||
|
luaEngineGui.setProperty("EngineType", "Portable");
|
||||||
luaEngineGui.executeLuaScript(luaScript);
|
luaEngineGui.executeLuaScript(luaScript);
|
||||||
|
|
||||||
QVariantList arguments;
|
QVariantList arguments;
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "LuaEngineRegistry.h"
|
||||||
#include "LuaEngineGui.h"
|
#include "LuaEngineGui.h"
|
||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
|
@ -79,6 +80,10 @@ void LuaEngineGui::pushClass(lua_State *L_p)
|
||||||
// Gui
|
// Gui
|
||||||
pushVariant(L_p, "GuiExecuted", "GuiExecuted");
|
pushVariant(L_p, "GuiExecuted", "GuiExecuted");
|
||||||
|
|
||||||
|
// Object
|
||||||
|
pushFunction(L_p, "getWindow", getWindow);
|
||||||
|
pushFunction(L_p, "setObjectImage", setObjectImage);
|
||||||
|
|
||||||
// Widget
|
// Widget
|
||||||
pushFunction(L_p, "closeWidget", closeWidget);
|
pushFunction(L_p, "closeWidget", closeWidget);
|
||||||
pushFunction(L_p, "executeWidget", executeWidget);
|
pushFunction(L_p, "executeWidget", executeWidget);
|
||||||
|
@ -86,6 +91,7 @@ void LuaEngineGui::pushClass(lua_State *L_p)
|
||||||
pushFunction(L_p, "isWidgetChecked", isWidgetChecked);
|
pushFunction(L_p, "isWidgetChecked", isWidgetChecked);
|
||||||
pushFunction(L_p, "isWidgetEnabled", isWidgetEnabled);
|
pushFunction(L_p, "isWidgetEnabled", isWidgetEnabled);
|
||||||
pushFunction(L_p, "isWidgetVisible", isWidgetVisible);
|
pushFunction(L_p, "isWidgetVisible", isWidgetVisible);
|
||||||
|
pushFunction(L_p, "getWidgetPixelRatio", getWidgetPixelRatio);
|
||||||
pushFunction(L_p, "getWidgetText", getWidgetText);
|
pushFunction(L_p, "getWidgetText", getWidgetText);
|
||||||
pushFunction(L_p, "setWidgetChecked", setWidgetChecked);
|
pushFunction(L_p, "setWidgetChecked", setWidgetChecked);
|
||||||
pushFunction(L_p, "setWidgetEnabled", setWidgetEnabled);
|
pushFunction(L_p, "setWidgetEnabled", setWidgetEnabled);
|
||||||
|
@ -178,9 +184,6 @@ void LuaEngineGui::pushClass(lua_State *L_p)
|
||||||
pushVariant(L_p, "SizePolicyPreferred", (int)QSizePolicy::Preferred);
|
pushVariant(L_p, "SizePolicyPreferred", (int)QSizePolicy::Preferred);
|
||||||
pushVariant(L_p, "SizePolicyExpanding", (int)QSizePolicy::Expanding);
|
pushVariant(L_p, "SizePolicyExpanding", (int)QSizePolicy::Expanding);
|
||||||
pushVariant(L_p, "SizePolicyIgnored", (int)QSizePolicy::Ignored);
|
pushVariant(L_p, "SizePolicyIgnored", (int)QSizePolicy::Ignored);
|
||||||
|
|
||||||
// Object
|
|
||||||
pushFunction(L_p, "getWindow", getWindow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LuaEngineGui::pushClass(LuaEngine *luaEngine)
|
void LuaEngineGui::pushClass(LuaEngine *luaEngine)
|
||||||
|
@ -426,6 +429,77 @@ int LuaEngineGui::setMenuShortcut(lua_State *L_p)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int LuaEngineGui::setObjectImage(lua_State *L_p)
|
||||||
|
{
|
||||||
|
if (getArgumentCount(L_p) >= 2) {
|
||||||
|
void *pointer = getPointer(L_p, 1);
|
||||||
|
if (pointer != NULL) {
|
||||||
|
QString imagePath = getVariant(L_p, 2).toString();
|
||||||
|
if (QFileInfo(imagePath).isRelative()) {
|
||||||
|
LuaEngine *engine = (LuaEngine*)engineRegistry->getEngine(L_p);
|
||||||
|
QString engineType = engine->property("EngineType").toString();
|
||||||
|
if (engineType == "Runtime") {
|
||||||
|
QString scriptPath = engine->property("ScriptPath").toString();
|
||||||
|
QString scriptDirPath = QFileInfo(scriptPath).canonicalPath();
|
||||||
|
QString newImagePath = QString("%1/%2").arg(scriptDirPath, imagePath);
|
||||||
|
if (QFile(newImagePath).exists()) {
|
||||||
|
imagePath = newImagePath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
QString newImagePath = QString("%1/%2").arg(QApplication::applicationDirPath(), imagePath);
|
||||||
|
if (QFile(newImagePath).exists()) {
|
||||||
|
imagePath = newImagePath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
double pixelRatio = 1;
|
||||||
|
if (getArgumentCount(L_p) >= 3) {
|
||||||
|
bool pixelRatioOk;
|
||||||
|
double newPixelRatio = getVariant(L_p, 3).toDouble(&pixelRatioOk);
|
||||||
|
if (pixelRatioOk) {
|
||||||
|
pixelRatio = newPixelRatio;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (((QObject*)pointer)->inherits("QCheckBox")) {
|
||||||
|
QPixmap objectImage(imagePath);
|
||||||
|
objectImage.setDevicePixelRatio(pixelRatio);
|
||||||
|
QIcon objectIcon;
|
||||||
|
objectIcon.addPixmap(objectImage);
|
||||||
|
((QCheckBox*)pointer)->setIcon(objectIcon);
|
||||||
|
}
|
||||||
|
else if (((QObject*)pointer)->inherits("QLabel")) {
|
||||||
|
QPixmap objectImage(imagePath);
|
||||||
|
objectImage.setDevicePixelRatio(pixelRatio);
|
||||||
|
((QLabel*)pointer)->setPixmap(objectImage);
|
||||||
|
}
|
||||||
|
else if (((QObject*)pointer)->inherits("QPushButton")) {
|
||||||
|
QPixmap objectImage(imagePath);
|
||||||
|
objectImage.setDevicePixelRatio(pixelRatio);
|
||||||
|
QIcon objectIcon;
|
||||||
|
objectIcon.addPixmap(objectImage);
|
||||||
|
((QPushButton*)pointer)->setIcon(objectIcon);
|
||||||
|
}
|
||||||
|
else if (((QObject*)pointer)->inherits("QRadioButton")) {
|
||||||
|
QPixmap objectImage(imagePath);
|
||||||
|
objectImage.setDevicePixelRatio(pixelRatio);
|
||||||
|
QIcon objectIcon;
|
||||||
|
objectIcon.addPixmap(objectImage);
|
||||||
|
((QRadioButton*)pointer)->setIcon(objectIcon);
|
||||||
|
}
|
||||||
|
else if (((QObject*)pointer)->inherits("QToolButton")) {
|
||||||
|
QPixmap objectImage(imagePath);
|
||||||
|
objectImage.setDevicePixelRatio(pixelRatio);
|
||||||
|
QIcon objectIcon;
|
||||||
|
objectIcon.addPixmap(objectImage);
|
||||||
|
((QToolButton*)pointer)->setIcon(objectIcon);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int LuaEngineGui::setWidgetChecked(lua_State *L_p)
|
int LuaEngineGui::setWidgetChecked(lua_State *L_p)
|
||||||
{
|
{
|
||||||
if (getArgumentCount(L_p) >= 1) {
|
if (getArgumentCount(L_p) >= 1) {
|
||||||
|
@ -1279,6 +1353,18 @@ int LuaEngineGui::getWindow(lua_State *L_p)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int LuaEngineGui::getWidgetPixelRatio(lua_State *L_p)
|
||||||
|
{
|
||||||
|
if (getArgumentCount(L_p) >= 1) {
|
||||||
|
void *pointer = getPointer(L_p, 1);
|
||||||
|
if (pointer != NULL && ((QObject*)pointer)->inherits("QWidget")) {
|
||||||
|
pushVariant(L_p, ((QWidget*)pointer)->devicePixelRatioF());
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int LuaEngineGui::getWidgetText(lua_State *L_p)
|
int LuaEngineGui::getWidgetText(lua_State *L_p)
|
||||||
{
|
{
|
||||||
if (getArgumentCount(L_p) >= 1) {
|
if (getArgumentCount(L_p) >= 1) {
|
||||||
|
|
|
@ -40,6 +40,7 @@ public:
|
||||||
static int showWidget(lua_State *L_p);
|
static int showWidget(lua_State *L_p);
|
||||||
static int setLayoutMargins(lua_State *L_p);
|
static int setLayoutMargins(lua_State *L_p);
|
||||||
static int setMenuShortcut(lua_State *L_p);
|
static int setMenuShortcut(lua_State *L_p);
|
||||||
|
static int setObjectImage(lua_State *L_p);
|
||||||
static int setWidgetChecked(lua_State *L_p);
|
static int setWidgetChecked(lua_State *L_p);
|
||||||
static int setWidgetEnabled(lua_State *L_p);
|
static int setWidgetEnabled(lua_State *L_p);
|
||||||
static int setWidgetFixed(lua_State *L_p);
|
static int setWidgetFixed(lua_State *L_p);
|
||||||
|
@ -82,6 +83,7 @@ public:
|
||||||
static int isWidgetChecked(lua_State *L_p);
|
static int isWidgetChecked(lua_State *L_p);
|
||||||
static int isWidgetEnabled(lua_State *L_p);
|
static int isWidgetEnabled(lua_State *L_p);
|
||||||
static int isWidgetVisible(lua_State *L_p);
|
static int isWidgetVisible(lua_State *L_p);
|
||||||
|
static int getWidgetPixelRatio(lua_State *L_p);
|
||||||
static int getWidgetText(lua_State *L_p);
|
static int getWidgetText(lua_State *L_p);
|
||||||
static int getWindow(lua_State *L_p);
|
static int getWindow(lua_State *L_p);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue