First Commit 0.1 debianized
[googlelatitude] / src / latitudewidget.cpp
1 #include "latitudewidget.h"
2
3 LatitudeWidget::LatitudeWidget() {
4     load();
5     glatitude.get();
6     timer = new QTimer();
7     // login
8     login_user = new QLineEdit();
9     login_user->setText(user);
10     login_pass = new QLineEdit();
11     login_pass->setText(pass);
12     login_pass->setEchoMode(QLineEdit::Password);
13     login_up = new QPushButton(tr("&Update Location"));
14     login_layout = new QFormLayout();
15     login_layout->addRow(tr("&Username"), login_user);
16     login_layout->addRow(tr("&Password"), login_pass);
17     login_layout->addRow(login_up);
18     // location
19     location_lat = new QLineEdit();
20     location_lat ->setText(QString::number(latitude));
21     location_lon = new QLineEdit();
22     location_lon->setText(QString::number(longitude));
23     location_acc = new QLineEdit();
24     location_acc->setText(QString::number(accuracy));
25     location_layout = new QFormLayout();
26     location_layout->addRow(tr("lat :"), location_lat);
27     location_layout->addRow(tr("lon :"), location_lon);
28     location_layout->addRow(tr("acc :"), location_acc);
29     // window
30     menu = new QWidget();
31     menu->setWindowTitle(tr("Google Latitude Updater"));
32     menu_layout = new QHBoxLayout();
33     menu_layout->addLayout(login_layout);
34     menu_layout->addLayout(location_layout);
35     menu->setLayout(menu_layout);
36     menu->show();
37
38     connect(login_up, SIGNAL(clicked()), this, SLOT(set()));
39     connect(timer, SIGNAL(timeout()), this, SLOT(gset()));
40     connect(&glatitude, SIGNAL(getOK()), this, SLOT(get()));
41     connect(&glatitude, SIGNAL(setOK()), this, SLOT(gsetOK()));
42     connect(&glatitude, SIGNAL(setERROR()), this, SLOT(gsetERROR()));
43 }
44
45 void LatitudeWidget::get() {
46     location_lat->setText(QString::number(glatitude.get_lat()));
47     location_lon->setText(QString::number(glatitude.get_lon()));
48     location_acc->setText(QString::number(glatitude.get_acc()));
49 }
50
51 void LatitudeWidget::set() {
52     save();
53     glatitude.login(user, pass);
54     glatitude.set(latitude, longitude, accuracy);
55 }
56
57 void LatitudeWidget::gsetOK() {
58     login_up->setText(tr("Location Updated !"));
59     timer->start(5000);
60 }
61 void LatitudeWidget::gsetERROR() {
62     login_up->setText(tr("Error in Authentification !"));
63     timer->start(2000);
64 }
65
66 void LatitudeWidget::gset() {
67     login_up->setText(tr("&Update Location"));
68 }
69
70 void LatitudeWidget::load() {
71     // from file
72     if ( QFile::exists(QDir::homePath()+"/.glatitude") ) {
73         QFile *config = new QFile(QDir::homePath()+"/.glatitude");
74         config->open(QIODevice::ReadOnly);
75         QTextStream sconfig(config);
76         sconfig >> user >> pass;
77         sconfig >> latitude >> longitude >> accuracy;
78         config->close();
79     } else {
80         user = "my_username";
81         pass = "my_password";
82         latitude = 0.;
83         longitude = 0.;
84         accuracy = 0.;
85     }
86 }
87
88 void LatitudeWidget::save() {
89     // extract info
90     user = login_user->text();
91     pass = login_pass->text();
92     latitude = location_lat->text().toDouble();
93     longitude = location_lon->text().toDouble();
94     accuracy = location_acc->text().toDouble();
95     // to file
96     QFile *config = new QFile(QDir::homePath()+"/.glatitude");
97     config->open(QIODevice::WriteOnly);
98     QTextStream sconfig(config);
99     sconfig << user << " " << pass << " ";
100     sconfig << latitude << " " << longitude << " " << accuracy;
101     config->close();
102 }