diff options
author | deva <deva> | 2009-01-13 09:59:22 +0000 |
---|---|---|
committer | deva <deva> | 2009-01-13 09:59:22 +0000 |
commit | 9fcf15a06b9ec422dbad53508e8ce71d2d4145c3 (patch) | |
tree | d54147e52b1939ba9ebaf356e7047dfebea02887 /client/lua.cc | |
parent | 9d982a5b4fc9c7efaa56c8f7a4130361f26b0302 (diff) |
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.
Diffstat (limited to 'client/lua.cc')
-rw-r--r-- | client/lua.cc | 46 |
1 files changed, 42 insertions, 4 deletions
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) |