From 462e8e6d8e46475ea3222056f65ff40823e9e0bf Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Sun, 9 Mar 2014 22:26:26 -0500 Subject: don't connect to EDS when running in the greeter. --- include/datetime/planner-range.h | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) (limited to 'include/datetime/planner-range.h') diff --git a/include/datetime/planner-range.h b/include/datetime/planner-range.h index 5306cdc..25334a6 100644 --- a/include/datetime/planner-range.h +++ b/include/datetime/planner-range.h @@ -23,6 +23,7 @@ #include #include +#include namespace unity { namespace indicator { @@ -36,25 +37,46 @@ namespace datetime { class RangePlanner: public Planner { public: - virtual ~RangePlanner(); - core::Property>& range(); + virtual ~RangePlanner() =default; + virtual core::Property>& range() =0; protected: - RangePlanner(); + RangePlanner() =default; +}; - void rebuild_soon(); - virtual void rebuild_now() =0; +/** + * \brief A #RangePlanner that uses an #Engine to generate appointments + * + * @see Planner + */ +class SimpleRangePlanner: public RangePlanner +{ +public: + SimpleRangePlanner(const std::shared_ptr& engine, + const std::shared_ptr& timezone); + virtual ~SimpleRangePlanner(); + + core::Property>& appointments(); + core::Property>& range(); private: + // rebuild scaffolding + void rebuild_soon(); + virtual void rebuild_now(); static gboolean rebuild_now_static(gpointer); guint m_rebuild_tag = 0; + + std::shared_ptr m_engine; + std::shared_ptr m_timezone; core::Property> m_range; + core::Property> m_appointments; // we've got a GSignal tag here, so disable copying - RangePlanner(const RangePlanner&) =delete; - RangePlanner& operator=(const RangePlanner&) =delete; + SimpleRangePlanner(const RangePlanner&) =delete; + SimpleRangePlanner& operator=(const RangePlanner&) =delete; }; + } // namespace datetime } // namespace indicator } // namespace unity -- cgit v1.2.3