From 4c9db197ce7c6a18405695885e4ce59d10bddf05 Mon Sep 17 00:00:00 2001 From: Rodrigo Linfati Date: Mon, 24 Jan 2011 15:59:59 +0100 Subject: [PATCH 1/1] separate daemon from gui, not auto connect --- GoogleLatitudeCommon.pri | 16 ++++++++++++++++ GoogleLatitudeDaemon.pro | 6 ++++++ GoogleLatitudeGUI.pro | 6 ++++++ data/googlelatitude.desktop | 4 ++-- debian/googlelatitude.install | 1 - debian/rules | 2 -- googlelatitude.pro | 19 +++---------------- src/glatitude.cpp | 16 +++++++++++----- src/gps.cpp | 9 ++++----- src/latitude.cpp | 2 +- src/main-daemon.cpp | 13 +++++++++++++ src/main-gui.cpp | 13 +++++++++++++ src/main.cpp | 31 ------------------------------- 13 files changed, 75 insertions(+), 63 deletions(-) create mode 100644 GoogleLatitudeCommon.pri create mode 100644 GoogleLatitudeDaemon.pro create mode 100644 GoogleLatitudeGUI.pro create mode 100644 src/main-daemon.cpp create mode 100644 src/main-gui.cpp delete mode 100644 src/main.cpp diff --git a/GoogleLatitudeCommon.pri b/GoogleLatitudeCommon.pri new file mode 100644 index 0000000..e39bd9d --- /dev/null +++ b/GoogleLatitudeCommon.pri @@ -0,0 +1,16 @@ +HEADERS += src/glatitude.h src/gps.h +SOURCES += src/glatitude.cpp src/gps.cpp + +OBJECTS_DIR = build +MOC_DIR = build +DESTDIR = build + +TEMPLATE = app + +QT += network + +contains(QT_CONFIG, maemo5) { + QT += maemo5 + CONFIG += link_pkgconfig + PKGCONFIG += glib-2.0 liblocation +} diff --git a/GoogleLatitudeDaemon.pro b/GoogleLatitudeDaemon.pro new file mode 100644 index 0000000..f4fbe2c --- /dev/null +++ b/GoogleLatitudeDaemon.pro @@ -0,0 +1,6 @@ +include(GoogleLatitudeCommon.pri) +TARGET = GoogleLatitudeDaemon +HEADERS += src/daemon.h +SOURCES += src/daemon.cpp src/main-daemon.cpp + +QT -= gui diff --git a/GoogleLatitudeGUI.pro b/GoogleLatitudeGUI.pro new file mode 100644 index 0000000..3d43ee1 --- /dev/null +++ b/GoogleLatitudeGUI.pro @@ -0,0 +1,6 @@ +include(GoogleLatitudeCommon.pri) +TARGET = GoogleLatitudeGUI +HEADERS += src/latitude.h +SOURCES += src/latitude.cpp src/main-gui.cpp + +QT += webkit diff --git a/data/googlelatitude.desktop b/data/googlelatitude.desktop index 80f40a7..1feabfb 100644 --- a/data/googlelatitude.desktop +++ b/data/googlelatitude.desktop @@ -2,8 +2,8 @@ Encoding=UTF-8 Version=1.0 Type=Application -Name=Google Latitude Update -Exec=/opt/linfati.com/googlelatitude +Name=Google Latitude And Buzz +Exec=/opt/linfati.com/GoogleLatitudeGUI Icon=googlelatitude X-HildonDesk-ShowInToolbar=true X-Osso-Type=application/x-executable diff --git a/debian/googlelatitude.install b/debian/googlelatitude.install index 86695eb..158ebb6 100644 --- a/debian/googlelatitude.install +++ b/debian/googlelatitude.install @@ -1,5 +1,4 @@ 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 a6abacb..f44f604 100755 --- a/debian/rules +++ b/debian/rules @@ -36,8 +36,6 @@ 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/googlelatitude.pro b/googlelatitude.pro index cceb79f..f7030aa 100644 --- a/googlelatitude.pro +++ b/googlelatitude.pro @@ -1,16 +1,3 @@ -TARGET = googlelatitude -HEADERS += src/latitude.h src/glatitude.h src/gps.h src/daemon.h -SOURCES += src/main.cpp src/latitude.cpp src/glatitude.cpp src/gps.cpp src/daemon.cpp - -OBJECTS_DIR = build -MOC_DIR = build -DESTDIR = build - -TEMPLATE = app -QT += core gui network webkit - -contains(QT_CONFIG, maemo5) { - QT += maemo5 - CONFIG += link_pkgconfig - PKGCONFIG += glib-2.0 liblocation -} +TEMPLATE = subdirs +SUBDIRS += GoogleLatitudeDaemon.pro +SUBDIRS += GoogleLatitudeGUI.pro diff --git a/src/glatitude.cpp b/src/glatitude.cpp index 2f9dcac..b9a2ace 100644 --- a/src/glatitude.cpp +++ b/src/glatitude.cpp @@ -40,11 +40,17 @@ void GoogleLatitude::set(double la, double lo, double ac) { longitude = lo; accuracy = ac; - qDebug() << "GoogleLatitude: set la = " << la << " lo = " << lo << " ac = " << ac; - qDebug() << "GoogleLatitude: set lastupdate = " << lastupdate << " current = " << QDateTime::currentDateTime().toUTC().toTime_t(); + qDebug() << "GoogleLatitude: set la" << la << "lo" << lo << "ac" << ac << "current" << QDateTime::currentDateTime().toUTC().toTime_t(); if (login_error) return; if (la*lo == 0) return; if ( QDateTime::currentDateTime().toUTC().toTime_t() < lastupdate + interval ) return; + + QNetworkConfigurationManager mgr; + if (!mgr.isOnline()) { + qDebug() << "GoogleLatitude: offline"; + return; + } + worker->get(QNetworkRequest(urllogin)); } @@ -78,16 +84,16 @@ void GoogleLatitude::finishedreply(QNetworkReply *r) { QString output = r->readAll(); QRegExp regexp ("Authentication required"); if (regexp.indexIn(output, 1) != -1) { - qDebug() << "GoogleLatitude: update error"; + qDebug() << "GoogleLatitude: update error auth"; login_error = true; emit ERROR(); } else { lastupdate = QDateTime::currentDateTime().toUTC().toTime_t(); - qDebug() << "GoogleLatitude: update ok " << "lastupdate = " << lastupdate; + qDebug() << "GoogleLatitude: update ok" << "lastupdate" << lastupdate; emit OK(); } } else { - qDebug() << "GoogleLatitude Error url:" << r->url(); + qDebug() << "GoogleLatitude Error url" << r->url(); qDebug() << r->rawHeaderList(); qDebug() << r->readAll(); } diff --git a/src/gps.cpp b/src/gps.cpp index a12d2ab..d8a7f53 100644 --- a/src/gps.cpp +++ b/src/gps.cpp @@ -25,7 +25,7 @@ GpsMaemo5::GpsMaemo5(QObject *parent) : QObject(parent) { void GpsMaemo5_changed(LocationGPSDevice *device, GpsMaemo5 *gps) { if (device->fix) { if (device->fix->fields) { - g_print("GpsMaemo5 lat = %f, long = %f, eph = %f\n", gps->device->fix->latitude, gps->device->fix->longitude, gps->device->fix->eph/100.); + g_print("GpsMaemo5 lat %f lon %f eph %f\n", gps->device->fix->latitude, gps->device->fix->longitude, gps->device->fix->eph/100.); gps->latitude = gps->device->fix->latitude; gps->longitude = gps->device->fix->longitude; gps->accuracy = gps->device->fix->eph/100.; @@ -35,9 +35,8 @@ void GpsMaemo5_changed(LocationGPSDevice *device, GpsMaemo5 *gps) { } #else void GpsMaemo5::gloc() { - qDebug() << "GpsMaemo5 gloc"; worker->post(QNetworkRequest(urlloc), QByteArray("{version:\"1.1.0\"}")); - QTimer::singleShot(60*1000, this, SLOT(gloc())); + QTimer::singleShot(45*1000, this, SLOT(gloc())); } void GpsMaemo5::finishedreply(QNetworkReply *r) { @@ -49,10 +48,10 @@ void GpsMaemo5::finishedreply(QNetworkReply *r) { latitude = regexp.capturedTexts().at(1).toDouble(); longitude = regexp.capturedTexts().at(2).toDouble(); accuracy = regexp.capturedTexts().at(3).toDouble(); - qDebug() << "GpsMaemo5 lat = " << latitude << " long = " << longitude << " acc = " << accuracy; + qDebug() << "GpsIP lat" << latitude << "lon" << longitude << "acc" << accuracy; emit fix(); } else { - qDebug() << "GpsMaemo5 Error url:" << r->url(); + qDebug() << "GpsIP Error url" << r->url(); qDebug() << r->rawHeaderList(); qDebug() << r->readAll(); } diff --git a/src/latitude.cpp b/src/latitude.cpp index 12ccf5c..2d70baa 100644 --- a/src/latitude.cpp +++ b/src/latitude.cpp @@ -124,7 +124,7 @@ void LatitudeGUI::mode_demonio() { } else { QProcess *cli = new QProcess(this); cli->start(QCoreApplication::applicationDirPath()+"/GoogleLatitudeDaemon"); - qDebug() << "LatitudeGUI: demonio " << QCoreApplication::applicationDirPath()+"/GoogleLatitudeDaemon"; + qDebug() << "LatitudeGUI: demonio" << QCoreApplication::applicationDirPath()+"/GoogleLatitudeDaemon"; if ( ! system("killall -0 GoogleLatitudeDaemon 2> /dev/null" ) ) { demonio->setText(tr("&Stop Daemon")); } diff --git a/src/main-daemon.cpp b/src/main-daemon.cpp new file mode 100644 index 0000000..843aa67 --- /dev/null +++ b/src/main-daemon.cpp @@ -0,0 +1,13 @@ +#include "daemon.h" + +int main(int argc, char *argv[]) { + QCoreApplication::setOrganizationName("linfati"); + QCoreApplication::setOrganizationDomain("linfati.com"); + QCoreApplication::setApplicationName("GoogleLatitude"); + + QCoreApplication app(argc, argv); + Daemon *demonio; + demonio = new Daemon(); + + return app.exec(); +} diff --git a/src/main-gui.cpp b/src/main-gui.cpp new file mode 100644 index 0000000..cef60e2 --- /dev/null +++ b/src/main-gui.cpp @@ -0,0 +1,13 @@ +#include "latitude.h" + +int main(int argc, char *argv[]) { + QCoreApplication::setOrganizationName("linfati"); + QCoreApplication::setOrganizationDomain("linfati.com"); + QCoreApplication::setApplicationName("GoogleLatitude"); + + QApplication app(argc, argv); + LatitudeGUI *gui = new LatitudeGUI(); + gui->show(); + + return app.exec(); +} diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 42eebdd..0000000 --- a/src/main.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "latitude.h" -#include "daemon.h" - -int main(int argc, char *argv[]) { - QCoreApplication::setOrganizationName("linfati"); - QCoreApplication::setOrganizationDomain("linfati.com"); - QCoreApplication::setApplicationName("GoogleLatitude"); - QCoreApplication::setApplicationVersion("0.4.5"); - - if ( QString(argv[0]).contains("GoogleLatitudeDaemon") ) { - QCoreApplication app(argc, argv); - qDebug() << "main: Daemon"; - Daemon *demonio; - demonio = new Daemon(); - app.exec(); - } else if ( QString(argv[0]).contains("GoogleLatitudeGUI") ) { - QApplication app(argc, argv); - qDebug() << "main: GUI"; - LatitudeGUI *gui = new LatitudeGUI(); - gui->show(); - app.exec(); - } else { - QApplication app(argc, argv); - qDebug() << "main: default"; - LatitudeGUI *gui = new LatitudeGUI(); - gui->show(); - app.exec(); - } - - return 0; -} -- 1.7.9.5