summaryrefslogtreecommitdiff
path: root/client/lua.cc
diff options
context:
space:
mode:
authordeva <deva>2009-01-13 09:59:22 +0000
committerdeva <deva>2009-01-13 09:59:22 +0000
commit9fcf15a06b9ec422dbad53508e8ce71d2d4145c3 (patch)
treed54147e52b1939ba9ebaf356e7047dfebea02887 /client/lua.cc
parent9d982a5b4fc9c7efaa56c8f7a4130361f26b0302 (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.cc46
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)