1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set et sw=2 ts=2: */
/***************************************************************************
* launcherwindow.cc
*
* Tue Oct 12 11:38:47 CEST 2010
* Copyright 2010 Lars Bisballe Jensen
* elsenator@gmail.com
****************************************************************************/
/*
* This file is part of Pracro.
*
* Pracro is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Pracro is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Pracro; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
#include <QLabel>
#include <QGridLayout>
#include <QRegExpValidator>
#include <QPushButton>
#include <QFileInfo>
#include <QSettings>
#include <QMessageBox>
#include "launcherwindow.h"
LauncherWindow::LauncherWindow(QString arg, QString cpr, QString templ,
QWidget *parent)
: QDialog(parent)
{
setWindowTitle(tr("Pracro Launcher"));
resize(250,80);
QSettings templateConfig(QFileInfo(arg).absolutePath() +
"/templates.ini", QSettings::IniFormat);
QLabel *cprLabel = new QLabel(tr("Patient ID:"));
cprLineEdit = new QLineEdit();
cprLineEdit->setValidator(new QRegExpValidator(QRegExp("^[0-9]{10,10}$"),
this));
QLabel *templatesLabel = new QLabel(tr("Template:"));
templates = new QComboBox();
connect(templates, SIGNAL(currentIndexChanged(int)), this,
SLOT(focusCpr(int)));
QStringList groups = templateConfig.childGroups();
QStringList::iterator i = groups.begin();
while(i != groups.end()) {
if(i->left(8) == "Template") {
templateConfig.beginGroup(*i);
QString name = templateConfig.value("name").toString();
QString value = templateConfig.value("value").toString();
templates->addItem(name, value);
templateConfig.endGroup();
}
i++;
}
QPushButton *ok = new QPushButton(tr("Accept"));
connect(ok, SIGNAL(clicked()), this, SLOT(checkForCpr()));
QPushButton *cancel = new QPushButton(tr("Cancel"));
connect(cancel, SIGNAL(clicked()), this, SLOT(reject()));
QGridLayout *layout = new QGridLayout();
layout->addWidget(templatesLabel, 1, 1);
layout->addWidget(templates, 1, 2, 1, 2);
layout->addWidget(cprLabel, 2, 1);
layout->addWidget(cprLineEdit, 2, 2, 1, 2);
layout->addWidget(ok, 3, 2);
layout->addWidget(cancel, 3, 3);
if(cpr != "CPR_DEFAULT")
cprLineEdit->setText(cpr);
if(templ != "TEMPLATE_DEFAULT") {
long int i = 0;
for(i = 0; i < templates->count(); i++) {
if(templates->itemData(i).toString() == templ)
templates->setCurrentIndex(i);
}
}
setLayout(layout);
cprLineEdit->setFocus();
}
LauncherWindow::~LauncherWindow()
{
}
QString LauncherWindow::getCpr()
{
return cprLineEdit->text();
}
QString LauncherWindow::getTemplate()
{
return templates->itemData(templates->currentIndex()).toString();
}
void LauncherWindow::focusCpr(int)
{
cprLineEdit->setFocus();
}
void LauncherWindow::checkForCpr()
{
if(cprLineEdit->text().length() == 10) {
emit accept();
} else {
QMessageBox::critical(this, tr("Incorrect Patient ID"),
tr("You need to enter a 10 character\n"
"Patient ID in order to continue."),
QMessageBox::Ok);
cprLineEdit->setFocus();
}
}
|