diff options
-rw-r--r-- | src/main.cpp | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/src/main.cpp b/src/main.cpp index c246296..7bd6f9d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,13 +17,14 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <datetime/actions-live.h> #include <datetime/clock.h> #include <datetime/formatter.h> #include <datetime/locations-settings.h> #include <datetime/menu.h> #include <datetime/planner-eds.h> #include <datetime/service.h> -#include <datetime/settings-shared.h> +#include <datetime/settings-live.h> #include <datetime/state.h> #include <datetime/timezones-live.h> @@ -54,18 +55,28 @@ main(int /*argc*/, char** /*argv*/) if(!notify_init("indicator-datetime-service")) g_critical("libnotify initialization failed"); - // build the menu factory - GActionGroup * actions = G_ACTION_GROUP(g_simple_action_group_new()); - std::shared_ptr<Timezones> timezones(new LiveTimezones(TIMEZONE_FILE)); + // build the state + std::shared_ptr<Settings> settings(new LiveSettings); + std::shared_ptr<Timezones> timezones(new LiveTimezones(settings, TIMEZONE_FILE)); std::shared_ptr<Clock> clock(new LiveClock(timezones)); std::shared_ptr<Planner> planner(new PlannerEds); - std::shared_ptr<Locations> locations(new SettingsLocations(SETTINGS_INTERFACE, timezones)); planner->time = clock->localtime(); - MenuFactory factory(actions, timezones, clock, planner, locations); + std::shared_ptr<Locations> locations(new SettingsLocations(settings, timezones)); + std::shared_ptr<State> state(new State); + state->settings = settings; + state->timezones = timezones; + state->clock = clock; + state->locations = locations; + state->planner = planner; + state->calendar_day = clock->localtime(); + + // build the menu factory + std::shared_ptr<Actions> actions(new LiveActions(state)); + MenuFactory factory(actions, state); // create the menus std::vector<std::shared_ptr<Menu>> menus; - menus.push_back(factory.buildMenu(MenuFactory::Desktop)); + menus.push_back(factory.buildMenu(Menu::Desktop)); // export them auto loop = g_main_loop_new(nullptr, false); @@ -74,7 +85,7 @@ main(int /*argc*/, char** /*argv*/) g_message("exiting: service couldn't acquire or lost ownership of busname"); g_main_loop_quit(loop); }); - service.publish(actions, menus); + //service.publish(actions, menus); g_main_loop_run(loop); g_main_loop_unref(loop); return 0; |