Merge lp:~mterry/indicator-session/add-greeter-mode into lp:indicator-session/0.1

Proposed by Michael Terry
Status: Merged
Approved by: Conor Curran
Approved revision: 170
Merge reported by: Conor Curran
Merged at revision: not available
Proposed branch: lp:~mterry/indicator-session/add-greeter-mode
Merge into: lp:indicator-session/0.1
Diff against target: 232 lines (+94/-60)
3 files modified
src/device-menu-mgr.c (+74/-54)
src/device-menu-mgr.h (+1/-1)
src/session-service.c (+19/-5)
To merge this branch: bzr merge lp:~mterry/indicator-session/add-greeter-mode
Reviewer Review Type Date Requested Status
Indicator Applet Developers Pending
Review via email: mp+70324@code.launchpad.net

Description of the change

When in the greeter, use a simpler interface. See bug 811853 for more.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/device-menu-mgr.c'
--- src/device-menu-mgr.c 2011-07-22 14:36:59 +0000
+++ src/device-menu-mgr.c 2011-08-03 16:23:21 +0000
@@ -461,9 +461,8 @@
461}461}
462462
463static void463static void
464device_menu_mgr_build_static_items (DeviceMenuMgr* self)464device_menu_mgr_build_settings_items (DeviceMenuMgr* self)
465{465{
466 // Static Setting items
467 system_settings_menuitem = dbusmenu_menuitem_new();466 system_settings_menuitem = dbusmenu_menuitem_new();
468 dbusmenu_menuitem_property_set (system_settings_menuitem,467 dbusmenu_menuitem_property_set (system_settings_menuitem,
469 DBUSMENU_MENUITEM_PROP_LABEL,468 DBUSMENU_MENUITEM_PROP_LABEL,
@@ -520,8 +519,11 @@
520 DBUSMENU_MENUITEM_PROP_TYPE,519 DBUSMENU_MENUITEM_PROP_TYPE,
521 DBUSMENU_CLIENT_TYPES_SEPARATOR);520 DBUSMENU_CLIENT_TYPES_SEPARATOR);
522 dbusmenu_menuitem_child_add_position (self->root_item, separator1, 5);521 dbusmenu_menuitem_child_add_position (self->root_item, separator1, 5);
522}
523523
524 // Devices control524static void
525device_menu_mgr_build_devices_items (DeviceMenuMgr* self)
526{
525 DbusmenuMenuitem * device_heading = dbusmenu_menuitem_new();527 DbusmenuMenuitem * device_heading = dbusmenu_menuitem_new();
526 dbusmenu_menuitem_property_set (device_heading,528 dbusmenu_menuitem_property_set (device_heading,
527 DBUSMENU_MENUITEM_PROP_LABEL,529 DBUSMENU_MENUITEM_PROP_LABEL,
@@ -581,58 +583,74 @@
581 DBUSMENU_MENUITEM_PROP_TYPE,583 DBUSMENU_MENUITEM_PROP_TYPE,
582 DBUSMENU_CLIENT_TYPES_SEPARATOR);584 DBUSMENU_CLIENT_TYPES_SEPARATOR);
583 dbusmenu_menuitem_child_add_position (self->root_item, separator3, 11);585 dbusmenu_menuitem_child_add_position (self->root_item, separator3, 11);
584 586}
587
588static void
589device_menu_mgr_build_static_items (DeviceMenuMgr* self, gboolean greeter_mode)
590{
591 // Static Setting items
592 if (!greeter_mode) {
593 device_menu_mgr_build_settings_items (self);
594 }
595
596 // Devices control
597 if (!greeter_mode) {
598 device_menu_mgr_build_devices_items (self);
599 }
600
585 // Session control 601 // Session control
586 gboolean can_lockscreen;602 if (!greeter_mode) {
587603 gboolean can_lockscreen;
588 /* Make sure we have a valid GConf client, and build one604
589 if needed */605 /* Make sure we have a valid GConf client, and build one
590 device_menu_mgr_ensure_gconf_client (self);606 if needed */
591 can_lockscreen = !gconf_client_get_bool ( gconf_client,607 device_menu_mgr_ensure_gconf_client (self);
592 LOCKDOWN_KEY_SCREENSAVER,608 can_lockscreen = !gconf_client_get_bool ( gconf_client,
593 NULL);609 LOCKDOWN_KEY_SCREENSAVER,
594 /* Lock screen item */610 NULL);
595 if (can_lockscreen) {611 /* Lock screen item */
596 lock_menuitem = dbusmenu_menuitem_new();612 if (can_lockscreen) {
597 dbusmenu_menuitem_property_set (lock_menuitem,613 lock_menuitem = dbusmenu_menuitem_new();
598 DBUSMENU_MENUITEM_PROP_LABEL,614 dbusmenu_menuitem_property_set (lock_menuitem,
599 _("Lock Screen"));615 DBUSMENU_MENUITEM_PROP_LABEL,
600616 _("Lock Screen"));
601 gchar * shortcut = gconf_client_get_string(gconf_client, KEY_LOCK_SCREEN, NULL);617
602 if (shortcut != NULL) {618 gchar * shortcut = gconf_client_get_string(gconf_client, KEY_LOCK_SCREEN, NULL);
603 g_debug("Lock screen shortcut: %s", shortcut);619 if (shortcut != NULL) {
604 dbusmenu_menuitem_property_set_shortcut_string(lock_menuitem, shortcut);620 g_debug("Lock screen shortcut: %s", shortcut);
605 g_free(shortcut);621 dbusmenu_menuitem_property_set_shortcut_string(lock_menuitem, shortcut);
622 g_free(shortcut);
623 }
624 else {
625 g_debug("Unable to get lock screen shortcut.");
626 }
627
628 g_signal_connect (G_OBJECT(lock_menuitem),
629 DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
630 G_CALLBACK(lock_screen), NULL);
631 dbusmenu_menuitem_child_append(self->root_item, lock_menuitem);
632 }
633
634 logout_mi = dbusmenu_menuitem_new();
635
636 if (supress_confirmations()) {
637 dbusmenu_menuitem_property_set (logout_mi,
638 DBUSMENU_MENUITEM_PROP_LABEL,
639 _("Log Out"));
606 }640 }
607 else {641 else {
608 g_debug("Unable to get lock screen shortcut.");642 dbusmenu_menuitem_property_set (logout_mi,
643 DBUSMENU_MENUITEM_PROP_LABEL,
644 _("Log Out\342\200\246"));
609 }645 }
610646 dbusmenu_menuitem_property_set_bool (logout_mi,
611 g_signal_connect (G_OBJECT(lock_menuitem),647 DBUSMENU_MENUITEM_PROP_VISIBLE,
648 show_logout());
649 dbusmenu_menuitem_child_append(self->root_item, logout_mi);
650 g_signal_connect( G_OBJECT(logout_mi),
612 DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,651 DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
613 G_CALLBACK(lock_screen), NULL);652 G_CALLBACK(show_dialog), "logout");
614 dbusmenu_menuitem_child_append(self->root_item, lock_menuitem);653 }
615 }
616
617 logout_mi = dbusmenu_menuitem_new();
618
619 if (supress_confirmations()) {
620 dbusmenu_menuitem_property_set (logout_mi,
621 DBUSMENU_MENUITEM_PROP_LABEL,
622 _("Log Out"));
623 }
624 else {
625 dbusmenu_menuitem_property_set (logout_mi,
626 DBUSMENU_MENUITEM_PROP_LABEL,
627 _("Log Out\342\200\246"));
628 }
629 dbusmenu_menuitem_property_set_bool (logout_mi,
630 DBUSMENU_MENUITEM_PROP_VISIBLE,
631 show_logout());
632 dbusmenu_menuitem_child_append(self->root_item, logout_mi);
633 g_signal_connect( G_OBJECT(logout_mi),
634 DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
635 G_CALLBACK(show_dialog), "logout");
636654
637 if (can_suspend && allow_suspend) {655 if (can_suspend && allow_suspend) {
638 suspend_mi = dbusmenu_menuitem_new();656 suspend_mi = dbusmenu_menuitem_new();
@@ -787,12 +805,14 @@
787/*805/*
788 * Clean Entry Point 806 * Clean Entry Point
789 */807 */
790DeviceMenuMgr* device_menu_mgr_new (SessionDbus* session_dbus)808DeviceMenuMgr* device_menu_mgr_new (SessionDbus* session_dbus, gboolean greeter_mode)
791{809{
792 DeviceMenuMgr* device_mgr = g_object_new (DEVICE_TYPE_MENU_MGR, NULL);810 DeviceMenuMgr* device_mgr = g_object_new (DEVICE_TYPE_MENU_MGR, NULL);
793 device_mgr->session_dbus_interface = session_dbus;811 device_mgr->session_dbus_interface = session_dbus;
794 device_menu_mgr_build_static_items (device_mgr); 812 device_menu_mgr_build_static_items (device_mgr, greeter_mode);
795 device_mgr->apt_watcher = apt_watcher_new (session_dbus,813 if (software_updates_menuitem != NULL) {
796 software_updates_menuitem);814 device_mgr->apt_watcher = apt_watcher_new (session_dbus,
815 software_updates_menuitem);
816 }
797 return device_mgr;817 return device_mgr;
798}818}
799819
=== modified file 'src/device-menu-mgr.h'
--- src/device-menu-mgr.h 2011-07-20 17:17:49 +0000
+++ src/device-menu-mgr.h 2011-08-03 16:23:21 +0000
@@ -44,7 +44,7 @@
4444
45GType device_menu_mgr_get_type (void) G_GNUC_CONST;45GType device_menu_mgr_get_type (void) G_GNUC_CONST;
4646
47DeviceMenuMgr* device_menu_mgr_new (SessionDbus* session_dbus);47DeviceMenuMgr* device_menu_mgr_new (SessionDbus* session_dbus, gboolean greeter_mode);
4848
49DbusmenuMenuitem* device_mgr_get_root_item (DeviceMenuMgr* self);49DbusmenuMenuitem* device_mgr_get_root_item (DeviceMenuMgr* self);
5050
5151
=== modified file 'src/session-service.c'
--- src/session-service.c 2011-07-22 17:22:37 +0000
+++ src/session-service.c 2011-08-03 16:23:21 +0000
@@ -78,11 +78,21 @@
78 return;78 return;
79}79}
8080
81static gboolean
82get_greeter_mode (void)
83{
84 const gchar *var;
85 var = g_getenv("INDICATOR_GREETER_MODE");
86 return (g_strcmp0(var, "1") == 0);
87}
88
81/* Main, is well, main. It brings everything up and throws89/* Main, is well, main. It brings everything up and throws
82 us into the mainloop of no return. */90 us into the mainloop of no return. */
83int91int
84main (int argc, char ** argv)92main (int argc, char ** argv)
85{93{
94 gboolean greeter_mode;
95
86 g_type_init();96 g_type_init();
8797
88 /* Setting up i18n and gettext. Apparently, we need98 /* Setting up i18n and gettext. Apparently, we need
@@ -99,15 +109,19 @@
99109
100 session_dbus = session_dbus_new();110 session_dbus = session_dbus_new();
101111
112 greeter_mode = get_greeter_mode();
113
102 // Devices114 // Devices
103 DeviceMenuMgr* device_mgr = device_menu_mgr_new (session_dbus);115 DeviceMenuMgr* device_mgr = device_menu_mgr_new (session_dbus, greeter_mode);
104 DbusmenuServer * server = dbusmenu_server_new(INDICATOR_SESSION_DBUS_OBJECT);116 DbusmenuServer * server = dbusmenu_server_new(INDICATOR_SESSION_DBUS_OBJECT);
105 dbusmenu_server_set_root(server, device_mgr_get_root_item (device_mgr));117 dbusmenu_server_set_root(server, device_mgr_get_root_item (device_mgr));
106 118
107 // Users119 if (!greeter_mode) {
108 UserMenuMgr* user_mgr = user_menu_mgr_new (session_dbus); 120 // Users
109 DbusmenuServer* users_server = dbusmenu_server_new (INDICATOR_USERS_DBUS_OBJECT);121 UserMenuMgr* user_mgr = user_menu_mgr_new (session_dbus);
110 dbusmenu_server_set_root (users_server, user_mgr_get_root_item (user_mgr));122 DbusmenuServer* users_server = dbusmenu_server_new (INDICATOR_USERS_DBUS_OBJECT);
123 dbusmenu_server_set_root (users_server, user_mgr_get_root_item (user_mgr));
124 }
111125
112 mainloop = g_main_loop_new(NULL, FALSE);126 mainloop = g_main_loop_new(NULL, FALSE);
113 g_main_loop_run(mainloop);127 g_main_loop_run(mainloop);

Subscribers

People subscribed via source and target branches