From 40689ea36c360cb6fb42048f5d93303237745b86 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 16 Jan 2014 17:42:43 -0600 Subject: update timezones-live to use Settings to tell when the user has enabled/disabled GeoClue lookups --- include/datetime/timezones-live.h | 13 ++++++------- src/timezones-live.cpp | 12 ++++++++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/include/datetime/timezones-live.h b/include/datetime/timezones-live.h index 5f2cb3e..286c967 100644 --- a/include/datetime/timezones-live.h +++ b/include/datetime/timezones-live.h @@ -20,9 +20,10 @@ #ifndef INDICATOR_DATETIME_LIVE_TIMEZONES_H #define INDICATOR_DATETIME_LIVE_TIMEZONES_H -#include // base class -#include // aggregated -#include // aggregated +#include +#include +#include +#include #include // shared_ptr<> @@ -37,16 +38,14 @@ namespace datetime { class LiveTimezones: public Timezones { public: - LiveTimezones(const std::string& filename); - - /** \brief Whether or not to track location by IP address */ - core::Property geolocation_enabled = core::Property(false); + LiveTimezones(std::shared_ptr& settings, const std::string& filename); private: void update_geolocation(); void update_timezones(); FileTimezone m_file; + std::shared_ptr m_settings; std::shared_ptr m_geo; }; diff --git a/src/timezones-live.cpp b/src/timezones-live.cpp index dc14021..baac05d 100644 --- a/src/timezones-live.cpp +++ b/src/timezones-live.cpp @@ -18,18 +18,20 @@ */ #include + #include namespace unity { namespace indicator { namespace datetime { -LiveTimezones::LiveTimezones(const std::string& filename): - m_file(filename) +LiveTimezones::LiveTimezones(std::shared_ptr& settings, const std::string& filename): + m_file(filename), + m_settings(settings) { m_file.timezone.changed().connect([this](const std::string&){update_timezones();}); - geolocation_enabled.changed().connect([this](bool){update_geolocation();}); + m_settings->show_detected_location.changed().connect([this](bool){update_geolocation();}); update_geolocation(); update_timezones(); @@ -37,9 +39,11 @@ LiveTimezones::LiveTimezones(const std::string& filename): void LiveTimezones::update_geolocation() { + // clear the previous pointer, if any m_geo.reset(); - if(geolocation_enabled.get()) + // if location detection is enabled, turn on GeoClue + if(m_settings->show_detected_location.get()) { auto geo = new GeoclueTimezone(); geo->timezone.changed().connect([this](const std::string&){update_timezones();}); -- cgit v1.2.3