From f43606cc4b8697feebde25ca459278a0eb8f47d9 Mon Sep 17 00:00:00 2001
From: Anurag Chowdhury <anurag@seeta.in>
Date: Wed, 6 Oct 2010 04:31:30 +0530
Subject: [PATCH v4 sugar] Shutdown (and Logout) menuitems should activate
the busy cursor (or provide some other visual feedback, perhaps dimming/
locking the UI from use).
We changed the cursor in home window to a busy cursor when the shutdown menu
is activated and used glib.idle_add( ) to call the shut funtion when pygtk is
idle to shutdown or logout the sugar session properly , hence letting the user
know the validity of the shutdown process going on in the backend.
---
src/jarabe/view/buddymenu.py | 26 ++++++++++++++++++++------
1 files changed, 20 insertions(+), 6 deletions(-)
v1 was Reviewed-By: James Cameron <quozl at laptop.org>
v2 was Reviewed-By: Tomeu Vizoso<tomeu@sugarlabs.org>
v3 was Reviewed-By: James Cameron <quozl at laptop.org>
v3->v4 : Removed redundant function calls like glib.timeout_add() and gtk.main()
diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
index 0ba6cc1..78cdeb4 100644
a
|
b
|
from gettext import gettext as _ |
21 | 21 | import gtk |
22 | 22 | import gconf |
23 | 23 | import dbus |
| 24 | import glib |
| 25 | import jarabe |
24 | 26 | |
25 | 27 | from sugar.graphics.palette import Palette |
26 | 28 | from sugar.graphics.menuitem import MenuItem |
… |
… |
class BuddyMenu(Palette): |
98 | 100 | item.show() |
99 | 101 | |
100 | 102 | def __logout_activate_cb(self, menu_item): |
101 | | session_manager = get_session_manager() |
102 | | session_manager.logout() |
| 103 | def shut(self, menu_item): |
| 104 | session_manager = get_session_manager() |
| 105 | session_manager.logout() |
| 106 | window = jarabe.desktop.homewindow.get_instance() |
| 107 | window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) |
| 108 | glib.idle_add(shut,self,menu_item) |
103 | 109 | |
104 | 110 | def __reboot_activate_cb(self, menu_item): |
105 | | session_manager = get_session_manager() |
106 | | session_manager.reboot() |
| 111 | def shut(self, menu_item): |
| 112 | session_manager = get_session_manager() |
| 113 | session_manager.reboot() |
| 114 | window = jarabe.desktop.homewindow.get_instance() |
| 115 | window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) |
| 116 | glib.idle_add(shut,self,menu_item) |
107 | 117 | |
108 | 118 | def __shutdown_activate_cb(self, menu_item): |
109 | | session_manager = get_session_manager() |
110 | | session_manager.shutdown() |
| 119 | def shut(self, menu_item): |
| 120 | session_manager = get_session_manager() |
| 121 | session_manager.reboot() |
| 122 | window = jarabe.desktop.homewindow.get_instance() |
| 123 | window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) |
| 124 | glib.idle_add(shut,self,menu_item) |
111 | 125 | |
112 | 126 | def __controlpanel_activate_cb(self, menu_item): |
113 | 127 | panel = ControlPanel() |