/* -*- 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 #include #include #include #include #include #include #include "launcherwindow.h" LauncherWindow::LauncherWindow(QString arg, QString cpr, QString templ, QWidget *parent) : QDialog(parent) { setWindowTitle(tr("Pracro Launcher")); resize(250,80); setWindowIcon(QIcon(":/icons/icon.png")); 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(); } }