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 statusBar()->showMessage(tr("Using google.com/loc"),2000);
22 void LatitudeGUI::get_cell() {
23 statusBar()->showMessage(tr("Using cell... TODO"),2000);
26 void LatitudeGUI::get_gps() {
27 statusBar()->showMessage(tr("Using gps... TODO"),2000);
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 statusBar()->showMessage(tr("Setting location..."),2000);
39 void LatitudeGUI::set_OK() {
40 statusBar()->showMessage(tr("Location Updated !"),5000);
43 void LatitudeGUI::set_ERROR() {
44 statusBar()->showMessage(tr("Error in Authentification !"),5000);
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()));
68 void LatitudeGUI::show_lat() {
70 login_user = new QLineEdit(setting->value("user","my_username").toString());
71 login_pass = new QLineEdit(setting->value("pass","my_password").toString());
72 login_pass->setEchoMode(QLineEdit::Password);
73 QPushButton *button_update = new QPushButton(tr("&Update Location"));
75 QFormLayout *layout_login = new QFormLayout();
76 layout_login->addRow(tr("&Username"), login_user);
77 layout_login->addRow(tr("&Password"), login_pass);
78 layout_login->addRow(button_update);
80 connect(login_user, SIGNAL(editingFinished()), this, SLOT(save()));
81 connect(login_pass, SIGNAL(editingFinished()), this, SLOT(save()));
82 connect(login_user, SIGNAL(returnPressed()), login_pass, SLOT(setFocus()));
83 connect(login_pass, SIGNAL(returnPressed()), this, SLOT(set()));
84 connect(button_update, SIGNAL(clicked()), this, SLOT(set()));
87 location_lat = new QLineEdit(QString::number(0));
88 location_lon = new QLineEdit(QString::number(0));
89 location_acc = new QLineEdit(QString::number(0));
91 QFormLayout *layout_location = new QFormLayout();
92 layout_location->addRow(tr("lat :"), location_lat);
93 layout_location->addRow(tr("lon :"), location_lon);
94 layout_location->addRow(tr("acc :"), location_acc);
97 QPushButton *source_loc = new QPushButton(tr("&loc"));
98 QPushButton *source_cell = new QPushButton(tr("&cell"));
99 QPushButton *source_gps = new QPushButton(tr("&gps"));
101 QHBoxLayout *layout_source = new QHBoxLayout();
102 layout_source->addWidget(source_loc);
103 layout_source->addWidget(source_cell);
104 layout_source->addWidget(source_gps);
106 connect(source_loc, SIGNAL(clicked()), glatitude, SLOT(get()));
107 connect(source_cell, SIGNAL(clicked()), this, SLOT(get_cell()));
108 connect(source_gps, SIGNAL(clicked()), this, SLOT(get_gps()));
111 location = new QWidget();
112 QHBoxLayout *layout_form = new QHBoxLayout();
113 layout_form->addLayout(layout_login);
114 layout_form->addLayout(layout_location);
115 QVBoxLayout *layout = new QVBoxLayout();
116 layout->addLayout(layout_form);
117 layout->addLayout(layout_source);
118 location->setLayout(layout);
121 setCentralWidget(location);
122 setWindowTitle(tr("Google Latitude Updater"));
126 menuBar()->addAction(tr("&Maps") ,this, SLOT(show_map()));
127 statusBar()->showMessage(tr("Ready"));
130 void LatitudeGUI::maps_login() {
131 if ( maps->url() == urllogin ) {
132 maps->page()->mainFrame()->evaluateJavaScript(
133 QString("document.getElementById('Email').value = \"%1\";").arg(
134 setting->value("user").toString()));
135 maps->page()->mainFrame()->evaluateJavaScript(
136 QString("document.getElementById('Passwd').value = \"%1\";").arg(
137 setting->value("pass").toString()));
138 maps->page()->mainFrame()->evaluateJavaScript("document.getElementById('gaia_loginform').submit();");