LatitudeUpdater 0.1, fix the previous commit
[googlelatitude] / latitudewidget.h
1 #ifndef LATITUDEGUI_H
2 #define LATITUDEGUI_H
3
4 #include <QtGui/QWidget>
5 #include <QtGui/QPushButton>
6 #include <QtGui/QLineEdit>
7 #include <QtGui/QLabel>
8 #include <QtGui/QVBoxLayout>
9 #include <QtGui/QHBoxLayout>
10 #include <QtGui/QRadioButton>
11 #include <QtGui/QButtonGroup>
12 #include <QtGui/QSlider>
13 #include <QtGui/QDesktopServices>
14 #include "googlelatitude.h"
15 #include "gpscontrol.h"
16
17 class LatitudeGUI : public QWidget {
18     Q_OBJECT
19 public:
20     LatitudeGUI(QWidget *parent = 0);
21
22 signals:
23
24 public slots:
25
26 private slots:
27     void gl_GotToken() {
28         qDebug() << "LatitudeGUI::gl_GotToken";
29         do_oauth->setDisabled(true);
30         do_start->setEnabled(true);
31         do_stop->setDisabled(true);
32     }
33     void gl_NotToken() {
34         qDebug() << "LatitudeGUI::gl_NotToken";
35         do_oauth->setEnabled(true);
36         do_start->setDisabled(true);
37         do_stop->setDisabled(true);
38         gps.stopUpdates(true);
39     }
40     void gl_needAuth() {
41         qDebug() << "LatitudeGUI::gl_needAuth";
42         do_oauth->setEnabled(true);
43     }
44     void gl_webauth() {
45         qDebug() << "LatitudeGUI::gl_webauth";
46         QDesktopServices::openUrl(latitude.getUserAuthorization());
47     }
48     void gps_start() {
49         qDebug() << "LatitudeGUI::gps_start";
50         do_start->setDisabled(true);
51         do_stop->setEnabled(true);
52         gps.startUpdates();
53     }
54     void gps_stop() {
55         qDebug() << "LatitudeGUI::gps_stop";
56         do_start->setEnabled(true);
57         do_stop->setDisabled(true);
58         gps.stopUpdates(true);
59     }
60     void get_gps()  {
61         qDebug() << "LatitudeGUI::get_gps";
62         pos_lat->setText(QString("%1").arg(gps.getCurrentLatitude()));
63         pos_lon->setText(QString("%1").arg(gps.getCurrentLongitude()));
64         pos_acc->setText(QString("%1").arg(gps.getCurrentAccuracy()));
65         pos_tis->setText(QString("%1").arg(gps.getCurrentTimestamp()));
66     }
67     void set_latitude() {
68         qDebug() << "LatitudeGUI::set_latitude";
69         latitude.setCurrentLocation(pos_lat->text().toDouble(),
70                                     pos_lon->text().toDouble(),
71                                     pos_acc->text().toDouble());
72         latitude.sendCurrentLocation();
73     }
74     void set_method() {
75         qDebug() << "LatitudeGUI::set_method";
76         if (gps_cell->isChecked()) gps.setPositioningMethod("cell");
77         if (gps_both->isChecked()) gps.setPositioningMethod("all");
78         if (gps_agps->isChecked()) gps.setPositioningMethod("gps");
79     }
80     void set_to(int value) {
81         qDebug() << "LatitudeGUI::set_to()" << value;
82         gps.setTimeOut(value);
83         gps_to_slider_value->setText(QString("%1 sec.").arg(value));
84
85     }
86     void set_i(int value) {
87         qDebug() << "LatitudeGUI::set_i()" << value;
88         gps.setInterval(value*60);
89         gps_i_slider_value->setText(QString("%1 min.").arg(value));
90     }
91     void set_ac_yes() {
92         qDebug() << "LatitudeGUI::set_ac_yes";
93         latitude.setAutoConnect(true);
94     }
95     void set_ac_not() {
96         qDebug() << "LatitudeGUI::set_ac_not";
97         latitude.setAutoConnect(false);
98     }
99
100 private:
101     GoogleLatitude latitude;
102     GpsControl gps;
103
104     QHBoxLayout *layout_row1;
105     QPushButton *do_oauth;
106     QPushButton *do_start;
107     QPushButton *do_stop;
108
109     QHBoxLayout *layout_row2;
110     QLabel *pos_label;
111     QLineEdit *pos_lat;
112     QLineEdit *pos_lon;
113     QLineEdit *pos_acc;
114     QLineEdit *pos_tis;
115
116     QHBoxLayout *layout_row3;
117     QLabel *gps_method;
118     QButtonGroup *gps_group;
119     QRadioButton *gps_cell;
120     QRadioButton *gps_both;
121     QRadioButton *gps_agps;
122
123     QHBoxLayout *layout_row4;
124     QLabel *gps_to_label;
125     QSlider *gps_to_slider;
126     QLabel *gps_to_slider_value;
127
128     QHBoxLayout *layout_row5;
129     QLabel *gps_i_label;
130     QSlider *gps_i_slider;
131     QLabel *gps_i_slider_value;
132
133     QHBoxLayout *layout_row6;
134     QLabel *gps_ac_label;
135     QButtonGroup *gps_ac_group;
136     QRadioButton *gps_ac_yes;
137     QRadioButton *gps_ac_not;
138
139     QVBoxLayout *layout_gui;
140 };
141
142 #endif // LATITUDEGUI_H