X-Git-Url: http://git.maemo.org/git/?p=googlelatitude;a=blobdiff_plain;f=src%2Flatitude.cpp;h=c215f01d7efafc64eaec2af5077609252ef8be8f;hp=e56d1981eaef68a8e1460ad59a5992daeadb59ec;hb=c0df4cf5c73d03efed976bc718261f5afc78cab9;hpb=e54b8298b5782a42c123e21578f75df74415cdae diff --git a/src/latitude.cpp b/src/latitude.cpp index e56d198..c215f01 100644 --- a/src/latitude.cpp +++ b/src/latitude.cpp @@ -1,99 +1,85 @@ #include "latitude.h" LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) { - glatitude = new GoogleLatitude(this); - setting = new QSettings(); - maps = new QWebView(); - location = new QWidget(); + setAttribute(Qt::WA_Maemo5AutoOrientation, true); + setWindowTitle(tr("Google Latitude Updater")); - menuBar()->addAction(tr("&Maps") ,this, SLOT(showmap())); - menuBar()->addAction(tr("&Latitude") ,this, SLOT(showlat())); - menuBar()->addAction(tr("&Update"), this, SLOT(set())); - menuBar()->addAction(tr("&loc") ,glatitude, SLOT(get())); + setting = new QSettings(); - do_maps(); - do_main(); - showlat(); + // login input + QDialog *dialoglogin = new QDialog(this); + QLineEdit *login_user = new QLineEdit(setting->value("user","my_username").toString()); + QLineEdit *login_pass = new QLineEdit(setting->value("pass","my_password").toString()); + login_pass->setEchoMode(QLineEdit::Password); + QFormLayout *layout_login = new QFormLayout(); + layout_login->addRow(tr("&Username"), login_user); + layout_login->addRow(tr("&Password"), login_pass); + connect(login_user, SIGNAL(textEdited(QString)), this, SLOT(save_user(QString))); + connect(login_pass, SIGNAL(textEdited(QString)), this, SLOT(save_pass(QString))); + connect(login_user, SIGNAL(returnPressed()), login_pass, SLOT(setFocus())); + connect(login_pass, SIGNAL(returnPressed()), dialoglogin, SLOT(accept())); + dialoglogin->setLayout(layout_login); + dialoglogin->exec(); + + // GUI + url = QUrl::fromEncoded("https://www.google.com/accounts/ServiceLogin?service=friendview&continue=http://www.google.com/maps/m?mode=latitude"); + maps = new QWebView(); + connect(maps, SIGNAL(loadFinished(bool)), this, SLOT(maps_login())); + maps->load(url); + menuBar()->addAction(tr("&Latitude"), this, SLOT(mode_latitude())); + menuBar()->addAction(tr("&Buzz"), this, SLOT(mode_buzz())); - // connects - connect(login_user, SIGNAL(editingFinished()), this, SLOT(save())); - connect(login_pass, SIGNAL(editingFinished()), this, SLOT(save())); - connect(glatitude, SIGNAL(getOK()), this, SLOT(get())); - connect(glatitude, SIGNAL(setOK()), this, SLOT(gsetOK())); - connect(glatitude, SIGNAL(setERROR()), this, SLOT(gsetERROR())); -} + // updater + glatitude = new GoogleLatitude(this); + gps = new GpsMaemo5(this); + connect(gps, SIGNAL(fix()), this, SLOT(set())); + connect(glatitude, SIGNAL(OK()), this, SLOT(latitude_OK())); + connect(glatitude, SIGNAL(ERROR()), this, SLOT(latitude_ERROR())); -void LatitudeGUI::get() { - location_lat->setText(QString::number(glatitude->get_lat())); - location_lon->setText(QString::number(glatitude->get_lon())); - location_acc->setText(QString::number(glatitude->get_acc())); - statusBar()->showMessage(tr("Using google.com/loc"),2000); + // show it + setCentralWidget(maps); } void LatitudeGUI::set() { - glatitude->login(login_user->text(), - login_pass->text()); - glatitude->set(location_lon->text().toDouble(), - location_lat->text().toDouble(), - location_acc->text().toDouble()); - statusBar()->showMessage(tr("Setting location..."),2000); + QMaemo5InformationBox::information(this, "New gps position", 1000); + glatitude->login(setting->value("user","my_username").toString(), + setting->value("pass","my_password").toString()); + glatitude->set(gps->get_lat(), + gps->get_lon(), + gps->get_acc()); } -void LatitudeGUI::gsetOK() { - statusBar()->showMessage(tr("Location Updated !"),5000); -} -void LatitudeGUI::gsetERROR() { - statusBar()->showMessage(tr("Error in Authentification !"),5000); +void LatitudeGUI::latitude_OK() { + QMaemo5InformationBox::information(this, "Location Sent!", 1000); } -void LatitudeGUI::save() { - setting->setValue("user", login_user->text()); - setting->setValue("pass", login_pass->text()); +void LatitudeGUI::latitude_ERROR() { + QMaemo5InformationBox::information(this, "Error in Authentification !", 3000); } -void LatitudeGUI::showmap() { - setCentralWidget(maps); - setWindowTitle(tr("Google Maps")); +void LatitudeGUI::save_user(QString _user) { + setting->setValue("user", _user); } - -void LatitudeGUI::showlat() { - glatitude->get(); - setCentralWidget(location); - setWindowTitle(tr("Google Latitude Updater")); -} - -void LatitudeGUI::do_maps() { - maps->load(QUrl("http://www.google.com/maps/m")); +void LatitudeGUI::save_pass(QString _pass) { + setting->setValue("pass", _pass); } -void LatitudeGUI::do_main() { - QHBoxLayout *layout = new QHBoxLayout(); - layout->addLayout(do_login()); - layout->addLayout(do_location()); - location->setLayout(layout); +void LatitudeGUI::mode_buzz() { + maps->load(QUrl::fromEncoded("http://www.google.com/maps/m?l-view=map&l-lci=m,com.google.latitudepublicupdates&ac=f,s,l")); } -QFormLayout *LatitudeGUI::do_login() { - login_user = new QLineEdit(setting->value("user","my_username").toString()); - login_pass = new QLineEdit(setting->value("pass","my_password").toString()); - login_pass->setEchoMode(QLineEdit::Password); - - QFormLayout *layout = new QFormLayout(); - layout->addRow(tr("&Username"), login_user); - layout->addRow(tr("&Password"), login_pass); - - return layout; +void LatitudeGUI::mode_latitude() { + maps->load(QUrl::fromEncoded("https://www.google.com/accounts/ServiceLogin?service=friendview&continue=http://www.google.com/maps/m?mode=latitude")); } -QFormLayout *LatitudeGUI::do_location() { - location_lat = new QLineEdit(QString::number(0)); - location_lon = new QLineEdit(QString::number(0)); - location_acc = new QLineEdit(QString::number(0)); - - QFormLayout *layout = new QFormLayout(); - layout->addRow(tr("lat :"), location_lat); - layout->addRow(tr("lon :"), location_lon); - layout->addRow(tr("acc :"), location_acc); - - return layout; +void LatitudeGUI::maps_login() { + if ( maps->url() == url ) { + maps->page()->mainFrame()->evaluateJavaScript( + QString("document.getElementById('Email').value = \"%1\";").arg( + setting->value("user").toString())); + maps->page()->mainFrame()->evaluateJavaScript( + QString("document.getElementById('Passwd').value = \"%1\";").arg( + setting->value("pass").toString())); + maps->page()->mainFrame()->evaluateJavaScript("document.getElementById('gaia_loginform').submit();"); + } }