6ec45d1d98bfc7150c232d7eff8c9b80fa5b61a9
[hikingdiary] / src / mainwindow.h
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QtGui/QMainWindow>
5 #include <QVBoxLayout>
6 #include <QHBoxLayout>
7 #include <QFormLayout>
8 #include <QGridLayout>
9 #include <QTextEdit>
10 #include <QLineEdit>
11 #include <QTextLine>
12 #include <QPushButton>
13 #include <QMenu>
14 #include <QMenuBar>
15 #include <QToolBar>
16 #include <QAction>
17 #include <QLabel>
18 #include <QDateTime>
19 #include <QString>
20 #include <QMessageBox>
21 #include <QtXml/QDomDocument>
22 #include <QtXml/QDomNode>
23 #include <QFile>
24 #include <QTextStream>
25 #include <QTreeView>
26 #include <QXmlStreamWriter>
27 #include <QtXml>
28 #include <QtDebug>
29 #include <QStatusBar>
30
31 #include "maemo5location.h"
32 #include "xmlparser.h"
33 #include "diarydatamanager.h"
34
35 #define MAX_FIELDS 2
36 #define MAX_BUTTONS 3
37 // #define CONTENT_DATA "/usr/share/doc/hikingdiary/diaryContent.xml"
38
39
40 class MainWindow : public QMainWindow
41 {
42     Q_OBJECT
43
44 public:
45     MainWindow(QWidget *parent = 0);
46     ~MainWindow();
47 private:
48     QGridLayout *mainGridlayout;
49     QLabel *dateLabel;
50     QDate date;
51     QDateTime dtime;
52     QString strDate;
53     QLineEdit latitudeString;
54     QLineEdit longitudeString;
55     QString fileNameString;
56     QLineEdit *headerText;
57     QTextEdit *textContent;
58     //QLineEdit* textFields[MAX_FIELDS];
59     QLabel *latCoordLabel;
60     QLabel *lonCoordLabel;
61     //QLabel *accLabel;
62     QLineEdit *latCoordData;
63     QLineEdit *lonCoordData;
64     //QLineEdit *accData;
65     QPushButton* buttons[MAX_BUTTONS];
66     QPushButton *getCoordButton;
67     QVBoxLayout* textLayout;
68     QHBoxLayout* coordVLayout;
69     QGridLayout *coordGridLayout;
70     QHBoxLayout* buttonLayout;
71     QMenu* fileMenu;
72     QMenu* aboutMenu;
73     QToolBar* toolBar;
74     QAction* exitAction;
75     QAction* aboutAction;
76     QAction* clearAction;
77     QAction* saveAction;
78     QAction* aboutIconAction;
79     QAction* saveIconAction;
80     QAction* clearIconAction;
81     QAction* exitIconAction;
82
83     QDomDocument *diaryDocs;
84     QFile file;
85     QTextStream out;
86
87     enum BUTTONS
88     {
89         SAVE,
90         CLEAR,
91         EXIT
92     };
93 private:
94     void createTextLayout();
95     void createCoordLayout();
96     void createButtons();
97     void createMenus();
98     void createActions();
99     void createToolBars();
100
101     bool writeXml();
102
103 private slots:
104     void clearTextFields();
105     void showAbout();
106     bool saveData();
107     void getCoordinates();
108 private:
109     Maemo5Location* location;
110     diaryDataManager* manager;
111     xmlParser* xmlparser;
112 };
113
114 #endif // MAINWINDOW_H