X-Git-Url: http://git.maemo.org/git/?p=googlelatitude;a=blobdiff_plain;f=src%2Flatitude.cpp;h=2d70baa85d024b644ea6a8a0c7eb73b824affece;hp=c215f01d7efafc64eaec2af5077609252ef8be8f;hb=4c9db197ce7c6a18405695885e4ce59d10bddf05;hpb=b5c1cf9c738640b0be7d4d0a8545116a97012319 diff --git a/src/latitude.cpp b/src/latitude.cpp index c215f01..2d70baa 100644 --- a/src/latitude.cpp +++ b/src/latitude.cpp @@ -1,33 +1,30 @@ #include "latitude.h" LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) { +#ifdef Q_WS_MAEMO_5 setAttribute(Qt::WA_Maemo5AutoOrientation, true); - setWindowTitle(tr("Google Latitude Updater")); - +#endif + setWindowTitle(tr("Latitude & Buzz")); setting = new QSettings(); - // 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(); + maps->settings()->setAttribute(QWebSettings::PluginsEnabled, true); 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())); + menuBar()->addAction(tr("&Config"), this, SLOT(config())); + + demonio = new QAction(this); + if ( system("killall -0 GoogleLatitudeDaemon 2> /dev/null" ) ) { + demonio->setText(tr("&Start Daemon")); + } else { + demonio->setText(tr("&Stop Daemon")); + } + connect(demonio, SIGNAL(triggered()), this, SLOT(mode_demonio())); + menuBar()->addAction(demonio); // updater glatitude = new GoogleLatitude(this); @@ -40,21 +37,55 @@ LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) { setCentralWidget(maps); } +void LatitudeGUI::config() { + // 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); + QLineEdit *login_freq = new QLineEdit(setting->value("freq","120").toString()); + QFormLayout *layout_login = new QFormLayout(); + layout_login->addRow(tr("&Username"), login_user); + layout_login->addRow(tr("&Password"), login_pass); + layout_login->addRow(tr("&Interval"), login_freq); + connect(login_user, SIGNAL(textEdited(QString)), this, SLOT(save_user(QString))); + connect(login_pass, SIGNAL(textEdited(QString)), this, SLOT(save_pass(QString))); + connect(login_freq, SIGNAL(textEdited(QString)), this, SLOT(save_freq(QString))); + connect(login_user, SIGNAL(returnPressed()), login_pass, SLOT(setFocus())); + connect(login_pass, SIGNAL(returnPressed()), login_freq, SLOT(setFocus())); + connect(login_freq, SIGNAL(returnPressed()), dialoglogin, SLOT(accept())); + dialoglogin->setLayout(layout_login); + dialoglogin->exec(); + + set(); + mode_latitude(); + glatitude->reset(); +} + + void LatitudeGUI::set() { - QMaemo5InformationBox::information(this, "New gps position", 1000); + qDebug() << "LatitudeGUI: set"; glatitude->login(setting->value("user","my_username").toString(), setting->value("pass","my_password").toString()); + glatitude->freq(setting->value("freq","120").toInt()); glatitude->set(gps->get_lat(), gps->get_lon(), gps->get_acc()); } void LatitudeGUI::latitude_OK() { - QMaemo5InformationBox::information(this, "Location Sent!", 1000); + qDebug() << "LatitudeGUI: send"; } void LatitudeGUI::latitude_ERROR() { - QMaemo5InformationBox::information(this, "Error in Authentification !", 3000); +#ifdef Q_WS_MAEMO_5 + QString error_message = tr("Error in Authentification!

") + + tr("Plese verify your login details
"); + QMaemo5InformationBox::information(this, error_message, + QMaemo5InformationBox::NoTimeout); +#endif + qDebug() << "LatitudeGUI: no auth"; + config(); } void LatitudeGUI::save_user(QString _user) { @@ -63,7 +94,9 @@ void LatitudeGUI::save_user(QString _user) { void LatitudeGUI::save_pass(QString _pass) { setting->setValue("pass", _pass); } - +void LatitudeGUI::save_freq(QString _freq) { + setting->setValue("freq", _freq); +} 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")); } @@ -83,3 +116,17 @@ void LatitudeGUI::maps_login() { maps->page()->mainFrame()->evaluateJavaScript("document.getElementById('gaia_loginform').submit();"); } } + +void LatitudeGUI::mode_demonio() { + if ( ! system("killall -0 GoogleLatitudeDaemon 2> /dev/null" ) ) { + system("killall GoogleLatitudeDaemon 2> /dev/null"); + demonio->setText(tr("&Start Daemon")); + } else { + QProcess *cli = new QProcess(this); + cli->start(QCoreApplication::applicationDirPath()+"/GoogleLatitudeDaemon"); + qDebug() << "LatitudeGUI: demonio" << QCoreApplication::applicationDirPath()+"/GoogleLatitudeDaemon"; + if ( ! system("killall -0 GoogleLatitudeDaemon 2> /dev/null" ) ) { + demonio->setText(tr("&Stop Daemon")); + } + } +}