3 LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) {
5 setAttribute(Qt::WA_Maemo5AutoOrientation, true);
7 setWindowTitle(tr("Latitude & Buzz"));
8 setting = new QSettings();
11 url = QUrl::fromEncoded("https://www.google.com/accounts/ServiceLogin?service=friendview&continue=http://www.google.com/maps/m?mode=latitude");
12 maps = new QWebView();
13 maps->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
14 connect(maps, SIGNAL(loadFinished(bool)), this, SLOT(maps_login()));
16 menuBar()->addAction(tr("&Latitude"), this, SLOT(mode_latitude()));
17 menuBar()->addAction(tr("&Buzz"), this, SLOT(mode_buzz()));
18 menuBar()->addAction(tr("&Config"), this, SLOT(config()));
21 glatitude = new GoogleLatitude(this);
22 gps = new GpsMaemo5(this);
23 connect(gps, SIGNAL(fix()), this, SLOT(set()));
24 connect(glatitude, SIGNAL(OK()), this, SLOT(latitude_OK()));
25 connect(glatitude, SIGNAL(ERROR()), this, SLOT(latitude_ERROR()));
28 setCentralWidget(maps);
31 void LatitudeGUI::config() {
33 QDialog *dialoglogin = new QDialog(this);
34 QLineEdit *login_user = new QLineEdit(setting->value("user","my_username").toString());
35 QLineEdit *login_pass = new QLineEdit(setting->value("pass","my_password").toString());
36 login_pass->setEchoMode(QLineEdit::Password);
37 QLineEdit *login_freq = new QLineEdit(setting->value("freq","120").toString());
38 QFormLayout *layout_login = new QFormLayout();
39 layout_login->addRow(tr("&Username"), login_user);
40 layout_login->addRow(tr("&Password"), login_pass);
41 layout_login->addRow(tr("&Interval"), login_freq);
42 connect(login_user, SIGNAL(textEdited(QString)), this, SLOT(save_user(QString)));
43 connect(login_pass, SIGNAL(textEdited(QString)), this, SLOT(save_pass(QString)));
44 connect(login_freq, SIGNAL(textEdited(QString)), this, SLOT(save_freq(QString)));
45 connect(login_user, SIGNAL(returnPressed()), login_pass, SLOT(setFocus()));
46 connect(login_pass, SIGNAL(returnPressed()), login_freq, SLOT(setFocus()));
47 connect(login_freq, SIGNAL(returnPressed()), dialoglogin, SLOT(accept()));
48 dialoglogin->setLayout(layout_login);
57 void LatitudeGUI::set() {
58 qDebug() << "LatitudeGUI: set";
59 glatitude->login(setting->value("user","my_username").toString(),
60 setting->value("pass","my_password").toString());
61 glatitude->freq(setting->value("freq","120").toInt());
62 glatitude->set(gps->get_lat(),
67 void LatitudeGUI::latitude_OK() {
68 qDebug() << "LatitudeGUI: send";
71 void LatitudeGUI::latitude_ERROR() {
73 QString error_message = tr("<b>Error in Authentification!</b><br><br>") +
74 tr("Plese verify your login details<br>");
75 QMaemo5InformationBox::information(this, error_message,
76 QMaemo5InformationBox::NoTimeout);
78 qDebug() << "LatitudeGUI: no auth";
82 void LatitudeGUI::save_user(QString _user) {
83 setting->setValue("user", _user);
85 void LatitudeGUI::save_pass(QString _pass) {
86 setting->setValue("pass", _pass);
88 void LatitudeGUI::save_freq(QString _freq) {
89 setting->setValue("freq", _freq);
91 void LatitudeGUI::mode_buzz() {
92 maps->load(QUrl::fromEncoded("http://www.google.com/maps/m?l-view=map&l-lci=m,com.google.latitudepublicupdates&ac=f,s,l"));
95 void LatitudeGUI::mode_latitude() {
96 maps->load(QUrl::fromEncoded("https://www.google.com/accounts/ServiceLogin?service=friendview&continue=http://www.google.com/maps/m?mode=latitude"));
99 void LatitudeGUI::maps_login() {
100 if ( maps->url() == url ) {
101 maps->page()->mainFrame()->evaluateJavaScript(
102 QString("document.getElementById('Email').value = \"%1\";").arg(
103 setting->value("user").toString()));
104 maps->page()->mainFrame()->evaluateJavaScript(
105 QString("document.getElementById('Passwd').value = \"%1\";").arg(
106 setting->value("pass").toString()));
107 maps->page()->mainFrame()->evaluateJavaScript("document.getElementById('gaia_loginform').submit();");