[X2Go-Commits] pyhoca-gui.git - build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d (branch) updated: 0.0.30.1-74-g864aae7

X2Go dev team git-admin at x2go.org
Tue Aug 27 13:21:22 CEST 2013


The branch, build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d has been updated
       via  864aae75196136c95ba296d97ab80220a4b3243c (commit)
      from  8239ce836ad58d7b0bf482a4200487324f5f6f31 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 pyhoca/wxgui/frontend.py      |   23 +++++++++++++++++++++++
 pyhoca/wxgui/menus_taskbar.py |   10 ++++++----
 2 files changed, 29 insertions(+), 4 deletions(-)

The diff of changes is:
diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py
index f8c2370..0258223 100644
--- a/pyhoca/wxgui/frontend.py
+++ b/pyhoca/wxgui/frontend.py
@@ -201,6 +201,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self._eventid_profilenames_map = {}
         self._eventid_sessionnames_map = {}
         self._temp_disabled_profile_names = []
+        self._temp_disabled_session_names = {}
 
         # We register one session per available session profile.
         # These registered sessions will be used to access the profile's 
@@ -388,6 +389,17 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             gevent.spawn(self._X2goClient__start_session, session_uuid)
             _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True)
 
+    def _disable_session_name(self, profile_name, session_name):
+        if profile_name not in self._temp_disabled_session_names.keys():
+            self._temp_disabled_session_names[profile_name] = []
+        self._temp_disabled_session_names[profile_name].append(session_name)
+
+    def _enable_session_name(self, profile_name, session_name):
+        try:
+            self._temp_disabled_session_names[profile_name].remove(session_name)
+        except (KeyError, ValueError):
+            pass
+
     def OnSessionResume(self, evt):
         """\
         STILL UNDOCUMENTED
@@ -396,6 +408,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
         session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
         session_name = self._eventid_sessionnames_map[evt.GetId()]
+        self._disable_session_name(self.current_profile_name, session_name)
         if self._X2goClient__server_is_alive(session_uuid):
             gevent.spawn(self._X2goClient__resume_session, session_name=session_name)
             _dummy = self._X2goClient__list_sessions(session_uuid, refresh_cache=True)
@@ -409,6 +422,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
         session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
         session_name = self._eventid_sessionnames_map[evt.GetId()]
+        self._disable_session_name(self.current_profile_name, session_name)
         gevent.spawn(self._X2goClient__suspend_session, session_uuid, session_name=session_name)
         self._eventid_sessionnames_map = {}
 
@@ -420,6 +434,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
         self.current_profile_name = self._eventid_profilenames_map[evt.GetId()]
         session_uuid = self._X2goClient__client_registered_sessions_of_profile_name(self.current_profile_name)[0]
         session_name = self._eventid_sessionnames_map[evt.GetId()]
+        self._disable_session_name(self.current_profile_name, session_name)
         gevent.spawn(self._X2goClient__terminate_session, session_uuid, session_name=session_name)
         self._eventid_sessionnames_map = {}
 
@@ -438,6 +453,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
                 for session_name in session_names:
                     _notify_text += '\n%s' % session_name
                     self._hide_notifications_map[self.current_profile_name].append(session_name)
+                    self._disable_session_name(self.current_profile_name, session_name)
                 self.notifier.send(self.current_profile_name, _notify_text, icon='session_cleanall', timeout=10000)
             gevent.spawn(self._X2goClient__clean_sessions, session_uuid)
 
@@ -628,24 +644,31 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
             self.notifier.send(_(u'%s - print error') % profile_name, _(u'%s\n...caused by session\n%s')  % (err_msg, session_name), icon='session_error', timeout=5000)
 
     def HOOK_on_session_has_started_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        self._enable_session_name(profile_name, session_name)
         self.notifier.send(_(u'%s - start') % profile_name, _(u'New X2go session starting up...\n%s') % session_name, icon='session_start', timeout=5000)
 
     def HOOK_on_session_has_started_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        self._enable_session_name(profile_name, session_name)
         self.notifier.send(_(u'%s - start') % profile_name, _(u'Another client started X2go session\n%s') % session_name, icon='session_start', timeout=5000)
 
     def HOOK_on_session_has_resumed_by_me(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        self._enable_session_name(profile_name, session_name)
         self.notifier.send(_(u'%s - resume') % profile_name, _(u'Resuming X2go session...\n%s') % session_name, icon='session_resume', timeout=5000)
 
     def HOOK_on_session_has_resumed_by_other(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        self._enable_session_name(profile_name, session_name)
         self.notifier.send(_(u'%s - resume') % profile_name, _(u'Another client resumed X2go session\n%s') % session_name, icon='session_resume', timeout=5000)
 
     def HOOK_on_found_session_running_after_connect(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        self._enable_session_name(profile_name, session_name)
         gevent.spawn_later(5, self.notifier.send, _(u'%s - running') % profile_name, _(u'Found already running session\n%s') %  session_name, icon='session_resume', timeout=5000)
 
     def HOOK_on_session_has_been_suspended(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        self._enable_session_name(profile_name, session_name)
         self.notifier.send(_(u'%s - suspend') % profile_name, _(u'X2go Session has been suspended\n%s') % session_name, icon='session_suspend', timeout=5000)
 
     def HOOK_on_session_has_terminated(self, session_uuid='UNKNOWN', profile_name='UNKNOWN', session_name='UNKNOWN'):
+        self._enable_session_name(profile_name, session_name)
         # avoid notification if X2goClient.clean_sessions has been used to terminate sessions
         if self._hide_notifications_map.has_key(profile_name) and session_name in self._hide_notifications_map[profile_name]:
             self._hide_notifications_map[profile_name].remove(session_name)
diff --git a/pyhoca/wxgui/menus_taskbar.py b/pyhoca/wxgui/menus_taskbar.py
index d0df21e..b833e8c 100644
--- a/pyhoca/wxgui/menus_taskbar.py
+++ b/pyhoca/wxgui/menus_taskbar.py
@@ -195,12 +195,12 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
         _query_session_uuid = self._PyHocaGUI.client_connected_sessions_of_profile_name(profile_name, return_objects=False)[0]
         _session_list = self._PyHocaGUI.list_sessions(_query_session_uuid)
 
-        # newest sessions at the top
-        _session_list.reverse()
-
         if _session_list:
 
-            for session_name in _session_list.keys():
+            # newest sessions at the top
+            _session_list_names = _session_list.keys()
+            _session_list_names.reverse()
+            for session_name in _session_list_names:
 
                 _s_id = wx.NewId()
 
@@ -215,6 +215,8 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
                                                                                                status=_session_list[session_name].status,
                                                                                               )
                                                  )
+                if self._PyHocaGUI._temp_disabled_session_names.has_key(profile_name) and session_name in self._PyHocaGUI._temp_disabled_session_names[profile_name]:
+                    session_submenu.Enable(False)
 
         if _session_list.keys():
             self.Append(id=ID_CLEANSESSIONS, text=_(u"&Clean all sessions"))


hooks/post-receive
-- 
pyhoca-gui.git (Python X2Go Client (wxPython GUI))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).




More information about the x2go-commits mailing list