aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp27
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;