X-Git-Url: http://git.maemo.org/git/?p=googlelatitude;a=blobdiff_plain;f=src%2Flatitude.cpp;h=c215f01d7efafc64eaec2af5077609252ef8be8f;hp=40a0a13a064a424880216cbcbdfb1cb45cee667f;hb=c0df4cf5c73d03efed976bc718261f5afc78cab9;hpb=040c0c504442b8b73b29d04c5e7931968de50f09 diff --git a/src/latitude.cpp b/src/latitude.cpp index 40a0a13..c215f01 100644 --- a/src/latitude.cpp +++ b/src/latitude.cpp @@ -1,167 +1,79 @@ #include "latitude.h" LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) { - glatitude = new GoogleLatitude(this); - gps = new GpsMaemo5(this); - setting = new QSettings(); - urllogin = QUrl::fromEncoded("https://www.google.com/accounts/ServiceLogin?service=friendview&continue=http://www.google.com/maps/m?mode=latitude"); - - show_lat(); - - connect(glatitude, SIGNAL(getOK()), this, SLOT(get_loc())); - connect(gps, SIGNAL(getOK()), this, SLOT(get_maemo5())); - connect(gps, SIGNAL(getOK_acwp()), this, SLOT(get_acwp())); - connect(gps, SIGNAL(getOK_agnss()), this, SLOT(get_agnss())); - connect(glatitude, SIGNAL(setOK()), this, SLOT(set_OK())); - connect(glatitude, SIGNAL(setERROR()), this, SLOT(set_ERROR())); - connect(this, SIGNAL(newpos()), this, SLOT(set())); + setAttribute(Qt::WA_Maemo5AutoOrientation, true); + setWindowTitle(tr("Google Latitude Updater")); -} + setting = new QSettings(); -void LatitudeGUI::get_loc() { - location_lat->setText(QString::number(glatitude->get_lat())); - location_lon->setText(QString::number(glatitude->get_lon())); - location_acc->setText(QString::number(glatitude->get_acc())); - status->setText(tr("Using google.com/loc, ip-based" )); - emit newpos(); -} + // 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(); -void LatitudeGUI::get_maemo5() { - location_lat->setText(QString::number(gps->get_lat())); - location_lon->setText(QString::number(gps->get_lon())); - location_acc->setText(QString::number(gps->get_acc())); - status->setText(tr("Using liblocation ")); - emit newpos(); -} + // 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())); -void LatitudeGUI::get_acwp() { - location_lat->setText(QString::number(gps->get_lat())); - location_lon->setText(QString::number(gps->get_lon())); - location_acc->setText(QString::number(gps->get_acc())); - status->setText(tr("Using acwp, cell-based ")); - emit newpos(); -} + // 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_agnss() { - location_lat->setText(QString::number(gps->get_lat())); - location_lon->setText(QString::number(gps->get_lon())); - location_acc->setText(QString::number(gps->get_acc())); - status->setText(tr("Using agnss, gps-based ")); - emit newpos(); + // show it + setCentralWidget(maps); } void LatitudeGUI::set() { - glatitude->login(login_user->text(), - login_pass->text()); - glatitude->set(location_lat->text().toDouble(), - location_lon->text().toDouble(), - location_acc->text().toDouble()); + 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::set_OK() { - status->setText(tr("Updated Location !")); +void LatitudeGUI::latitude_OK() { + QMaemo5InformationBox::information(this, "Location Sent!", 1000); } -void LatitudeGUI::set_ERROR() { - status->setText(tr("Error in Authentification !")); +void LatitudeGUI::latitude_ERROR() { + QMaemo5InformationBox::information(this, "Error in Authentification !", 3000); } -void LatitudeGUI::save() { - setting->setValue("user", login_user->text()); - setting->setValue("pass", login_pass->text()); +void LatitudeGUI::save_user(QString _user) { + setting->setValue("user", _user); } - -void LatitudeGUI::show_map() { - // no scrash and stop gps - location_lat = new QLineEdit(QString::number(0)); - location_lon = new QLineEdit(QString::number(0)); - location_acc = new QLineEdit(QString::number(0)); - status = new QLineEdit("Ready"); - login_user = new QLineEdit(setting->value("user","my_username").toString()); - login_pass = new QLineEdit(setting->value("pass","my_password").toString()); - gps->stop(); - - // webkit magic - maps = new QWebView(); - connect(maps, SIGNAL(loadFinished(bool)), this, SLOT(maps_login())); - maps->load(urllogin); - - // set widget - setCentralWidget(maps); - setWindowTitle(tr("Google Maps")); - - // menu - menuBar()->clear(); - menuBar()->addAction(tr("&Latitude") ,this, SLOT(show_lat())); +void LatitudeGUI::save_pass(QString _pass) { + setting->setValue("pass", _pass); } -void LatitudeGUI::show_lat() { - // login input - 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); - QPushButton *button_update = new QPushButton(tr("Manual &Update")); - // login layout - QFormLayout *layout_login = new QFormLayout(); - layout_login->addRow(tr("&Username"), login_user); - layout_login->addRow(tr("&Password"), login_pass); - layout_login->addRow(button_update); - // login connect - connect(login_user, SIGNAL(editingFinished()), this, SLOT(save())); - connect(login_pass, SIGNAL(editingFinished()), this, SLOT(save())); - connect(login_user, SIGNAL(returnPressed()), login_pass, SLOT(setFocus())); - connect(login_pass, SIGNAL(returnPressed()), this, SLOT(set())); - connect(button_update, SIGNAL(clicked()), this, SLOT(set())); - - // location input - location_lat = new QLineEdit(QString::number(0)); - location_lon = new QLineEdit(QString::number(0)); - location_acc = new QLineEdit(QString::number(0)); - // location layout - QFormLayout *layout_location = new QFormLayout(); - layout_location->addRow(tr("lat :"), location_lat); - layout_location->addRow(tr("lon :"), location_lon); - layout_location->addRow(tr("acc :"), location_acc); - - // source button - QPushButton *source_loc = new QPushButton(tr("Update with &IP")); - QPushButton *source_cell = new QPushButton(tr("Update with &Cell")); - QPushButton *source_gps = new QPushButton(tr("Update with &Gps")); - // source layout - QHBoxLayout *layout_source = new QHBoxLayout(); - layout_source->addWidget(source_loc); - layout_source->addWidget(source_cell); - layout_source->addWidget(source_gps); - // source connect - connect(source_loc, SIGNAL(clicked()), glatitude, SLOT(get())); - connect(source_cell, SIGNAL(clicked()), gps, SLOT(get_acwp())); - connect(source_gps, SIGNAL(clicked()), gps, SLOT(get_agnss())); - - // main layout - location = new QWidget(); - QHBoxLayout *layout_form = new QHBoxLayout(); - layout_form->addLayout(layout_login); - layout_form->addLayout(layout_location); - QVBoxLayout *layout = new QVBoxLayout(); - status = new QLineEdit("Ready"); - status->setReadOnly(true); - status->setDisabled(true); - layout->addLayout(layout_form); - layout->addWidget(status); - layout->addLayout(layout_source); - location->setLayout(layout); - - // set widget - setCentralWidget(location); - setWindowTitle(tr("Google Latitude Updater")); +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")); +} - // menu - menuBar()->clear(); - menuBar()->addAction(tr("&Maps") ,this, SLOT(show_map())); +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")); } void LatitudeGUI::maps_login() { - if ( maps->url() == urllogin ) { + if ( maps->url() == url ) { maps->page()->mainFrame()->evaluateJavaScript( QString("document.getElementById('Email').value = \"%1\";").arg( setting->value("user").toString()));