Re: [Sugar-devel] [PATCH v2 sugar] Shutdown and Logout menu items should activate the buzzy cursor (SL#2151)

2010-10-03 Thread James Cameron
On 26/09/2010, at 7:29 AM, Anurag Chowdhury wrote:
 Shutdown (and Logout) menu items should activate the buzzy cursor (or provide 
 some other visual feedback, perhaps dimming/locking the UI from use).

buzzy should be busy.  The bug SL#2151 was already updated with the new 
summary Shutdown and Logout menu items should activate the busy cursor (or 
provide some other visual feedback).

Your text in the commit message was not wrapped within 80 column view, as can 
be seen when the patch is viewed here:

http://patchwork.sugarlabs.org/patch/281/

Please wrap this text next time you update the commit message.

 ---
 src/jarabe/view/buddymenu.py |   42 ++
 1 files changed, 34 insertions(+), 8 deletions(-)
 
 v1 was Reviewed-By: James Cameron quozl at laptop.org
 v1-v2: Set the cursor in its appropriate window 
 
 diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
 index 0ba6cc1..7135d9e 100644
 --- a/src/jarabe/view/buddymenu.py
 +++ b/src/jarabe/view/buddymenu.py
 @@ -21,6 +21,8 @@ from gettext import gettext as _
 import gtk
 import gconf
 import dbus
 +import jarabe
 +import glib
 
 from sugar.graphics.palette import Palette
 from sugar.graphics.menuitem import MenuItem
 @@ -98,16 +100,40 @@ class BuddyMenu(Palette):
 item.show()
 
 def __logout_activate_cb(self, menu_item):
 -session_manager = get_session_manager()
 -session_manager.logout()
 +def update_cur(window):
 +window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
 +return False 
 +def shut(self, menu_item):
 +session_manager = get_session_manager()
 +session_manager.logout()
 +window = jarabe.desktop.homewindow.get_instance()
 +glib.timeout_add(3, update_cur, window)

Your solution defers the cursor change to several milliseconds in the future, 
and calls the session manager method immediately as part of a single-shot 
recursion into gtk.main().

How did you determine that three (3) milliseconds would be the appropriate 
delay?

 +glib.idle_add(shut,self,menu_item)

Adding shut() function to the idle queue and then immediately calling 
gtk.main() would cause the shut() function to be called almost immediately.  
Why not call the shut() function at this point instead?

 +gtk.main()

Can you achieve the correct result without recursion back into gtk.main()?  
Calling gtk.main() in a callback that gtk.main() has already called does not 
seem to be a good practice.

 def __reboot_activate_cb(self, menu_item):
 -session_manager = get_session_manager()
 -session_manager.reboot()
 -
 -def __shutdown_activate_cb(self, menu_item):
 -session_manager = get_session_manager()
 -session_manager.shutdown()
 +def update_cur(window):
 +window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
 +return False 
 +def shut(self, menu_item):
 +session_manager = get_session_manager()
 +session_manager.reboot()

These two functions are repetitive.  The same code with very little difference 
is used in two, no three, places.

 +window = jarabe.desktop.homewindow.get_instance()
 +glib.timeout_add(3, update_cur, window)  
 +glib.idle_add(shut,self,menu_item)
 +gtk.main()
 +
 +def __shutdown_activate_cb(self, menu_item):
 +def update_cur(window):
 +window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
 +return False 
 +def shut(self, menu_item):
 +session_manager = get_session_manager()
 +session_manager.shutdown()
 +window = jarabe.desktop.homewindow.get_instance()
 +glib.timeout_add(3, update_cur, window)  
 +glib.idle_add(shut,self,menu_item)
 +gtk.main()
 
 def __controlpanel_activate_cb(self, menu_item):
 panel = ControlPanel()
 -- 
 1.7.2.2
 
 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

--
James Cameron
System Test Coordinator
One Laptop per Child

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH v2 sugar] Shutdown and Logout menu items should activate the buzzy cursor (SL#2151)

2010-09-27 Thread Tomeu Vizoso
On Sat, Sep 25, 2010 at 23:29, Anurag Chowdhury anu...@seeta.in wrote:
 Shutdown (and Logout) menu items should activate the buzzy cursor (or provide 
 some other visual feedback, perhaps dimming/locking the UI from use).

Hi Anurag, could you explain what you have changed since the last
revision and why?

With the information you have made available I would have to guess too much.

Thanks,

Tomeu

 ---
  src/jarabe/view/buddymenu.py |   42 
 ++
  1 files changed, 34 insertions(+), 8 deletions(-)

 v1 was Reviewed-By: James Cameron quozl at laptop.org
 v1-v2: Set the cursor in its appropriate window

 diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
 index 0ba6cc1..7135d9e 100644
 --- a/src/jarabe/view/buddymenu.py
 +++ b/src/jarabe/view/buddymenu.py
 @@ -21,6 +21,8 @@ from gettext import gettext as _
  import gtk
  import gconf
  import dbus
 +import jarabe
 +import glib

  from sugar.graphics.palette import Palette
  from sugar.graphics.menuitem import MenuItem
 @@ -98,16 +100,40 @@ class BuddyMenu(Palette):
         item.show()

     def __logout_activate_cb(self, menu_item):
 -        session_manager = get_session_manager()
 -        session_manager.logout()
 +        def update_cur(window):
 +            window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
 +            return False
 +        def shut(self, menu_item):
 +            session_manager = get_session_manager()
 +            session_manager.logout()
 +        window = jarabe.desktop.homewindow.get_instance()
 +        glib.timeout_add(3, update_cur, window)
 +        glib.idle_add(shut,self,menu_item)
 +        gtk.main()

     def __reboot_activate_cb(self, menu_item):
 -        session_manager = get_session_manager()
 -        session_manager.reboot()
 -
 -    def __shutdown_activate_cb(self, menu_item):
 -        session_manager = get_session_manager()
 -        session_manager.shutdown()
 +        def update_cur(window):
 +            window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
 +            return False
 +        def shut(self, menu_item):
 +            session_manager = get_session_manager()
 +            session_manager.reboot()
 +        window = jarabe.desktop.homewindow.get_instance()
 +        glib.timeout_add(3, update_cur, window)
 +        glib.idle_add(shut,self,menu_item)
 +        gtk.main()
 +
 +    def __shutdown_activate_cb(self, menu_item):
 +        def update_cur(window):
 +            window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
 +            return False
 +        def shut(self, menu_item):
 +            session_manager = get_session_manager()
 +            session_manager.shutdown()
 +        window = jarabe.desktop.homewindow.get_instance()
 +        glib.timeout_add(3, update_cur, window)
 +        glib.idle_add(shut,self,menu_item)
 +        gtk.main()

     def __controlpanel_activate_cb(self, menu_item):
         panel = ControlPanel()
 --
 1.7.2.2

 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] [PATCH v2 sugar] Shutdown and Logout menu items should activate the buzzy cursor (SL#2151)

2010-09-27 Thread Anurag Chowdhury
Hello Tomeu , I actually worked upon your suggestion quoted in
http://lists.sugarlabs.org/archive/sugar-devel/2010-September/026741.html
to solve this bug. Actually I changed the cursor in homewindow this time and
used glib.idle_add( ) to break out of the infinite gtk.main() loop to
shutdown the system when the processor is idle and untill that time it will
show a busy cursor which i think will be the proper method to shutdown while
providing a visual confirmation of the process.

Please let me know if adding this information in description would be
sufficient. If required, I can add more information.Also I will resubmit a
new patch which will be more descriptive than this one.

Regards,

Anurag

On Mon, Sep 27, 2010 at 7:21 PM, Tomeu Vizoso to...@sugarlabs.org wrote:

 On Sat, Sep 25, 2010 at 23:29, Anurag Chowdhury anu...@seeta.in wrote:
  Shutdown (and Logout) menu items should activate the buzzy cursor (or
 provide some other visual feedback, perhaps dimming/locking the UI from
 use).

 Hi Anurag, could you explain what you have changed since the last
 revision and why?

 With the information you have made available I would have to guess too
 much.

 Thanks,

 Tomeu

  ---
   src/jarabe/view/buddymenu.py |   42
 ++
   1 files changed, 34 insertions(+), 8 deletions(-)
 
  v1 was Reviewed-By: James Cameron quozl at laptop.org
  v1-v2: Set the cursor in its appropriate window
 
  diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
  index 0ba6cc1..7135d9e 100644
  --- a/src/jarabe/view/buddymenu.py
  +++ b/src/jarabe/view/buddymenu.py
  @@ -21,6 +21,8 @@ from gettext import gettext as _
   import gtk
   import gconf
   import dbus
  +import jarabe
  +import glib
 
   from sugar.graphics.palette import Palette
   from sugar.graphics.menuitem import MenuItem
  @@ -98,16 +100,40 @@ class BuddyMenu(Palette):
  item.show()
 
  def __logout_activate_cb(self, menu_item):
  -session_manager = get_session_manager()
  -session_manager.logout()
  +def update_cur(window):
  +
  window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
  +return False
  +def shut(self, menu_item):
  +session_manager = get_session_manager()
  +session_manager.logout()
  +window = jarabe.desktop.homewindow.get_instance()
  +glib.timeout_add(3, update_cur, window)
  +glib.idle_add(shut,self,menu_item)
  +gtk.main()
 
  def __reboot_activate_cb(self, menu_item):
  -session_manager = get_session_manager()
  -session_manager.reboot()
  -
  -def __shutdown_activate_cb(self, menu_item):
  -session_manager = get_session_manager()
  -session_manager.shutdown()
  +def update_cur(window):
  +
  window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
  +return False
  +def shut(self, menu_item):
  +session_manager = get_session_manager()
  +session_manager.reboot()
  +window = jarabe.desktop.homewindow.get_instance()
  +glib.timeout_add(3, update_cur, window)
  +glib.idle_add(shut,self,menu_item)
  +gtk.main()
  +
  +def __shutdown_activate_cb(self, menu_item):
  +def update_cur(window):
  +
  window.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
  +return False
  +def shut(self, menu_item):
  +session_manager = get_session_manager()
  +session_manager.shutdown()
  +window = jarabe.desktop.homewindow.get_instance()
  +glib.timeout_add(3, update_cur, window)
  +glib.idle_add(shut,self,menu_item)
  +gtk.main()
 
  def __controlpanel_activate_cb(self, menu_item):
  panel = ControlPanel()
  --
  1.7.2.2
 
  ___
  Sugar-devel mailing list
  Sugar-devel@lists.sugarlabs.org
  http://lists.sugarlabs.org/listinfo/sugar-devel
 
 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel