3 LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) {
4 glatitude = new GoogleLatitude(this);
5 setting = new QSettings();
6 urllogin = QUrl::fromEncoded("https://www.google.com/accounts/ServiceLogin?service=friendview&continue=http://www.google.com/maps/m?mode=latitude");
10 connect(glatitude, SIGNAL(getOK()), this, SLOT(get_loc()));
11 connect(glatitude, SIGNAL(setOK()), this, SLOT(set_OK()));
12 connect(glatitude, SIGNAL(setERROR()), this, SLOT(set_ERROR()));
15 void LatitudeGUI::get_loc() {
16 location_lat->setText(QString::number(glatitude->get_lat()));
17 location_lon->setText(QString::number(glatitude->get_lon()));
18 location_acc->setText(QString::number(glatitude->get_acc()));
19 status->setText(tr("Using google.com/loc"));
22 void LatitudeGUI::get_cell() {
23 status->setText(tr("Using cell... TODO"));
26 void LatitudeGUI::get_gps() {
27 status->setText(tr("Using gps... TODO"));
30 void LatitudeGUI::set() {
31 glatitude->login(login_user->text(),
33 glatitude->set(location_lat->text().toDouble(),
34 location_lon->text().toDouble(),
35 location_acc->text().toDouble());
36 status->setText(tr("Setting location..."));
39 void LatitudeGUI::set_OK() {
40 status->setText(tr("Location Updated !"));
43 void LatitudeGUI::set_ERROR() {
44 status->setText(tr("Error in Authentification !"));
47 void LatitudeGUI::save() {
48 setting->setValue("user", login_user->text());
49 setting->setValue("pass", login_pass->text());
52 void LatitudeGUI::show_map() {
54 maps = new QWebView();
55 connect(maps, SIGNAL(loadFinished(bool)), this, SLOT(maps_login()));
59 setCentralWidget(maps);
60 setWindowTitle(tr("Google Maps"));
64 menuBar()->addAction(tr("&Latitude") ,this, SLOT(show_lat()));
67 void LatitudeGUI::show_lat() {
69 login_user = new QLineEdit(setting->value("user","my_username").toString());
70 login_pass = new QLineEdit(setting->value("pass","my_password").toString());
71 login_pass->setEchoMode(QLineEdit::Password);
72 QPushButton *button_update = new QPushButton(tr("&Update Location"));
74 QFormLayout *layout_login = new QFormLayout();
75 layout_login->addRow(tr("&Username"), login_user);
76 layout_login->addRow(tr("&Password"), login_pass);
77 layout_login->addRow(button_update);
79 connect(login_user, SIGNAL(editingFinished()), this, SLOT(save()));
80 connect(login_pass, SIGNAL(editingFinished()), this, SLOT(save()));
81 connect(login_user, SIGNAL(returnPressed()), login_pass, SLOT(setFocus()));
82 connect(login_pass, SIGNAL(returnPressed()), this, SLOT(set()));
83 connect(button_update, SIGNAL(clicked()), this, SLOT(set()));
86 location_lat = new QLineEdit(QString::number(0));
87 location_lon = new QLineEdit(QString::number(0));
88 location_acc = new QLineEdit(QString::number(0));
90 QFormLayout *layout_location = new QFormLayout();
91 layout_location->addRow(tr("lat :"), location_lat);
92 layout_location->addRow(tr("lon :"), location_lon);
93 layout_location->addRow(tr("acc :"), location_acc);
96 QPushButton *source_loc = new QPushButton(tr("&loc"));
97 QPushButton *source_cell = new QPushButton(tr("&cell"));
98 QPushButton *source_gps = new QPushButton(tr("&gps"));
100 QHBoxLayout *layout_source = new QHBoxLayout();
101 layout_source->addWidget(source_loc);
102 layout_source->addWidget(source_cell);
103 layout_source->addWidget(source_gps);
105 connect(source_loc, SIGNAL(clicked()), glatitude, SLOT(get()));
106 connect(source_cell, SIGNAL(clicked()), this, SLOT(get_cell()));
107 connect(source_gps, SIGNAL(clicked()), this, SLOT(get_gps()));
110 location = new QWidget();
111 QHBoxLayout *layout_form = new QHBoxLayout();
112 layout_form->addLayout(layout_login);
113 layout_form->addLayout(layout_location);
114 QVBoxLayout *layout = new QVBoxLayout();
115 status = new QLineEdit("Ready");
116 status->setReadOnly(true);
117 status->setDisabled(true);
118 layout->addLayout(layout_form);
119 layout->addWidget(status);
120 layout->addLayout(layout_source);
121 location->setLayout(layout);
124 setCentralWidget(location);
125 setWindowTitle(tr("Google Latitude Updater"));
129 menuBar()->addAction(tr("&Maps") ,this, SLOT(show_map()));
132 void LatitudeGUI::maps_login() {
133 if ( maps->url() == urllogin ) {
134 maps->page()->mainFrame()->evaluateJavaScript(
135 QString("document.getElementById('Email').value = \"%1\";").arg(
136 setting->value("user").toString()));
137 maps->page()->mainFrame()->evaluateJavaScript(
138 QString("document.getElementById('Passwd').value = \"%1\";").arg(
139 setting->value("pass").toString()));
140 maps->page()->mainFrame()->evaluateJavaScript("document.getElementById('gaia_loginform').submit();");