summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/macro.cc5
-rw-r--r--client/macro.h2
-rw-r--r--client/mainwindow.cc13
3 files changed, 19 insertions, 1 deletions
diff --git a/client/macro.cc b/client/macro.cc
index dbe34f5..650a352 100644
--- a/client/macro.cc
+++ b/client/macro.cc
@@ -35,7 +35,12 @@
Macro::Macro(QDomNode &n)
{
window = NULL;
+
+ update(n);
+}
+void Macro::update(QDomNode &n)
+{
node = n.cloneNode(true);
QDomElement xml_elem = node.toElement();
diff --git a/client/macro.h b/client/macro.h
index f79583c..4adaf09 100644
--- a/client/macro.h
+++ b/client/macro.h
@@ -46,6 +46,8 @@ public:
void init(QBoxLayout *layout, Macros &macros, bool initialising, NetCom &netcom, QString course);
+ void update(QDomNode &node);
+
QString name;
QString caption;
diff --git a/client/mainwindow.cc b/client/mainwindow.cc
index c59a877..39921b0 100644
--- a/client/mainwindow.cc
+++ b/client/mainwindow.cc
@@ -131,7 +131,6 @@ void MainWindow::update()
QString macroname = macroelement.attribute("name");
bool found = false;
-
Macros::iterator i = macros.begin();
while(i != macros.end()) {
if(i->name == macroname) found |= true;
@@ -144,6 +143,18 @@ void MainWindow::update()
Macro macro(macronode);
macros[num + macro.name] = macro;
}
+
+ if(found) {
+
+ Macros::iterator i = macros.begin();
+ while(i != macros.end()) {
+ if(i->name == macroname) {
+ i->update(macronode);
+ }
+ i++;
+ }
+
+ }
}
{