00001 #ifndef __MAINSCREENWIDGET_H__
00002 #define __MAINSCREENWIDGET_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include "QMLWidget.h"
00029
00030 #include <QWidget>
00031 #include <QList>
00032 #include <QString>
00033 #include <QDate>
00034
00035 #include "Types/ButtonList.h"
00036 #include "Types/User.h"
00037
00038 #include "Network/Types/MachineData.h"
00039
00040 #include "Module/ModuleInterface.h"
00041
00042 class Patient;
00043
00044 class QVBoxLayout;
00045 class QMLBarWidget;
00046 class QMLPatientListWidget;
00047 class QMLVersionningWidget;
00048 class QMLEditDataWidget;
00049 class QMLEditUsersWidget;
00050 class QMLEditMachinesWidget;
00051
00052 class QMLChatWidget;
00053
00054 class MainScreenQMLWidget : public QWidget
00055 {
00056 Q_OBJECT
00057
00058 private:
00059 static QString PATIENT_LIST_WIDGET_NAME;
00060 static QString VERSIONNING_WIDGET_NAME;
00061 static QString EDITOR_WIDGET_NAME;
00062 static QString USERSEDITOR_WIDGET_NAME;
00063 static QString MACHINESEDITOR_WIDGET_NAME;
00064 static QString CHAT_WIDGET_NAME;
00066 QMap<QString, ModuleInterface*>* m_pPlugins;
00068 QList<QObject*> m_pPatientNames;
00069 ButtonList m_buttonList;
00071 Patient* m_pPatient;
00072 QString m_folder;
00073 unsigned int m_userCategory;
00075 QVBoxLayout* m_pLayout;
00076 QMLBarWidget* m_pQMLBar;
00077 QMLPatientListWidget* m_pPatientWidget;
00078 QMLVersionningWidget* m_pVersionningWidget;
00079 QMLEditDataWidget* m_pEditorWidget;
00081 QMLEditUsersWidget* m_pEditUserWidget;
00082 QMLEditMachinesWidget* m_pEditMachinesWidget;
00084 QMLChatWidget* m_pChatWidget;
00086 void updateData();
00087
00088 public:
00089 MainScreenQMLWidget(QMap<QString, ModuleInterface*>* pPlugins, QWidget* parent=0);
00090 ~MainScreenQMLWidget();
00091
00092 void setPatientNames(const QList<QString>& namesList);
00093 void setUsersList(const QList<User>& usersList);
00094 void setMachinesList(const QList<MachineData>& machinesList);
00095 void setRightLevel(const unsigned int userCategory) { m_userCategory = userCategory; this->updateButtonsList(); }
00096
00097 Q_SIGNAL void requestPatient(QString patientName);
00098
00099 Q_SLOT void updateButtonsList();
00100 Q_SLOT void setPatient(Patient* pPatient);
00101 Q_SLOT void setOperation(QString operationName, QString operationDate);
00102
00103 Q_SLOT void constructPlugins();
00104 Q_SLOT void changeTab(QString tabName);
00105
00106 Q_SLOT void patientChanged();
00107
00108 Q_SIGNAL void userNew(QString name, QString password, QString category);
00109 Q_SIGNAL void deleteUser(QString userName);
00110
00111 Q_SIGNAL void userNameChanged(QString oldName, QString newName);
00112 Q_SIGNAL void userCategoryChanged(QString name, QString newCategory);
00113
00114 Q_SIGNAL void addMachine(QString machineIP, QString machineName);
00115 Q_SIGNAL void deleteMachine(QString machineIP);
00116
00117 Q_SLOT void addMessage(QString message);
00118 Q_SIGNAL void sendMessage(QString message);
00119 };
00120
00234 #endif