00001 #ifndef MAINWINDOW_H 00002 #define MAINWINDOW_H 00003 00004 #include <ui/lib/uiinterface.h> 00005 00006 #include <QMainWindow> 00007 00008 class QLabel; 00009 00010 namespace ui 00011 { 00012 00013 class OverviewWidget; 00014 00015 00016 class GUI_EXPORT Gui : public UiInterface 00017 { 00018 Q_OBJECT 00019 00020 public: 00021 00022 Gui(); 00023 00024 void start(); 00025 void loadControllers(const QList<control::ControllerInterface*>& c); 00026 00027 bool askQuestion(const QString& before, QAbstractItemModel* model = 0, 00028 const QString& after = QString()); 00029 00030 control::data::SelectionData getSelection(const QString& before, 00031 QAbstractItemModel* model, 00032 SelectionMode mode = SingleSelection, 00033 const QString& after = ""); 00034 00035 control::data::TaskDetails getTaskDetails( 00036 const control::data::TaskRepresentation& rep); 00037 00038 00039 control::data::ReservationDetails getReservationDetails 00040 (control::ResourceReservationModel* reservations); 00041 control::data::ResourceDetails getResourceDetails(const QStringList& types); 00042 control::data::ProjectDetails getProjectDetails(); 00043 00044 control::data::StringInputData getChoice(const QStringList& options, 00045 const QString& message); 00046 00047 control::data::StringInputData showTaskDetails( 00048 const control::data::TaskRepresentation& rep, 00049 const QStringList& options = QStringList(), 00050 bool editMode = false); 00051 00052 control::data::SelectionData getInvitationSelection( 00053 control::InvitationModel* pending, 00054 control::InvitationModel* accepted); 00055 00056 void showModel(QAbstractItemModel* model, const QString& message); 00057 void setOverview(const control::data::OverviewDetails& details); 00058 00059 void showError(const QString& message); 00060 void showWarning(const QString& message); 00061 void showMessage(const QString& message); 00062 00063 control::data::MinMaxDurationData getMinMaxDuration(const QString& message); 00064 00065 control::data::StringInputData getText(const QString& message); 00066 control::data::IntInputData getInt(const QString& message, 00067 int value = 0, 00068 int minValue = -2147483647, 00069 int maxValue = 2147483647); 00070 00071 QString getOpenFileName(const QString& dir = QString(), 00072 const QString& filter = QString()); 00073 QString getSaveFileName(const QString& dir = QString(), 00074 const QString& filter = QString()); 00075 00076 control::data::DateTimeInputData getDateTime(const QString& message = QString()); 00077 00078 public Q_SLOTS: 00079 00080 void setTime(const QDateTime& time); 00081 00082 private: 00083 00084 void setUsername(const QString& name); 00085 00086 QMainWindow window; 00087 ui::OverviewWidget* overviewWidget; 00088 QLabel* userLabel; 00089 QLabel* timeLabel; 00090 }; 00091 00092 } 00093 00094 #endif