[X2Go-Commits] pyhoca-gui.git - build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d (branch) updated: 0.2.1.1-44-g51f6e18
X2Go dev team
git-admin at x2go.org
Tue Aug 27 13:22:53 CEST 2013
The branch, build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d has been updated
via 51f6e18ddb78fc74cca3f496281549ea54015d20 (commit)
from ff2c5020c462c1ee05ef32b82c60dd6ccf22777e (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:
debian/changelog | 2 +
pyhoca/wxgui/frontend.py | 81 ++++++++++++++++++---
pyhoca/wxgui/menus_taskbar.py | 50 ++++++++-----
pyhoca/wxgui/profilemanager.py | 156 +++++++++++++++++++++++++++++++++-------
4 files changed, 239 insertions(+), 50 deletions(-)
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 8398714..053faf9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -27,6 +27,8 @@ pyhoca-gui (0.4.0.0-0~x2go1) UNRELEASED; urgency=low
- Give control of auto-starting and auto-resuming fully into the hands
of the session profiles. No extra cmdline options needed anymore to
activate auto-starting/-resuming of sessions.
+ - Add support for desktop sharing in PyHoca-GUI. Requires X2Go Server
+ 4.1.0.0 and above.
* /debian/control:
+ Thanks to Orion's patch in bug #91 we can drop many build dependencies.
+ Versioned Depend: on python-x2go (>= 0.4.0.0-0~).
diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py
index 4254f26..8ae0576 100644
--- a/pyhoca/wxgui/frontend.py
+++ b/pyhoca/wxgui/frontend.py
@@ -59,6 +59,7 @@ import basepath
import messages
import splash
import sessiontitle
+import listdesktops
wx.SetDefaultPyEncoding("utf-8")
wx.InitAllImageHandlers()
@@ -145,6 +146,7 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
self.appname = appname
self.vendorname = vendorname
self.version = version
+ self._exiting = False
self.args = args
@@ -431,6 +433,7 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
- close all associated windows
"""
+ self._exiting = True
# close open password dialogs (or other remaining windows)
for _win in self._sub_windows:
_win.Close()
@@ -684,7 +687,7 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
pass
connect_failed = True
except x2go.X2GoRemoteHomeException, e:
- self.notifier.send(_(u'%s - missing home directory') % profile_name, _("The remote user's home directory does not exist."), icon='auth_error', timeout=4000)
+ self.notifier.send(_(u'%s - missing home directory') % profile_name, _(u"The remote user's home directory does not exist."), icon='auth_error', timeout=4000)
try:
self._temp_disabled_profile_names.remove(profile_name)
except ValueError:
@@ -758,6 +761,39 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
gevent.spawn(self._X2GoClient__start_session, session_uuid)
self._X2GoClient__list_sessions(session_uuid, refresh_cache=True)
+ def OnShadowSessionStart(self, evt):
+ """\
+ Gets called if the user requests to start a new X2Go session.
+
+ @param evt: event
+ @type evt: C{obj}
+
+ """
+ profile_name = self._eventid_profilenames_map[evt.GetId()]
+
+ server_version = self.get_server_versions(profile_name, 'x2goserver')
+ if not self.has_server_feature(profile_name, 'X2GO_LIST_SHADOWSESSIONS'):
+ m = messages.PyHoca_MessageWindow_Ok(self,
+ title=_(u'Desktop Sharing with %s not supported by server') % self.appname,
+ msg=_(u"We apologize for the inconvenience...\n\nSession profiles of type ,,SHADOW'' are not\nsupported by X2Go Server (v%s)!!!\n\nDesktop Sharing with %s requires\nX2Go Server 4.1.0.0 and above.") % (server_version, self.appname),
+ icon='warning',
+ profile_name=profile_name)
+ m.ShowModal()
+ return
+
+ listbox = listdesktops.PyHocaGUI_DialogBoxListDesktops(self, profile_name)
+ listbox.ShowModal()
+
+ if listbox.connect:
+
+ desktop = listbox.GetSelectedDesktop()
+ if desktop:
+ session_uuid = self._X2GoClient__register_session(profile_name=profile_name, published_applications=False)
+ if self._X2GoClient__server_is_alive(session_uuid):
+ gevent.spawn(self._X2GoClient__share_desktop_session, session_uuid, desktop=desktop, share_mode=listbox.share_mode, check_desktop_list=True)
+
+ listbox.Close()
+
def OnPubAppSessionStart(self, evt):
"""\
Gets called if the user requests to start a new X2Go session in published applications mode.
@@ -1129,10 +1165,10 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
else:
self._pyhoca_logger('Exporting session profile(s) to file %s failed.' % _export_file, loglevel=x2go.loglevel_ERROR)
m = messages.PyHoca_MessageWindow_Ok(self,
- title=_(u'%s: Exporting session profile(s) failed') % self.appname,
- msg=_(u"The selected session profile(s) could not be exported to the \nfile »%s«.\n\nCheck for common problems (disk full, insufficient access, etc.).") % os.path.normpath(_export_file),
- icon='error',
- profile_name=profile_name)
+ title=_(u'%s: Exporting session profile(s) failed') % self.appname,
+ msg=_(u"The selected session profile(s) could not be exported to the \nfile »%s«.\n\nCheck for common problems (disk full, insufficient access, etc.).") % os.path.normpath(_export_file),
+ icon='error',
+ profile_name=profile_name)
m.ShowModal()
def OnShareCustomLocalFolder(self, evt):
@@ -1355,7 +1391,8 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
@type profile_name: C{str}
"""
- self.notifier.send(_(u'%s - channel error') % profile_name, _(u'Lost connection to server %s unexpectedly! Try to re-authenticate to the server...') % profile_name, icon='session_warning', timeout=10000)
+ if not self._exiting:
+ self.notifier.send(_(u'%s - channel error') % profile_name, _(u'Lost connection to server %s unexpectedly! Try to re-authenticate to the server...') % profile_name, icon='session_warning', timeout=10000)
try:
del self._temp_disabled_session_names[profile_name]
except KeyError:
@@ -1364,7 +1401,6 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
self.WakeUpIdle()
self.ExitMainLoop()
-
def HOOK_session_startup_failed(self, profile_name='UNKNOWN', **kwargs):
"""\
Notify about session startup failures.
@@ -1373,7 +1409,32 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
@type profile_name: C{str}
"""
- self.notifier.send(_(u'%s - session failure') % profile_name, _('The session startup failed.'), icon='session_error', timeout=10000)
+ self.notifier.send(_(u'%s - session failure') % profile_name, _(u'The session startup failed.'), icon='session_error', timeout=10000)
+ if self.exit_on_disconnect:
+ self.WakeUpIdle()
+ self.ExitMainLoop()
+
+ def HOOK_list_desktops_timeout(self, profile_name='UNKNOWN', **kwargs):
+ """\
+ Notify about x2golistdesktops timeout events.
+
+ @param profile_name: profile name of session that called this hook method
+ @type profile_name: C{str}
+
+ """
+ self.notifier.send(_(u'%s - timeout') % profile_name, _(u'The server took long to provide a list of sharable desktops.\nThis can happen from time to time, please try again'), icon='session_warning', timeout=10000)
+
+ def HOOK_no_such_desktop(self, profile_name='UNKNOWN', desktop='UNKNOWN', **kwargs):
+ """\
+ Notify that a before-seen sharable desktop is not available for sharing (anymore).
+
+ @param profile_name: profile name of session that called this hook method
+ @type profile_name: C{str}
+ @param desktop: the desktop identifier that was attemted to be shared
+ @type desktop: C{str}
+
+ """
+ self.notifier.send(_(u'%s - desktop sharing failed') % profile_name, _(u'The desktop %s is not available for sharing (anymore).') % desktop, icon='session_warning', timeout=10000)
if self.exit_on_disconnect:
self.WakeUpIdle()
self.ExitMainLoop()
@@ -1391,9 +1452,9 @@ class PyHocaGUI(wx.App, x2go.X2GoClient):
"""
if session_name == 'UNKNOWN':
- self.notifier.send(_(u'%s - session failure') % profile_name, _('The command ,,%s\'\' is not available on X2Go server.') % cmd, icon='session_error', timeout=10000)
+ self.notifier.send(_(u'%s - session failure') % profile_name, _(u'The command ,,%s\'\' is not available on X2Go server.') % cmd, icon='session_error', timeout=10000)
else:
- self.notifier.send(_(u'%s - session failure') % profile_name, _('The command ,,%s\'\' is not available on X2Go server\n%s.') % (cmd, session_name), icon='session_error', timeout=10000)
+ self.notifier.send(_(u'%s - session failure') % profile_name, _(u'The command ,,%s\'\' is not available on X2Go server\n%s.') % (cmd, session_name), icon='session_error', timeout=10000)
if self.exit_on_disconnect:
self.WakeUpIdle()
self.ExitMainLoop()
diff --git a/pyhoca/wxgui/menus_taskbar.py b/pyhoca/wxgui/menus_taskbar.py
index 9aca407..eff9387 100644
--- a/pyhoca/wxgui/menus_taskbar.py
+++ b/pyhoca/wxgui/menus_taskbar.py
@@ -253,22 +253,30 @@ class PyHocaGUI_Menu_TaskbarSessionActions(wx.Menu):
_ts = self.Append(text=_(u"Transfer Session (not possible)"), id=ID_TRANSFERSESSION_DISABLED)
_ts.Enable(False)
- if self._PyHocaGUI.disconnect_on_suspend and self._PyHocaGUI.exit_on_disconnect and _s.has_terminal_session():
- _ss = self.Append(text=_(u"Suspend Session (and disconnect/exit)"), id=ID_SUSPENDSESSION)
- elif self._PyHocaGUI.disconnect_on_suspend and _s.has_terminal_session():
- _ss = self.Append(text=_(u"Suspend Session (and disconnect)"), id=ID_SUSPENDSESSION)
+ if not _s.is_shadow_session():
+ if self._PyHocaGUI.disconnect_on_suspend and self._PyHocaGUI.exit_on_disconnect and _s.has_terminal_session():
+ _ss = self.Append(text=_(u"Suspend Session (and disconnect/exit)"), id=ID_SUSPENDSESSION)
+ elif self._PyHocaGUI.disconnect_on_suspend and _s.has_terminal_session():
+ _ss = self.Append(text=_(u"Suspend Session (and disconnect)"), id=ID_SUSPENDSESSION)
+ 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']:
+ _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():
+ self.Append(text=_(u"Terminate Session (and disconnect/exit)"), id=ID_SUSPENDSESSION)
+ elif self._PyHocaGUI.disconnect_on_terminate and _s.has_terminal_session():
+ self.Append(text=_(u"Terminate Session (and disconnect)"), id=ID_TERMINATESESSION)
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']:
- _ss.Enable(False)
-
- if self._PyHocaGUI.disconnect_on_terminate and self._PyHocaGUI.exit_on_disconnect and _s.has_terminal_session():
- self.Append(text=_(u"Terminate Session (and disconnect/exit)"), id=ID_SUSPENDSESSION)
- elif self._PyHocaGUI.disconnect_on_terminate and _s.has_terminal_session():
- self.Append(text=_(u"Terminate Session (and disconnect)"), id=ID_TERMINATESESSION)
+ self.Append(text=_(u"Terminate Session"), id=ID_TERMINATESESSION)
else:
- self.Append(text=_(u"Terminate Session"), id=ID_TERMINATESESSION)
+ if self._PyHocaGUI.disconnect_on_terminate and self._PyHocaGUI.exit_on_disconnect and _s.has_terminal_session():
+ self.Append(text=_(u"End Session Sharing (and disconnect/exit)"), id=ID_SUSPENDSESSION)
+ elif self._PyHocaGUI.disconnect_on_terminate and _s.has_terminal_session():
+ self.Append(text=_(u"End Session Sharing (and disconnect)"), id=ID_TERMINATESESSION)
+ else:
+ self.Append(text=_(u"End Session Sharing"), id=ID_TERMINATESESSION)
if _s is not None and _s.is_published_applications_provider() and self._PyHocaGUI.get_profile_config(profile_name)['published']:
self.AppendSeparator()
@@ -514,6 +522,7 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
ID_CONNECT=wx.NewId()
ID_PUBAPPSESSIONSTART=wx.NewId()
ID_SESSIONSTART=wx.NewId()
+ ID_SHADOWSESSIONSTART=wx.NewId()
ID_LAUNCHAPPLICATION = wx.NewId()
ID_CLEANSESSIONS = wx.NewId()
ID_EDITPROFILEWHILECONNECTED = wx.NewId()
@@ -540,11 +549,17 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
else:
- self._PyHocaGUI._eventid_profilenames_map[ID_SESSIONSTART] = profile_name
+ 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']))
self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART)
+
+ elif current_profile_config['command'] == 'SHADOW':
+ start_shadow_session = self.Append(id=ID_SHADOWSESSIONSTART, text=_(u"Connect to another Desktop Session"))
+ self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnShadowSessionStart, id=ID_SHADOWSESSIONSTART)
+
elif current_profile_config['command'] == '' and current_profile_config['published']:
_pub_app_start_item = None
if profile_name in self._PyHocaGUI._temp_launching_pubapp_profiles:
@@ -636,11 +651,14 @@ 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 and not current_profile_config['published']:
+ if current_profile_config['applications'] and current_profile_config['command'] in x2go.defaults.X2GO_DESKTOPSESSIONS.keys() and not current_profile_config['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:
+ self.Append(id=ID_SHADOWSESSIONSTART, text=_(u"Connect to Shared Desktop"))
+ self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnShadowSessionStart, id=ID_SHADOWSESSIONSTART)
if current_profile_config['published']:
diff --git a/pyhoca/wxgui/profilemanager.py b/pyhoca/wxgui/profilemanager.py
index 71fd136..9f01a78 100644
--- a/pyhoca/wxgui/profilemanager.py
+++ b/pyhoca/wxgui/profilemanager.py
@@ -84,6 +84,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
'XFCE': _(u'XFCE Desktop (XFCE)'),
'PUBLISHEDAPPLICATIONS': _(u'Published Applications'),
'APPLICATION': _(u'Single Application'),
+ 'SHADOW': _(u'Share desktop session (SHADOW)'),
'XDMCP': _(u'XDMCP Query'),
'RDP': _(u'Windows Terminal Server (X2Go-proxied RDP)'),
'DirectRDP': _(u'Windows Terminal Server (Direct RDP)'),
@@ -898,6 +899,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
if _command == 'RDP' and self.profile_config['directrdp']:
self.SessionType.SetValue(self.sessionChoices['DirectRDP'])
self.Command.SetValue('')
+ elif _command == 'SHADOW':
+ self.SessionType.SetValue(self.sessionChoices[_command])
+ self.Application.SetValue('')
+ self.Command.SetValue('')
+ self.AutoStartSession.Enable(False)
+ self.AutoStartSession.SetValue(False)
elif _command in self.sessionChoices.keys():
self.SessionType.SetValue(self.sessionChoices[_command])
self.Application.SetValue('')
@@ -985,27 +992,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.KeyboardModel.Enable(True)
self.KeyboardVariant.Enable(True)
- self.EnableSound.SetValue(self.profile_config['sound'])
- self.DefaultSoundPort.SetValue(self.profile_config['defsndport'])
- self.SoundPort.SetValue(self.profile_config['sndport'])
- if self.profile_config['sound']:
- self.PulseAudio.Enable(True)
- self.Esd.Enable(True)
- self.DefaultSoundPort.Enable(True)
- if not self.profile_config['defsndport']:
- self.SoundPortLabel.Enable(True)
- self.SoundPort.Enable(True)
- else:
- self.SoundPortLabel.Enable(False)
- self.SoundPort.Enable(False)
+ if _command != 'SHADOW':
+ self.ClientSidePrinting.SetValue(self.profile_config['print'])
else:
- self.PulseAudio.Enable(False)
- self.Esd.Enable(False)
- self.DefaultSoundPort.Enable(False)
- self.SoundPortLabel.Enable(False)
- self.SoundPort.Enable(False)
-
- self.ClientSidePrinting.SetValue(self.profile_config['print'])
+ self.ClientSidePrinting.SetValue(False)
+ self.ClientSidePrinting.Enable(False)
+ self.staticbox_Printing.Enable(False)
if _command == 'RDP':
if self.profile_config['directrdp']:
@@ -1049,6 +1041,26 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.RDPOptionsLabel.Enable(False)
self.RDPOptions.Enable(False)
+ if _command != 'SHADOW':
+ self.EnableSound.SetValue(self.profile_config['sound'])
+ self.DefaultSoundPort.SetValue(self.profile_config['defsndport'])
+ self.SoundPort.SetValue(self.profile_config['sndport'])
+ if self.EnableSound.GetValue():
+ self.PulseAudio.Enable(True)
+ self.Esd.Enable(True)
+ self.DefaultSoundPort.Enable(True)
+ self._toggle_DefaultSoundPort()
+ else:
+ self.EnableSound.SetValue(False)
+ self.EnableSound.Enable(False)
+ self.PulseAudio.Enable(False)
+ self.Arts.Enable(False)
+ self.Esd.Enable(False)
+ self.DefaultSoundPort.Enable(False)
+ self.SoundPortLabel.Enable(False)
+ self.SoundPort.Enable(False)
+ self.staticbox_Sound.Enable(False)
+
self.XDMCPServer.SetValue(self.profile_config['xdmcpserver'])
self.DisplayTypeFullscreen.SetValue(self.profile_config['fullscreen'] and not self.profile_config['maxdim'])
@@ -1066,7 +1078,13 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
else:
self.DisplayDPI.Enable(True)
- self.UseLocalFolderSharing.SetValue(self.profile_config['useexports'])
+ if _command != 'SHADOW':
+ self.UseLocalFolderSharing.SetValue(self.profile_config['useexports'])
+ else:
+ self.UseLocalFolderSharing.SetValue(False)
+ self.UseLocalFolderSharing.Enable(False)
+ self.staticbox_FolderSharing.Enable(False)
+
self.RestoreSharedLocalFolders.SetValue(self.profile_config['restoreexports'])
self._toggle_localFolderSharing()
self.SharedFoldersList.DeleteAllItems()
@@ -1080,7 +1098,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
if ',' in self.profile_config['export']:
self.profile_config['export'] = self.profile_config['export'].replace(',', ';')
-
# strip off whitespaces and ";" from beginning and end of string
_shared_folders = self.profile_config['export'].strip().strip(';').strip()
# strip off '"' from beginning and end of string
@@ -1117,7 +1134,13 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ServerEncoding.SetValue(self.profile_config['iconvto'])
self._toggle_useEncodingConverter()
- self.UseFileMIMEbox.SetValue(self.profile_config['usemimebox'])
+ if _command != 'SHADOW':
+ self.UseFileMIMEbox.SetValue(self.profile_config['usemimebox'])
+ else:
+ self.UseFileMIMEbox.SetValue(False)
+ self.UseFileMIMEbox.Enable(False)
+ self.staticbox_FileMIMEbox.Enable(False)
+
self.FileMIMEboxExtensions.SetValue(self.profile_config['mimeboxextensions'])
if self.profile_config['mimeboxaction'] in self.mimeboxactionChoices.keys():
self.FileMIMEboxAction.SetValue(self.mimeboxactionChoices[self.profile_config['mimeboxaction']])
@@ -1127,6 +1150,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.disable_EditConnected_options()
+ self._last_session_type = [ i for i in self.sessionChoices.keys() if self.sessionChoices[i] == self.SessionType.GetValue() ][0]
+
def _toggle_DisplayProperties(self):
"""\
Toggle display properties, depend on activation/deactivation of rootless session mode.
@@ -1207,7 +1232,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.SSHPort.Enable(False)
self.SSHKeyFileLabel.Enable(False)
self.SSHKeyFile.Enable(False)
- self.UniqueHostAliases.Enable(False)
+ self.UniqueHostKeyAliases.Enable(False)
self.SSHAutoLogin.Enable(False)
if PARAMIKO_FEATURE['forward-ssh-agent']:
self.SSHForwardAuthAgent.Enable(False)
@@ -1582,6 +1607,44 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
"""
_session_type = [ i for i in self.sessionChoices.keys() if self.sessionChoices[i] == self.SessionType.GetValue() ][0]
+ if self._last_session_type == 'SHADOW':
+
+ self.EnableSound.SetValue(self.profile_config_bak['sound'])
+ self.RootlessSession.SetValue(self.profile_config_bak['rootless'])
+ self.UseLocalFolderSharing.SetValue(self.profile_config_bak['useexports'])
+ self.ClientSidePrinting.SetValue(self.profile_config_bak['print'])
+ self.UseFileMIMEbox.SetValue(self.profile_config_bak['usemimebox'])
+ self.AutoStartSession.SetValue(self.profile_config_bak['autostart'])
+
+ self.RootlessSession.Enable(True)
+
+ if self.EnableSound.GetValue():
+ self.PulseAudio.Enable(True)
+ self.Esd.Enable(True)
+ self.DefaultSoundPort.Enable(True)
+ self._toggle_DefaultSoundPort()
+ else:
+ self.PulseAudio.Enable(False)
+ self.Esd.Enable(False)
+ self.DefaultSoundPort.Enable(False)
+ self.SoundPortLabel.Enable(False)
+ self.SoundPort.Enable(False)
+
+ self.staticbox_Sound.Enable(True)
+
+ # no local folder sharing available
+ self.staticbox_FolderSharing.Enable(True)
+ self.UseLocalFolderSharing.Enable(True)
+ self._toggle_localFolderSharing()
+
+ # no printing available
+ self.ClientSidePrinting.Enable(True)
+ self.staticbox_Printing.Enable(True)
+
+ # no file MIME box available
+ self.UseFileMIMEbox.Enable(True)
+ self.staticbox_FileMIMEbox.Enable(True)
+
self.UsePublishedApplications.Enable(True)
self.AutoStartSession.Enable(True)
@@ -1711,9 +1774,54 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.AutoStartSession.SetValue(self._last_auto_start_value)
self._last_auto_start_value = None
+ if _session_type == 'SHADOW':
+
+ self.profile_config_bak['autostart'] = self.AutoStartSession.GetValue()
+ self.profile_config_bak['sound'] = self.EnableSound.GetValue()
+ self.profile_config_bak['rootless'] = self.RootlessSession.GetValue()
+ self.profile_config_bak['useexports'] = self.UseLocalFolderSharing.GetValue()
+ self.profile_config_bak['print'] = self.ClientSidePrinting.GetValue()
+ self.profile_config_bak['usemimebox'] = self.UseFileMIMEbox.GetValue()
+
+ self.AutoStartSession.SetValue(False)
+ self.AutoStartSession.Enable(False)
+
+ # shadow sessions are always desktop sessions
+ self.RootlessSession.SetValue(True)
+ self.RootlessSession.Enable(False)
+
+ # no sound available with SHADOW sessions
+ self.EnableSound.SetValue(False)
+ self.EnableSound.Enable(False)
+ self.PulseAudio.Enable(False)
+ self.Esd.Enable(False)
+ self.DefaultSoundPort.Enable(False)
+ self.SoundPortLabel.Enable(False)
+ self.SoundPort.Enable(False)
+ self.staticbox_Sound.Enable(False)
+
+ # no local folder sharing available
+ self.UseLocalFolderSharing.SetValue(False)
+ self.UseLocalFolderSharing.Enable(False)
+ self.staticbox_FolderSharing.Enable(False)
+ self._toggle_localFolderSharing()
+
+ # no printing available
+ self.ClientSidePrinting.SetValue(False)
+ self.ClientSidePrinting.Enable(False)
+ self.staticbox_Printing.Enable(False)
+
+ # no file MIME box available
+ self.UseFileMIMEbox.SetValue(False)
+ self.UseFileMIMEbox.Enable(False)
+ self.staticbox_FileMIMEbox.Enable(False)
+ self._toggle_useFileMIMEbox()
+
self._toggle_DisplayProperties()
self.disable_EditConnected_options()
+ self._last_session_type = _session_type
+
def OnCompressionSelected(self, event):
"""\
Gets called if another compression method gets selected.
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