From c1754859e364cdddbd4e76375beaa86f64119400 Mon Sep 17 00:00:00 2001 From: mfranz Date: Tue, 23 May 2006 20:30:32 +0000 Subject: [PATCH] update widget every two seconds in addition to the usual updates. This works for tied() properties, too. Search for "update_interval" and set it to 0 if you don't want these updates at all. --- gui/dialogs/property-browser.xml | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/gui/dialogs/property-browser.xml b/gui/dialogs/property-browser.xml index c45793c1a..e1b2fea28 100644 --- a/gui/dialogs/property-browser.xml +++ b/gui/dialogs/property-browser.xml @@ -88,7 +88,8 @@ var input = dlg.getNode("input", 1); var list = dlg.getNode("list", 1); var node = nil; - var dir = "/"; + var dir = nil; + var update_interval = 2; update = func(w) { fgcommand("dialog-update", props.Node.new({"object-name": w, @@ -123,10 +124,10 @@ update("input"); } else { var name = node.getName(); - var i = node.getIndex(); + var index = node.getIndex(); var type = node.getType(); - if (i) { - name ~= "[" ~ i ~ "]"; + if (index) { + name ~= "[" ~ index ~ "]"; } label.setValue(squeeze(name, 30)); var value = nil; @@ -152,16 +153,28 @@ } } + var active = 1; + auto_update = func { + if (active and update_interval) { + list.setValue(dir); + update("property-list"); + settimer(auto_update, update_interval); + } + } + if (dlg.getNode("last") != nil) { dir = dlg.getNode("last").getValue(); - list.setValue(dir); - node = props.globals.getNode(dir); + } else { + dir = "/"; } + list.setValue(dir); selected(); - update("list"); + update("property-list"); + auto_update(); + active = 0; dlg.getNode("last", 1).setValue(dir);