add interval config
authorRodrigo Linfati <rodrigo@linfati.cl>
Sat, 22 Jan 2011 19:06:32 +0000 (20:06 +0100)
committerRodrigo Linfati <rodrigo@linfati.cl>
Sat, 22 Jan 2011 19:06:32 +0000 (20:06 +0100)
debian/googlelatitude.install
debian/rules
src/daemon.cpp
src/glatitude.cpp
src/glatitude.h
src/latitude.cpp
src/latitude.h

index 51f5a6a..86695eb 100644 (file)
@@ -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
index f44f604..a6abacb 100755 (executable)
@@ -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
index 7e9886d..3e631c3 100644 (file)
@@ -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();
 }
index be927e9..0573772 100644 (file)
@@ -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));
 }
 
index 7e2e3ed..da1413a 100644 (file)
@@ -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;
index 7bdc14a..33e8719 100644 (file)
@@ -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"));
 }
index 395b00d..b3a781d 100644 (file)
@@ -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();