From 7efe2324c8852a7b78092fb399a6c2851def1f89 Mon Sep 17 00:00:00 2001
From: Anurag Chowdhury <anurag@seeta.in>
Date: Tue, 19 Oct 2010 05:55:13 +0530
Subject: [PATCH v5 sugar] Shutdown(and Logout) menuitems should activate
the busy cursor(or provide some other visual feedback, perhaps dimming/
locking the UI from use).SL#2151
Show a busy cursor when shutdown, logout, or reboot options are
selected. Defer the selected action to an idle task so that the cursor
change is flushed to the display.
Co-Authored-By:James Cameron <quozl@laptop.org>
Co-Authored-By:Aleksey Lim <alsroot@member.fsf.org>
---
src/jarabe/view/buddymenu.py | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
v1->v2: Corrected the window of operation
v2->v3: Added the busycursor in the desktop window
v3->v4: Removed redundant function calls like glib.timeout_add()
v4->v5: Opimised the code by removing repetitive redundant code snips.
Reviewed-By: James Cameron <quozl@laptop.org>
diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
index 0ba6cc1..2f3b1e0 100644
a
|
b
|
from gettext import gettext as _ |
21 | 21 | import gtk |
22 | 22 | import gconf |
23 | 23 | import dbus |
| 24 | import gobject |
| 25 | import jarabe |
24 | 26 | |
25 | 27 | from sugar.graphics.palette import Palette |
26 | 28 | from sugar.graphics.menuitem import MenuItem |
… |
… |
from jarabe.model import friends |
31 | 33 | from jarabe.model.session import get_session_manager |
32 | 34 | from jarabe.controlpanel.gui import ControlPanel |
33 | 35 | |
| 36 | |
34 | 37 | class BuddyMenu(Palette): |
| 38 | |
35 | 39 | def __init__(self, buddy): |
36 | 40 | self._buddy = buddy |
37 | 41 | |
… |
… |
class BuddyMenu(Palette): |
97 | 101 | self.menu.append(item) |
98 | 102 | item.show() |
99 | 103 | |
| 104 | def _quit(self, action): |
| 105 | journal = jarabe.desktop.homewindow.get_instance() |
| 106 | journal.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) |
| 107 | gobject.idle_add(action) |
| 108 | |
100 | 109 | def __logout_activate_cb(self, menu_item): |
101 | | session_manager = get_session_manager() |
102 | | session_manager.logout() |
| 110 | self._quit(get_session_manager().logout) |
103 | 111 | |
104 | 112 | def __reboot_activate_cb(self, menu_item): |
105 | | session_manager = get_session_manager() |
106 | | session_manager.reboot() |
| 113 | self._quit(get_session_manager().reboot) |
107 | 114 | |
108 | 115 | def __shutdown_activate_cb(self, menu_item): |
109 | | session_manager = get_session_manager() |
110 | | session_manager.shutdown() |
| 116 | self._quit(get_session_manager().shutdown) |
111 | 117 | |
112 | 118 | def __controlpanel_activate_cb(self, menu_item): |
113 | 119 | panel = ControlPanel() |