From: Rodrigo Linfati Date: Sat, 22 Jan 2011 19:06:32 +0000 (+0100) Subject: add interval config X-Git-Url: http://git.maemo.org/git/?p=googlelatitude;a=commitdiff_plain;h=4fe4a04458ce7f275738bff27f00565dc500e4fc;hp=e98468d19d7c7f3b2e068e3bebcc5ff47dd61d9b add interval config --- diff --git a/debian/googlelatitude.install b/debian/googlelatitude.install index 51f5a6a..86695eb 100644 --- a/debian/googlelatitude.install +++ b/debian/googlelatitude.install @@ -1,3 +1,5 @@ data/googlelatitude.desktop usr/share/applications/hildon data/googlelatitude.png usr/share/icons/hicolor/64x64/apps build/googlelatitude opt/linfati.com +build/GoogleLatitudeGUI opt/linfati.com +build/GoogleLatitudeDaemon opt/linfati.com diff --git a/debian/rules b/debian/rules index f44f604..a6abacb 100755 --- a/debian/rules +++ b/debian/rules @@ -36,6 +36,8 @@ install: build dh_clean -k dh_installdirs $(MAKE) DESTDIR=$(CURDIR)/debian/$(APPNAME) install + ln -s googlelatitude build/GoogleLatitudeGUI + ln -s googlelatitude build/GoogleLatitudeDaemon binary-indep: build install binary-arch: build install diff --git a/src/daemon.cpp b/src/daemon.cpp index 7e9886d..3e631c3 100644 --- a/src/daemon.cpp +++ b/src/daemon.cpp @@ -13,6 +13,7 @@ void Daemon::set() { qDebug() << "Daemon: 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()); @@ -24,4 +25,5 @@ void Daemon::daemon_OK() { void Daemon::daemon_ERROR() { qDebug() << "Daemon: no auth"; + QCoreApplication::exit(); } diff --git a/src/glatitude.cpp b/src/glatitude.cpp index be927e9..0573772 100644 --- a/src/glatitude.cpp +++ b/src/glatitude.cpp @@ -6,6 +6,7 @@ GoogleLatitude::GoogleLatitude(QObject *parent) : QObject(parent) { latitude = 0.; longitude = 0.; accuracy = 0.; + interval = 120; worker = new QNetworkAccessManager(); connect(worker, SIGNAL(finished(QNetworkReply *)), this, SLOT(finishedreply(QNetworkReply *))); @@ -24,6 +25,16 @@ void GoogleLatitude::login(QString u, QString p) { pass = p; } +void GoogleLatitude::freq(int f) { + interval = f; +} + +void GoogleLatitude::reset() { + lastupdate = 0; + login_error = false; + set(latitude, longitude, accuracy); +} + void GoogleLatitude::set(double la, double lo, double ac) { latitude = la; longitude = lo; @@ -33,7 +44,7 @@ void GoogleLatitude::set(double la, double lo, double ac) { qDebug() << "GoogleLatitude: set lastupdate = " << lastupdate << " current = " << QDateTime::currentMSecsSinceEpoch(); if (login_error) return; if (la*lo == 0) return; - if ( QDateTime::currentMSecsSinceEpoch() < lastupdate + 120*1000 ) return; + if ( QDateTime::currentMSecsSinceEpoch() < lastupdate + interval*1000 ) return; worker->get(QNetworkRequest(urllogin)); } diff --git a/src/glatitude.h b/src/glatitude.h index 7e2e3ed..da1413a 100644 --- a/src/glatitude.h +++ b/src/glatitude.h @@ -13,7 +13,9 @@ signals: public: GoogleLatitude(QObject *parent = 0); void login(QString username, QString password); - void set(double latitude, double longitude, double accuracy=1000.); + void set(double la, double lo, double ac=1000.); + void freq(int f=120); + void reset(); double get_lat() { return latitude; } double get_lon() { return longitude; } double get_acc() { return accuracy; } @@ -28,6 +30,7 @@ private: double latitude; double longitude; double accuracy; + int interval; // stuff QNetworkAccessManager *worker; QUrl urllogin; diff --git a/src/latitude.cpp b/src/latitude.cpp index 7bdc14a..33e8719 100644 --- a/src/latitude.cpp +++ b/src/latitude.cpp @@ -5,24 +5,8 @@ LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) { setAttribute(Qt::WA_Maemo5AutoOrientation, true); #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(); @@ -31,6 +15,7 @@ LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) { 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())); // updater glatitude = new GoogleLatitude(this); @@ -43,10 +28,37 @@ 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() { 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()); @@ -64,6 +76,7 @@ void LatitudeGUI::latitude_ERROR() { QMaemo5InformationBox::NoTimeout); #endif qDebug() << "LatitudeGUI: no auth"; + config(); } void LatitudeGUI::save_user(QString _user) { @@ -72,7 +85,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")); } diff --git a/src/latitude.h b/src/latitude.h index 395b00d..b3a781d 100644 --- a/src/latitude.h +++ b/src/latitude.h @@ -17,10 +17,12 @@ public: private slots: void set(); + void config(); void latitude_OK(); void latitude_ERROR(); void save_user(QString); void save_pass(QString); + void save_freq(QString); void maps_login(); void mode_buzz(); void mode_latitude();