From 9fcf15a06b9ec422dbad53508e8ce71d2d4145c3 Mon Sep 17 00:00:00 2001 From: deva Date: Tue, 13 Jan 2009 09:59:22 +0000 Subject: A huge amount of changes, based on the results of two usertest. The changes are contained (but not limited to) in the following list: - Make disabled widgets ignored in validation test. - Do not commit values of disabled widgets to the database. - Make storechildren attribute on metawidget, that enables storing of the child widgets in the database. - Implement LUA resume generator. - Make language attribute on resume tag, and switch parser (format/LUA). - Case insensitive search in combobox. - Click on macro name or line, expands macro. - Greyed out widgets in AltComboBox should be hidden instead. - Keyboard 'delete' should delete item from multilist. - "Commit" button needs to be more visible? Icon? - Upon opening of a second macro, the first macro should indicate itself as 'not saved'. - After 'add' in multilist, the input widgets should be reset. - First widget in a macro should have keyboard focus after expansion. - "Endnu ikke udfyldt" needs to be more clear (darker). - Meta widgets must recurse the isValid() call to its children. - Greyed out widgets must be hidden. - Multilist should be read as a list prior to its input fields. - Visible field on widgets. Hides a widget without disabling it. --- client/lua.cc | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) (limited to 'client/lua.cc') diff --git a/client/lua.cc b/client/lua.cc index 9494ee2..2dcd279 100644 --- a/client/lua.cc +++ b/client/lua.cc @@ -119,7 +119,7 @@ static int _setValue(lua_State *L) int n = lua_gettop(L); // number of arguments if(n != 2) { char errstr[512]; - sprintf(errstr, "Number of args expected 0, got %d", n); + sprintf(errstr, "Number of args expected 2, got %d", n); lua_pushstring(L, errstr); lua_error(L); return 0; @@ -144,6 +144,37 @@ static int _setValue(lua_State *L) return 0; } +static int _setVisible(lua_State *L) +{ + int n = lua_gettop(L); // number of arguments + if(n != 2) { + char errstr[512]; + sprintf(errstr, "Number of args expected 2, got %d", n); + lua_pushstring(L, errstr); + lua_error(L); + return 0; + } + + bool value = lua_toboolean(L, lua_gettop(L)); + lua_pop(L, 1); + QString name = lua_tostring(L, lua_gettop(L)); + lua_pop(L, 1); + + lua_getglobal(L, GLOBAL_POINTER); + LUA *lua = (LUA*)lua_touserdata(L, lua_gettop(L)); + + if(!lua) { + lua_pushstring(L, "No LUA pointer!"); + lua_error(L); + return 1; + } + + lua->setVisible(name, value); + + return 0; +} + + LUA::LUA(MacroWindow *macrowindow) { this->macrowindow = macrowindow; @@ -163,6 +194,7 @@ LUA::LUA(MacroWindow *macrowindow) lua_register(L, "setValue", _setValue); lua_register(L, "enable", _enable); lua_register(L, "disable", _disable); + lua_register(L, "setVisible", _setVisible); } LUA::~LUA() @@ -180,19 +212,25 @@ QString LUA::getValue(QString name) void LUA::setValue(QString name, QString value) { Widget *widget = macrowindow->getWidget(name); - if(widget) return widget->setValue(value); + if(widget) widget->setValue(value); } void LUA::enable(QString name) { Widget *widget = macrowindow->getWidget(name); - if(widget) return widget->enable(); + if(widget) widget->enable(); } void LUA::disable(QString name) { Widget *widget = macrowindow->getWidget(name); - if(widget) return widget->disable(); + if(widget) widget->disable(); +} + +void LUA::setVisible(QString name, bool value) +{ + Widget *widget = macrowindow->getWidget(name); + if(widget) widget->setVisibility(value); } bool LUA::run(QString program, QString name, QString value) -- cgit v1.2.3