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