From 4d984d26c3bd930eac72f27aa3fb9165eaef056d Mon Sep 17 00:00:00 2001 From: kugiigi Date: Thu, 18 Mar 2021 16:01:33 +0800 Subject: Also apply show-events to Phone profile --- src/menu.cpp | 41 ++++++++++++++++++++++------------------- tests/test-menus.cpp | 8 ++++++++ 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/menu.cpp b/src/menu.cpp index e2c32dc..0ee9242 100644 --- a/src/menu.cpp +++ b/src/menu.cpp @@ -428,29 +428,32 @@ private: { auto menu = g_menu_new(); - if ((profile==Desktop) && m_state->settings->show_events.get()) + if (m_state->settings->show_events.get()) { - add_appointments (menu, profile); - - if (m_actions->desktop_has_calendar_app()) + if (profile==Desktop) { - // add the 'Add Event…' menuitem - auto menu_item = g_menu_item_new(_("Add Event…"), nullptr); - const gchar* action_name = "indicator.desktop.open-calendar-app"; - auto v = g_variant_new_int64(0); - g_menu_item_set_action_and_target_value(menu_item, action_name, v); - g_menu_append_item(menu, menu_item); - g_object_unref(menu_item); + add_appointments (menu, profile); + + if (m_actions->desktop_has_calendar_app()) + { + // add the 'Add Event…' menuitem + auto menu_item = g_menu_item_new(_("Add Event…"), nullptr); + const gchar* action_name = "indicator.desktop.open-calendar-app"; + auto v = g_variant_new_int64(0); + g_menu_item_set_action_and_target_value(menu_item, action_name, v); + g_menu_append_item(menu, menu_item); + g_object_unref(menu_item); + } } - } - else if (profile==Phone) - { - auto menu_item = g_menu_item_new (_("Clock"), "indicator.phone.open-alarm-app"); - g_menu_item_set_attribute_value (menu_item, G_MENU_ATTRIBUTE_ICON, get_serialized_alarm_icon()); - g_menu_append_item (menu, menu_item); - g_object_unref (menu_item); + else if (profile==Phone) + { + auto menu_item = g_menu_item_new (_("Clock"), "indicator.phone.open-alarm-app"); + g_menu_item_set_attribute_value (menu_item, G_MENU_ATTRIBUTE_ICON, get_serialized_alarm_icon()); + g_menu_append_item (menu, menu_item); + g_object_unref (menu_item); - add_appointments (menu, profile); + add_appointments (menu, profile); + } } return G_MENU_MODEL(menu); diff --git a/tests/test-menus.cpp b/tests/test-menus.cpp index 1f73193..853c3c5 100644 --- a/tests/test-menus.cpp +++ b/tests/test-menus.cpp @@ -325,9 +325,17 @@ private: void InspectPhoneAppointments(GMenuModel* menu_model, bool can_open_planner) { auto submenu = g_menu_model_get_item_link(menu_model, 0, G_MENU_LINK_SUBMENU); + + // there shouldn't be any menuitems when "show events" is false + m_state->settings->show_events.set(false); + wait_msec(); + section = g_menu_model_get_item_link(submenu, Menu::Appointments, G_MENU_LINK_SECTION); + EXPECT_EQ(0, g_menu_model_get_n_items(section)); + g_clear_object(§ion); // clear all the appointments std::vector appointments; + m_state->settings->show_events.set(true); m_state->calendar_upcoming->appointments().set(appointments); wait_msec(); // wait a moment for the menu to update -- cgit v1.2.3