From ad98026d4a949c62f7361fd41f366e8483f76946 Mon Sep 17 00:00:00 2001 From: deva Date: Thu, 27 May 2010 09:40:04 +0000 Subject: Added new sessions class. --- client/client.pro | 2 + client/sessions.cc | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ client/sessions.h | 56 ++++++++++++++++++++++++++ 3 files changed, 172 insertions(+) create mode 100644 client/sessions.cc create mode 100644 client/sessions.h diff --git a/client/client.pro b/client/client.pro index 6cce982..9f8d8b8 100644 --- a/client/client.pro +++ b/client/client.pro @@ -42,6 +42,7 @@ HEADERS += \ messagebox.h \ netcom.h \ resumewidget.h \ + sessions.h \ viewer.h \ widgetbuilder.h \ widgets.h \ @@ -77,6 +78,7 @@ SOURCES += \ messagebox.cc \ netcom.cc \ resumewidget.cc \ + sessions.cc \ viewer.cc \ widgetbuilder.cc \ widgets/common.cc \ diff --git a/client/sessions.cc b/client/sessions.cc new file mode 100644 index 0000000..50d7d6f --- /dev/null +++ b/client/sessions.cc @@ -0,0 +1,114 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ +/*************************************************************************** + * sessions.cc + * + * Wed May 26 14:31:51 CEST 2010 + * Copyright 2010 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * 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 "sessions.h" + +#include +#include +#include + +#define USER 0 +#define SESSIONID 1 + +void Sessions::add(QString cpr, QString user, QString sessionid) +{ + QList data; + data.insert(USER, QVariant(user)); + data.insert(SESSIONID, QVariant(sessionid)); + s[cpr] = data; +} + +void Sessions::remove(QString cpr) +{ + s.remove(cpr); +} + +void Sessions::show() +{ + QDialog dlg; + + QGridLayout *grid = new QGridLayout(); + dlg.setLayout(grid); + dlg.setWindowTitle("Stored sessions"); + dlg.setMinimumSize(300, 40); + + QLabel *lcpr = new QLabel("CPR:"); + QLabel *luser = new QLabel("User:"); + QLabel *lid = new QLabel("SessionID:"); + + grid->addWidget(lcpr, 0, 0); + grid->addWidget(luser, 0, 1); + grid->addWidget(lid, 0, 2); + + int row = 1; + QMap::iterator i = s.begin(); + while(i != s.end()) { + QString patientid = i.key(); + QList data = i.value().toList(); + + QLabel *lcpr = new QLabel(patientid); + QLabel *luser = new QLabel(data[USER].toString()); + QLabel *lid = new QLabel(data[SESSIONID].toString()); + + grid->addWidget(lcpr, row, 0); + grid->addWidget(luser, row, 1); + grid->addWidget(lid, row, 2); + row++; + i++; + } + + dlg.exec(); +} + +QVariant Sessions::toVariant() +{ + return s; +} + +void Sessions::fromVariant(const QVariant &v) +{ + s = v.toMap(); +} + +bool Sessions::contains(QString cpr) +{ + return s.contains(cpr); +} + +QString Sessions::getUser(QString cpr) +{ + if(!contains(cpr)) return ""; + QList data = s[cpr].toList(); + return data[USER].toString(); +} + +QString Sessions::getSessionID(QString cpr) +{ + if(!contains(cpr)) return ""; + QList data = s[cpr].toList(); + return data[SESSIONID].toString(); +} diff --git a/client/sessions.h b/client/sessions.h new file mode 100644 index 0000000..e518044 --- /dev/null +++ b/client/sessions.h @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ +/*************************************************************************** + * sessions.h + * + * Wed May 26 14:31:51 CEST 2010 + * Copyright 2010 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * 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. + */ +#ifndef __PRACRO_SESSIONS_H__ +#define __PRACRO_SESSIONS_H__ + +#include +#include +#include + +//typedef QMap > Sessions; + +class Sessions { +public: + void add(QString cpr, QString user, QString sessionid); + void remove(QString cpr); + void show(); + + QVariant toVariant(); + void fromVariant(const QVariant &v); + + bool contains(QString cpr); + QString getUser(QString cpr); + QString getSessionID(QString cpr); + +private: + QMap s; + // QMap > sessions; + //Sessions sessions; +}; + +#endif/*__PRACRO_SESSIONS_H__*/ -- cgit v1.2.3