From aceed4cc78aaff9f62c4c6f4e6201c38e94a577f Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Tue, 8 Nov 2011 12:46:56 +0100 Subject: Make sure top template and top (non-static) macro has keyboard focus after initialisation. Give central widget a sensible name. --- client/mainwindow.cc | 30 ++++++++++++++++++++++++------ client/mainwindow.h | 2 +- 2 files changed, 25 insertions(+), 7 deletions(-) (limited to 'client') diff --git a/client/mainwindow.cc b/client/mainwindow.cc index f415dcb..4e41418 100644 --- a/client/mainwindow.cc +++ b/client/mainwindow.cc @@ -78,11 +78,14 @@ MainWindow::MainWindow(QString patientid, QString title, QString course, scrollarea = new QScrollArea(); setCentralWidget(scrollarea); - w = new QWidget(); - scrollarea->setWidget(w); + central = new QWidget(); + scrollarea->setWidget(central); scrollarea->setWidgetResizable(true); - w->setLayout(new QVBoxLayout()); + scrollarea->setFocusPolicy(Qt::NoFocus); + central->setFocusPolicy(Qt::NoFocus); + + central->setLayout(new QVBoxLayout()); connect(&netcom, SIGNAL(gotReply(QDomDocument&)), this, SLOT(handle(QDomDocument&))); @@ -107,6 +110,7 @@ MainWindow::MainWindow(QString patientid, QString title, QString course, aboutButton = new QPushButton("Pracro v."VERSION, status); aboutButton->setIcon(QIcon(":icons/icon.png")); aboutButton->setMaximumHeight(18); + aboutButton->setFocusPolicy(Qt::NoFocus); connect(aboutButton, SIGNAL(clicked()), this, SLOT(showAbout())); status->addPermanentWidget(aboutButton); @@ -278,7 +282,7 @@ void MainWindow::updateTemplateHeaders(QDomNode &node) headerfont.setPointSize(headerfont.pointSize() + 4); header->setFont(headerfont); header->setAlignment(Qt::AlignHCenter); - w->layout()->addWidget(header); + central->layout()->addWidget(header); } header->setText(title); @@ -294,6 +298,8 @@ void MainWindow::showError(QString title, QString text) void MainWindow::updateMacros(QDomNodeList &nodes) { + bool creation = entities.size() == 0; + for(int j = 0; j < nodes.count(); j++) { QDomNode node = nodes.at(j); QDomElement elem = node.toElement(); @@ -311,7 +317,7 @@ void MainWindow::updateMacros(QDomNodeList &nodes) } entities[j] = e; entities[j]->update(node); - w->layout()->addWidget(e->widget()); + central->layout()->addWidget(e->widget()); } else { entities[j]->update(node); } @@ -321,7 +327,16 @@ void MainWindow::updateMacros(QDomNodeList &nodes) showError("XML Error", "Expected macro/header tag. Got '" + elem.tagName() + "' tag."); continue; + } + if(creation) { + for(int i = 0; i < entities.size(); i++) { + Macro *macro = (Macro*)entities[i]; + if(macro->isstatic == false) { + macro->widget()->setFocus(); + break; + } + } } } @@ -340,7 +355,7 @@ void MainWindow::updateTemplates(QDomNodeList &nodes) this, SLOT(setTemplate(QString))); entities[j] = e; entities[j]->update(node); - w->layout()->addWidget(e->widget()); + central->layout()->addWidget(e->widget()); } else { entities[j]->update(node); } @@ -350,7 +365,10 @@ void MainWindow::updateTemplates(QDomNodeList &nodes) showError("XML Error", "Expected template tag. Got '" + elem.tagName() + "' tag."); continue; + } + if(entities.size() > 0) { + entities[0]->widget()->setFocus(); } } diff --git a/client/mainwindow.h b/client/mainwindow.h index 84151ad..ad96154 100644 --- a/client/mainwindow.h +++ b/client/mainwindow.h @@ -77,7 +77,7 @@ private: QString patientid; QString user; - QWidget *w; + QWidget *central; Entities entities; -- cgit v1.2.3