This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository pyhoca-gui. commit 2cf0128d643be62239bd38f1a6660714eefa067e Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Mar 19 14:42:29 2014 +0100 Optimize menu rendering. Reduce accessing session profile data as best as is possible. --- debian/changelog | 2 ++ pyhoca/wxgui/menus_taskbar.py | 37 +++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/debian/changelog b/debian/changelog index cf15a3c..a1f6272 100644 --- a/debian/changelog +++ b/debian/changelog @@ -28,6 +28,8 @@ pyhoca-gui (0.5.0.0-0x2go1) UNRELEASED; urgency=low - Focus the user name field on logon if no user name is stored in the session profile. - Re-order cmdline sections (man page, defaults.py). + - Optimize menu rendering. Reduce accessing session profile data as best + as is possible. - Update English / German translation. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Wed, 08 Jan 2014 21:28:37 +0100 diff --git a/pyhoca/wxgui/menus_taskbar.py b/pyhoca/wxgui/menus_taskbar.py index e9a7e96..5a5239e 100644 --- a/pyhoca/wxgui/menus_taskbar.py +++ b/pyhoca/wxgui/menus_taskbar.py @@ -260,7 +260,7 @@ class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu): _rs = self.Append(text=_(u"Resume Session (not possible)"), id=ID_RESUMESESSION_DISABLED) _rs.Enable(False) - if session_info is not None and session_info.is_published_applications_provider() and not self._PyHocaGUI.get_profile_config(profile_name)['published']: + if session_info is not None and session_info.is_published_applications_provider() and not self._PyHocaGUI.get_profile_config(profile_name, 'published'): _rs.Enable(False) elif _session_status == 'R': @@ -281,7 +281,7 @@ class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu): else: _ss = self.Append(text=_(u"Suspend Session"), id=ID_SUSPENDSESSION) - if _s.is_published_applications_provider() and not self._PyHocaGUI.get_profile_config(profile_name)['published']: + if _s.is_published_applications_provider() and not self._PyHocaGUI.get_profile_config(profile_name, 'published'): _ss.Enable(False) if not _s.is_shadow_session(): if self._PyHocaGUI.disconnect_on_terminate and self._PyHocaGUI.exit_on_disconnect and _s.has_terminal_session(): @@ -298,7 +298,7 @@ class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu): else: self.Append(text=_(u"End Desktop Sharing"), id=ID_TERMINATESESSION) - if _s is not None and _s.is_published_applications_provider() and self._PyHocaGUI.get_profile_config(profile_name)['published']: + if _s is not None and _s.is_published_applications_provider() and self._PyHocaGUI.get_profile_config(profile_name, 'published'): self.AppendSeparator() self.Append(text=_(u"Refresh menu tree"), id=ID_REFRESHMENU) @@ -418,8 +418,6 @@ class PyHocaGUI_Menu_LaunchSingleApplication(wx.Menu): wx.Menu.__init__(self) - current_profile_config = self._PyHocaGUI.get_profile_config(profile_name) - _available_applications = { 'WWWBROWSER': _(u'Internet Browser'), 'MAILCLIENT': _(u'Email Client'), @@ -427,7 +425,7 @@ class PyHocaGUI_Menu_LaunchSingleApplication(wx.Menu): 'TERMINAL': _(u'Terminal'), } - for application in current_profile_config['applications']: + for application in self._PyHocaGUI.get_profile_config(profile_name, 'applications'): _app_id = wx.NewId() self._PyHocaGUI._eventid_profilenames_map[_app_id] = profile_name @@ -560,7 +558,10 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu): connect = self.Append(id=ID_CONNECT, text=_(u'Connect %s') % profile_name) connect.Enable(False) else: - current_profile_config = self._PyHocaGUI.get_profile_config(profile_name) + _applications = self._PyHocaGUI.get_profile_config(profile_name, 'applications') + _command = self._PyHocaGUI.get_profile_config(profile_name, 'command') + _published = self._PyHocaGUI.get_profile_config(profile_name, 'published') + _useexports = self._PyHocaGUI.get_profile_config(profile_name, 'useexports') if profile_name in self._PyHocaGUI._temp_disabled_profile_names: _connecting_info = self.Append(wx.NewId(), text=_(u'Currently connecting...')) @@ -577,15 +578,15 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu): self._PyHocaGUI._eventid_profilenames_map[ID_SESSIONSTART] = \ self._PyHocaGUI._eventid_profilenames_map[ID_SHADOWSESSIONSTART] = profile_name - if current_profile_config['command'] in x2go.defaults.X2GO_DESKTOPSESSIONS: - self.Append(id=ID_SESSIONSTART, text='%s (%s)' % (_(u"Start &new Desktop Session"), current_profile_config['command'])) + if _command in x2go.defaults.X2GO_DESKTOPSESSIONS: + self.Append(id=ID_SESSIONSTART, text='%s (%s)' % (_(u"Start &new Desktop Session"), _command)) self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART) - elif current_profile_config['command'] == 'SHADOW': + elif _command == 'SHADOW': start_shadow_session = self.Append(id=ID_SHADOWSESSIONSTART, text=_(u"Start Desktop Sharing Session")) self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnShadowSessionStart, id=ID_SHADOWSESSIONSTART) - elif current_profile_config['command'] == '' and current_profile_config['published']: + elif _command == '' and _published: _pub_app_start_item = None if profile_name in self._PyHocaGUI._temp_launching_pubapp_profiles: _pub_app_start_item = self.Append(id=ID_PUBAPPSESSIONSTART, text=_(u"Retrieving Application Menu...")) @@ -594,14 +595,14 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu): self._PyHocaGUI._eventid_profilenames_map[ID_PUBAPPSESSIONSTART] = profile_name _pub_app_start_item = self.Append(id=ID_PUBAPPSESSIONSTART, text=_(u"Retrieve Application Menu")) self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnPubAppSessionStart, id=ID_PUBAPPSESSIONSTART) - elif current_profile_config['command'] == 'RDP': + elif _command == 'RDP': self.Append(id=ID_SESSIONSTART, text=_(u"Start &new RDP Session")) self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART) else: self.Append(id=ID_SESSIONSTART, text=_(u"Start &new Session")) self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART) - if current_profile_config['command'] == '' and current_profile_config['published']: + if _command == '' and _published: _pubapp_sessions = [ _pas for _pas in self._PyHocaGUI.client_pubapp_sessions_of_profile_name(profile_name, return_objects=True) if _pas.is_running() ] if _pubapp_sessions: @@ -676,16 +677,16 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu): self._PyHocaGUI._eventid_profilenames_map[ID_LAUNCHAPPLICATION] = \ self._PyHocaGUI._eventid_profilenames_map[ID_CLEANSESSIONS] = profile_name - if current_profile_config['applications'] and current_profile_config['command'] in x2go.defaults.X2GO_DESKTOPSESSIONS.keys() and not current_profile_config['published']: + if _applications and _command in x2go.defaults.X2GO_DESKTOPSESSIONS.keys() and not _published: self.AppendSeparator() self.AppendMenu(id=ID_LAUNCHAPPLICATION, text=_(u"Launch Single Application"), submenu=PyHocaGUI_Menu_LaunchSingleApplication(self._PyHocaGUI, caller=self, profile_name=profile_name) ) - if current_profile_config['command'] != 'SHADOW' and not self._PyHocaGUI.restricted_trayicon: + if _command != 'SHADOW' and not self._PyHocaGUI.restricted_trayicon: self.Append(id=ID_SHADOWSESSIONSTART, text=_(u"Start Desktop Sharing Session")) self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnShadowSessionStart, id=ID_SHADOWSESSIONSTART) - if current_profile_config['published']: + if _published: if not self._PyHocaGUI.restricted_trayicon: self.AppendSeparator() @@ -745,7 +746,7 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu): if _session_list: # newest sessions at the top - if current_profile_config['published']: + if _published: _session_list_names = [ _s_name for _s_name in _session_list.keys() if not _session_list[_s_name].is_published_applications_provider() ] else: _session_list_names = _session_list.keys() @@ -811,7 +812,7 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu): self._PyHocaGUI._eventid_profilenames_map[ID_SHARELOCALFOLDER] = \ self._PyHocaGUI._eventid_profilenames_map[ID_UNSHAREFOLDERS] = profile_name - if current_profile_config['useexports'] and \ + if _useexports and \ self._PyHocaGUI._X2GoClient__profile_is_folder_sharing_available(profile_name=profile_name) and \ self._PyHocaGUI.get_master_session(profile_name) is not None and \ self._PyHocaGUI.is_session_name_enabled(profile_name, self._PyHocaGUI.get_master_session(profile_name).get_session_name()): -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/pyhoca-gui.git