summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/macrowindow.cc13
-rw-r--r--client/macrowindow.h2
-rw-r--r--client/mainwindow.cc26
3 files changed, 27 insertions, 14 deletions
diff --git a/client/macrowindow.cc b/client/macrowindow.cc
index 6a20632..3161ce6 100644
--- a/client/macrowindow.cc
+++ b/client/macrowindow.cc
@@ -44,16 +44,18 @@ extern QString user;
extern QString host;
extern quint16 port;
-MacroWindow::MacroWindow(NetCom &n, QDomNode &xml_doc, QString course)
+MacroWindow::MacroWindow(NetCom &n, QDomNode &xml_doc, QString course, bool collapsed)
: Collapser(), netcom(n)
{
this->course = course;
- mainwidget = NULL;
- setCollapsedWidget(new QLabel("Empty"));
+
+ setCollapsedWidget(new QLabel(""));
this->lua = new LUA(this);
update(xml_doc);
+
+ setCollapsed(collapsed);
}
MacroWindow::~MacroWindow()
@@ -69,6 +71,11 @@ void MacroWindow::update(QDomNode &node)
// mainwidget = new QLabel("Expanded");
// resumewidget = new QLabel("Collapsed");
+ mainwidget = NULL;
+
+ widgets.clear();
+ auxwidgets.clear();
+
initMacro(node);
if(mainwidget) setExpandedWidget(mainwidget);
diff --git a/client/macrowindow.h b/client/macrowindow.h
index 4e040da..3100a5d 100644
--- a/client/macrowindow.h
+++ b/client/macrowindow.h
@@ -46,7 +46,7 @@ class MacroWindow : public Collapser
{
Q_OBJECT
public:
- MacroWindow(NetCom &netcom, QDomNode &xml_doc, QString course);
+ MacroWindow(NetCom &netcom, QDomNode &xml_doc, QString course, bool collapsed = true);
~MacroWindow();
bool isClosed();
diff --git a/client/mainwindow.cc b/client/mainwindow.cc
index 50ca8a9..efd4c31 100644
--- a/client/mainwindow.cc
+++ b/client/mainwindow.cc
@@ -80,20 +80,24 @@ void MainWindow::update()
if(xml_elem.hasAttribute("name")) macroname = xml_elem.attribute("name");
if(macros.find(macroname) == macros.end()) {
- macros[macroname] = new MacroWindow(netcom, macronode, course);
-
+ bool isstatic = false;
+ if(xml_elem.attribute("static", "false") == "true") isstatic = true;
+ macros[macroname] = new MacroWindow(netcom, macronode, course, !isstatic);
+
QGroupBox *g = new QGroupBox(" " + xml_elem.attribute("caption", macroname));
g->setCheckable(false);
g->setChecked(false);
+ ((QBoxLayout*)w->layout())->addWidget(g);
- QPushButton *b = new QPushButton(">>", g);
- b->setFixedSize(16,16);
- b->show();
- b->move(0,0);
+ if(!isstatic) {
+ QPushButton *b = new QPushButton(">>", g);
+ b->setFixedSize(16,16);
+ b->show();
+ b->move(0,0);
- connect(b, SIGNAL(clicked()), this, SLOT(closeAll()));
- connect(b, SIGNAL(clicked()), macros[macroname], SLOT(toggleMacro()));
- ((QBoxLayout*)w->layout())->addWidget(g);
+ connect(b, SIGNAL(clicked()), this, SLOT(closeAll()));
+ connect(b, SIGNAL(clicked()), macros[macroname], SLOT(toggleMacro()));
+ }
QHBoxLayout *l = new QHBoxLayout();
l->setContentsMargins(10,0,10,0);
@@ -105,7 +109,9 @@ void MainWindow::update()
} else {
macros[macroname]->update(macronode);
- macros[macroname]->setCollapsed(true);
+ if(xml_elem.attribute("static", "false") == "false") {
+ macros[macroname]->setCollapsed(true);
+ }
}
}