Ticket #2151: 0001-PATCH-v5-sugar-Shutdown-and-Logout-menuitems-should-.patch

File 0001-PATCH-v5-sugar-Shutdown-and-Logout-menuitems-should-.patch, 2.5 KB (added by anurag_seeta, 14 years ago)
  • src/jarabe/view/buddymenu.py

    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 _ 
    2121import gtk
    2222import gconf
    2323import dbus
     24import gobject
     25import jarabe
    2426
    2527from sugar.graphics.palette import Palette
    2628from sugar.graphics.menuitem import MenuItem
    from jarabe.model import friends 
    3133from jarabe.model.session import get_session_manager
    3234from jarabe.controlpanel.gui import ControlPanel
    3335
     36
    3437class BuddyMenu(Palette):
     38
    3539    def __init__(self, buddy):
    3640        self._buddy = buddy
    3741
    class BuddyMenu(Palette): 
    97101        self.menu.append(item)
    98102        item.show()
    99103
     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
    100109    def __logout_activate_cb(self, menu_item):
    101         session_manager = get_session_manager()
    102         session_manager.logout()
     110        self._quit(get_session_manager().logout)
    103111
    104112    def __reboot_activate_cb(self, menu_item):
    105         session_manager = get_session_manager()
    106         session_manager.reboot()
     113        self._quit(get_session_manager().reboot)
    107114
    108115    def __shutdown_activate_cb(self, menu_item):
    109         session_manager = get_session_manager()
    110         session_manager.shutdown()
     116        self._quit(get_session_manager().shutdown)
    111117
    112118    def __controlpanel_activate_cb(self, menu_item):
    113119        panel = ControlPanel()