From: Rodrigo Linfati Date: Fri, 1 Jan 2010 22:27:13 +0000 (+0100) Subject: auto update, test stop criteria X-Git-Url: http://git.maemo.org/git/?p=googlelatitude;a=commitdiff_plain;h=68a393779a3cb7be3636dc3045eed820a82a4c8e;ds=sidebyside auto update, test stop criteria --- diff --git a/src/gps.cpp b/src/gps.cpp index 39c0627..5c52eb9 100644 --- a/src/gps.cpp +++ b/src/gps.cpp @@ -35,19 +35,21 @@ void GpsMaemo5::restart() { } void GpsMaemo5_changed(LocationGPSDevice *device, GpsMaemo5 *gps) { - if (device->fix) { - if (device->fix->fields & LOCATION_GPS_DEVICE_LATLONG_SET) { - g_print("lat = %f, long = %f, eph = %f\n", device->fix->latitude, device->fix->longitude, device->fix->eph/100.); - gps->latitude = device->fix->latitude; - gps->longitude = device->fix->longitude; - gps->accuracy = device->fix->eph/100.; + if (gps->device->fix) { + if (gps->device->fix->fields) { + g_print("lat = %f, long = %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.; if ( gps->usegps == 0) { emit gps->getOK_acwp(); + // if ( gps->accuracy < 100*1000 ) gps->stop(); + if ( gps->accuracy < 640*1000 ) gps->stop(); } else if ( gps->usegps == 1 ) { - if ( gps->device->satellites_in_use > 0 ) { - emit gps->getOK_agnss(); - } + emit gps->getOK_agnss(); + // if ( device->satellites_in_use > 0 ) gps->stop(); + if ( gps->device->fix->mode == LOCATION_GPS_DEVICE_MODE_3D ) gps->stop(); } else { emit gps->getOK(); } diff --git a/src/gpsfake.h b/src/gpsfake.h index 34daf33..9d98a53 100644 --- a/src/gpsfake.h +++ b/src/gpsfake.h @@ -14,8 +14,8 @@ signals: void getOK_agnss(); public slots: - void get_acwp() { emit getOK_acwp(); } - void get_agnss() { emit getOK_agnss(); } + void get_acwp() { accuracy = 1; emit getOK_acwp(); } + void get_agnss() { accuracy = 2; emit getOK_agnss(); } public: GpsMaemo5(QObject *parent = 0) : QObject(parent) { diff --git a/src/latitude.cpp b/src/latitude.cpp index 2661345..42f26b9 100644 --- a/src/latitude.cpp +++ b/src/latitude.cpp @@ -14,6 +14,7 @@ LatitudeGUI::LatitudeGUI(QMainWindow *parent) : QMainWindow(parent) { 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())); } @@ -21,14 +22,16 @@ 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")); + status->setText(tr("Using google.com/loc, ip-based" )); + emit newpos(); } 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")); + status->setText(tr("Using liblocation ")); + emit newpos(); } void LatitudeGUI::get_acwp() { @@ -36,6 +39,7 @@ void LatitudeGUI::get_acwp() { 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(); } void LatitudeGUI::get_agnss() { @@ -43,6 +47,7 @@ void LatitudeGUI::get_agnss() { 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(); } void LatitudeGUI::set() { @@ -51,7 +56,6 @@ void LatitudeGUI::set() { glatitude->set(location_lat->text().toDouble(), location_lon->text().toDouble(), location_acc->text().toDouble()); - status->setText(tr("Setting location...")); } void LatitudeGUI::set_OK() { @@ -68,6 +72,15 @@ void LatitudeGUI::save() { } 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())); @@ -87,7 +100,7 @@ void LatitudeGUI::show_lat() { 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("&Update Location")); + QPushButton *button_update = new QPushButton(tr("Manual &Update")); // login layout QFormLayout *layout_login = new QFormLayout(); layout_login->addRow(tr("&Username"), login_user); @@ -111,9 +124,9 @@ void LatitudeGUI::show_lat() { layout_location->addRow(tr("acc :"), location_acc); // source button - QPushButton *source_loc = new QPushButton(tr("&loc")); - QPushButton *source_cell = new QPushButton(tr("&cell")); - QPushButton *source_gps = new QPushButton(tr("&gps")); + QPushButton *source_loc = new QPushButton(tr("Auto &loc")); + QPushButton *source_cell = new QPushButton(tr("Auto &cell")); + QPushButton *source_gps = new QPushButton(tr("Auto &gps")); // source layout QHBoxLayout *layout_source = new QHBoxLayout(); layout_source->addWidget(source_loc); diff --git a/src/latitude.h b/src/latitude.h index a8aac20..bfb5067 100644 --- a/src/latitude.h +++ b/src/latitude.h @@ -10,7 +10,8 @@ class LatitudeGUI : public QMainWindow { Q_OBJECT -public slots: +signals: + void newpos(); public: LatitudeGUI(QMainWindow *parent = 0);