[X2Go-Commits] pyhoca-gui.git - build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d (branch) updated: 0.2.0.4-30-gc64bf0c
X2Go dev team
git-admin at x2go.org
Tue Aug 27 13:22:33 CEST 2013
The branch, build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d has been updated
via c64bf0c058790384308e91503ee7a8e975ed0489 (commit)
from 723ccbb41ce920aa9434d613a21ddbb7a4c551d9 (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/profilemanager.py | 297 +++++++++++++++++++++++++++-------------
1 file changed, 199 insertions(+), 98 deletions(-)
The diff of changes is:
diff --git a/pyhoca/wxgui/profilemanager.py b/pyhoca/wxgui/profilemanager.py
index 38e10fa..3e61ad5 100644
--- a/pyhoca/wxgui/profilemanager.py
+++ b/pyhoca/wxgui/profilemanager.py
@@ -90,7 +90,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
'APPLICATION': _(u'Single Application'),
'XDMCP': _(u'XDMCP Query'),
'RDP': _(u'Windows Terminal Server (X2Go-proxied RDP)'),
- 'DirectRDP': 'Windows Terminal Server (Direct RDP)',
+ 'DirectRDP': _(u'Windows Terminal Server (Direct RDP)'),
'CUSTOM': _(u'Custom command'),
}
if self.action == 'EDIT_CONNECTED':
@@ -818,18 +818,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ProfileName.SetValue(self.profile_config['name'])
self.SetSessionWindowTitle.SetValue(self.profile_config['setsessiontitle'])
self.CustomSessionWindowTitle.SetValue(self.profile_config['sessiontitle'])
- if not self.profile_config['setsessiontitle']:
- self.CustomSessionWindowTitleLabel.Enable(False)
- self.CustomSessionWindowTitle.Enable(False)
- self.UseDefaultSessionWindowTitle.Enable(False)
- else:
- if self.profile_config['sessiontitle']:
- self.UseDefaultSessionWindowTitle.SetValue(False)
- else:
- self.UseDefaultSessionWindowTitle.SetValue(True)
- self.CustomSessionWindowTitleLabel.Enable(False)
- self.CustomSessionWindowTitle.Enable(False)
-
self.Host.SetValue(self.profile_config['host'])
self.UserName.SetValue(self.profile_config['user'])
self.SSHPort.SetValue(self.profile_config['sshport'])
@@ -872,7 +860,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.UseSSHProxy.SetValue(_ssh_proxy)
self.SSHProxySameUser.SetValue(self.profile_config['sshproxysameuser'])
self.SSHProxySamePassword.SetValue(self.profile_config['sshproxysamepass'])
- self.ToggleSSHProxy()
+ self._toggle_SSHProxy()
self.AutoStartSession.SetValue(self.profile_config['autostart'])
self.AutoLoginSessionProfile.SetValue(self.profile_config['autologin'])
@@ -948,59 +936,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ImageQuality.SetValue(9)
self.ImageQuality.Enable(False)
- if _command == 'RDP':
- if self.profile_config['directrdp']:
- self.UseSSHProxy.SetValue(False)
- self.ToggleSSHProxy()
- self.enable_DirectRDP()
- self.SSHPort.SetValue(self.profile_config['rdpport'])
- self.RDPOptions.SetValue(self.profile_config['directrdpsettings'])
- self.RDPServerLabel.Enable(True)
- self.RDPServer.Enable(False)
- self.RDPOptionsLabel.Enable(True)
- self.RDPOptions.Enable(True)
- self.UsePublishedApplications.SetValue(False)
- self.UsePublishedApplications.Enable(False)
- self.RootlessSession.SetValue(False)
- self.RootlessSession.Enable(False)
- else:
- self.disable_DirectRDP()
- self.RDPServerLabel.Enable(True)
- self.RDPServer.Enable(True)
- self.RDPOptionsLabel.Enable(True)
- self.RDPOptions.Enable(True)
- self.UsePublishedApplications.SetValue(False)
- self.UsePublishedApplications.Enable(False)
- self.RootlessSession.SetValue(False)
- self.RootlessSession.Enable(False)
- else:
- self.disable_DirectRDP()
- self.RDPServerLabel.Enable(False)
- self.RDPServer.Enable(False)
- self.RDPOptionsLabel.Enable(False)
- self.RDPOptions.Enable(False)
-
- self.XDMCPServer.SetValue(self.profile_config['xdmcpserver'])
-
- self.DisplayTypeFullscreen.SetValue(self.profile_config['fullscreen'] and not self.profile_config['maxdim'])
- self.DisplayTypeMaximize.SetValue(self.profile_config['maxdim'])
- self.DisplayTypeCustom.SetValue(not (self.profile_config['fullscreen'] or self.profile_config['maxdim']))
- self.ScreenWidth.SetValue(self.profile_config['width'])
- self.ScreenHeight.SetValue(self.profile_config['height'])
- if self.profile_config['fullscreen']:
- self.ScreenWidth.Enable(False)
- self.ScreenHeight.Enable(False)
- else:
- self.ScreenWidth.Enable(True)
- self.ScreenHeight.Enable(True)
-
- self.SetDisplayDPI.SetValue(self.profile_config['setdpi'])
- self.DisplayDPI.SetValue(self.profile_config['dpi'])
- if not self.profile_config['setdpi']:
- self.DisplayDPI.Enable(False)
- else:
- self.DisplayDPI.Enable(True)
-
if self.profile_config['usekbd']:
self.DontSetKeyboard.SetValue(False)
if self.profile_config['type'] == 'auto':
@@ -1038,12 +973,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
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['soundsystem'] == 'pulse':
- self.PulseAudio.SetValue(True)
- elif self.profile_config['soundsystem'] == 'arts':
- self.Arts.SetValue(True)
- elif self.profile_config['soundsystem'] == 'esd':
- self.Esd.SetValue(True)
if self.profile_config['sound']:
self.PulseAudio.Enable(True)
self.Esd.Enable(True)
@@ -1063,6 +992,60 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ClientSidePrinting.SetValue(self.profile_config['print'])
+ if _command == 'RDP':
+ if self.profile_config['directrdp']:
+ self.UseSSHProxy.SetValue(False)
+ self._toggle_SSHProxy()
+ self.enable_DirectRDP()
+ self._toggle_SetKeyboard()
+ self.PulseAudio.SetValue(True)
+ self._toggle_DefaultSoundPort()
+ self.SSHPort.SetValue(self.profile_config['rdpport'])
+ self.RDPOptions.SetValue(self.profile_config['directrdpsettings'])
+ self.RDPServerLabel.Enable(True)
+ self.RDPServer.Enable(False)
+ self.RDPOptionsLabel.Enable(True)
+ self.RDPOptions.Enable(True)
+ self.UsePublishedApplications.SetValue(False)
+ self.UsePublishedApplications.Enable(False)
+ self.RootlessSession.SetValue(False)
+ self.RootlessSession.Enable(False)
+ else:
+ self.disable_DirectRDP()
+ self._toggle_SetKeyboard()
+ self.RDPServerLabel.Enable(True)
+ self.RDPServer.Enable(True)
+ self.RDPOptionsLabel.Enable(True)
+ self.RDPOptions.Enable(True)
+ self.UsePublishedApplications.SetValue(False)
+ self.UsePublishedApplications.Enable(False)
+ self.RootlessSession.SetValue(False)
+ self.RootlessSession.Enable(False)
+ else:
+ self.disable_DirectRDP()
+ self._toggle_SetKeyboard()
+ self.RDPServerLabel.Enable(False)
+ self.RDPServer.Enable(False)
+ self.RDPOptionsLabel.Enable(False)
+ self.RDPOptions.Enable(False)
+
+ self.XDMCPServer.SetValue(self.profile_config['xdmcpserver'])
+
+ self.DisplayTypeFullscreen.SetValue(self.profile_config['fullscreen'] and not self.profile_config['maxdim'])
+ self.DisplayTypeMaximize.SetValue(self.profile_config['maxdim'])
+ self.DisplayTypeCustom.SetValue(not (self.profile_config['fullscreen'] or self.profile_config['maxdim']))
+ self.ScreenWidth.SetValue(self.profile_config['width'])
+ self.ScreenHeight.SetValue(self.profile_config['height'])
+
+ self._toggle_DisplayProperties()
+
+ self.SetDisplayDPI.SetValue(self.profile_config['setdpi'])
+ self.DisplayDPI.SetValue(self.profile_config['dpi'])
+ if not self.profile_config['setdpi']:
+ self.DisplayDPI.Enable(False)
+ else:
+ self.DisplayDPI.Enable(True)
+
self.UseLocalFolderSharing.SetValue(self.profile_config['useexports'])
self._toggle_localFolderSharing()
self.SharedFoldersList.DeleteAllItems()
@@ -1123,6 +1106,65 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.disable_EditConnected_options()
+ def _toggle_DisplayProperties(self):
+ """\
+ Toggle display properties, depend on activation/deactivation of rootless session mode.
+
+ @param event: event
+ @type event: C{obj}
+
+ """
+ if not self.RootlessSession.GetValue():
+ self.DisplayTypeFullscreen.Enable(True)
+ self.DisplayTypeMaximize.Enable(True)
+ self.DisplayTypeCustom.Enable(True)
+ if self.DisplayTypeFullscreen.GetValue() or self.DisplayTypeMaximize.GetValue():
+ self.ScreenWidth.Enable(False)
+ self.ScreenHeightLabel.Enable(False)
+ self.ScreenHeight.Enable(False)
+ else:
+ self.ScreenWidth.Enable(True)
+ self.ScreenHeightLabel.Enable(True)
+ self.ScreenHeight.Enable(True)
+
+ self.SetSessionWindowTitle.Enable(True)
+ self.SetSessionWindowTitle.SetValue(self.profile_config_bak['setsessiontitle'])
+ self.CustomSessionWindowTitle.SetValue(self.profile_config_bak['sessiontitle'])
+
+ if not self.profile_config['setsessiontitle']:
+ self.CustomSessionWindowTitleLabel.Enable(False)
+ self.CustomSessionWindowTitle.Enable(False)
+ self.UseDefaultSessionWindowTitle.Enable(False)
+ else:
+ if self.profile_config['sessiontitle']:
+ self.UseDefaultSessionWindowTitle.SetValue(False)
+ else:
+ self.UseDefaultSessionWindowTitle.SetValue(True)
+ self.CustomSessionWindowTitleLabel.Enable(False)
+ self.CustomSessionWindowTitle.Enable(False)
+
+ else:
+ self.DisplayTypeFullscreen.Enable(False)
+ self.DisplayTypeMaximize.Enable(False)
+ self.DisplayTypeCustom.Enable(False)
+ self.ScreenWidth.Enable(False)
+ self.ScreenHeightLabel.Enable(False)
+ self.ScreenHeight.Enable(False)
+
+ self.SetSessionWindowTitle.Enable(False)
+ self.SetSessionWindowTitle.SetValue(False)
+ self.CustomSessionWindowTitleLabel.Enable(False)
+ self.CustomSessionWindowTitle.Enable(False)
+ self.UseDefaultSessionWindowTitle.Enable(False)
+ self.profile_config_bak['setsessiontitle'] = self.SetSessionWindowTitle.GetValue()
+ if self.UseDefaultSessionWindowTitle.GetValue():
+ self.profile_config_bak['sessiontitle'] = ''
+ else:
+ self.profile_config_bak['sessiontitle'] = self.CustomSessionWindowTitle.GetValue()
+ self.SetSessionWindowTitle.SetValue(False)
+ self.UseDefaultSessionWindowTitle.SetValue(False)
+ self.CustomSessionWindowTitle.SetValue("")
+
def disable_EditConnected_options(self):
"""\
If C{action} in the constructor has been set to C{EDIT_CONNECTED} this
@@ -1254,12 +1296,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.profile_config['sound'] = self.EnableSound.GetValue()
self.profile_config['defsndport'] = self.DefaultSoundPort.GetValue()
self.profile_config['sndport'] = self.SoundPort.GetValue()
- if self.PulseAudio.GetValue():
- self.profile_config['soundsystem'] = 'pulse'
- elif self.Arts.GetValue():
- self.profile_config['soundsystem'] = 'arts'
- elif self.Esd.GetValue():
- self.profile_config['soundsystem'] = 'esd'
+
+ self.profile_config['soundsystem'] = self._get_SoundSystem()
self.profile_config['print'] = self.ClientSidePrinting.GetValue()
@@ -1302,6 +1340,25 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
_mimebox_action = 'OPEN'
self.profile_config['mimeboxaction'] = _mimebox_action
+ def _get_SoundSystem(self):
+ if self.PulseAudio.GetValue():
+ return 'pulse'
+ elif self.Arts.GetValue():
+ return 'arts'
+ elif self.Esd.GetValue():
+ return 'esd'
+
+ def _set_SoundSystem(self, sound_system='pulse'):
+ self.PulseAudio.SetValue(False)
+ self.Arts.SetValue(False)
+ self.Esd.SetValue(False)
+ if self.profile_config['soundsystem'] == 'pulse':
+ self.PulseAudio.SetValue(True)
+ elif self.profile_config['soundsystem'] == 'arts':
+ self.Arts.SetValue(True)
+ elif self.profile_config['soundsystem'] == 'esd':
+ self.Esd.SetValue(True)
+
def OnIconChange(self, event):
"""\
Gets called on profile icon change requests.
@@ -1388,7 +1445,15 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.Compression.Enable(False)
self.ImageQualityLabel.Enable(False)
self.ImageQuality.Enable(False)
- self.tab_Settings.Enable(False)
+ self.staticbox_Keyboard.Enable(False)
+ self.DontSetKeyboard.Enable(False)
+ self.AutoSetKeyboard.Enable(False)
+ self.CustomSetKeyboard.Enable(False)
+ self.CustomSetKeyboard.SetValue(True)
+ self.DefaultSoundPort.Enable(False)
+ self.SoundPortLabel.Enable(False)
+ self.SoundPort.Enable(False)
+ self.Esd.Enable(False)
self.tab_SharedFilesAndFolders.Enable(True)
self.RDPServer.Enable(False)
self.RDPServer.SetValue(self.Host.GetValue())
@@ -1430,7 +1495,15 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.Compression.Enable(True)
self.ImageQualityLabel.Enable(True)
self.ImageQuality.Enable(True)
- self.tab_Settings.Enable(True)
+ self.staticbox_Keyboard.Enable(True)
+ self.DontSetKeyboard.Enable(True)
+ self.AutoSetKeyboard.Enable(True)
+ self.CustomSetKeyboard.Enable(True)
+ self.EnableSound.Enable(True)
+ if self.EnableSound.GetValue():
+ self.DefaultSoundPort.Enable(True)
+ self.DefaultSoundPort.SetValue(True)
+ self.Esd.Enable(True)
self.tab_SharedFilesAndFolders.Enable(True)
self.RDPServer.SetValue(self.profile_config_bak['rdpserver'])
self.RDPOptions.SetValue(self.profile_config_bak['rdpoptions'])
@@ -1496,7 +1569,14 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.profile_config_bak['sshport'] = self.SSHPort.GetValue()
self.profile_config_bak['rdpserver'] = self.RDPServer.GetValue()
self.profile_config_bak['rdpoptions'] = self.RDPOptions.GetValue()
+ self.profile_config_bak['soundsystem'] = self._get_SoundSystem()
+ self.PulseAudio.SetValue(True)
+ self.Arts.SetValue(False)
+ self.Esd.SetValue(False)
+ self.DefaultSoundPort.SetValue(True)
+ self._toggle_DefaultSoundPort()
self.enable_DirectRDP()
+ self._toggle_SetKeyboard()
self.RDPServerLabel.Enable(True)
self.RDPServer.Enable(False)
self.RDPOptionsLabel.Enable(True)
@@ -1509,6 +1589,9 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.profile_config_bak['rdpport'] = self.SSHPort.GetValue()
self.profile_config_bak['directrdpsettings'] = self.RDPOptions.GetValue()
self.disable_DirectRDP()
+ self._toggle_SetKeyboard()
+ self._set_SoundSystem(self.profile_config_bak['soundsystem'])
+ self._toggle_DefaultSoundPort()
self.RDPServerLabel.Enable(True)
self.RDPServer.Enable(True)
self.RDPOptionsLabel.Enable(True)
@@ -1524,6 +1607,9 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.profile_config_bak['rdpserver'] = self.RDPServer.GetValue()
self.profile_config_bak['rdpoptions'] = self.RDPOptions.GetValue()
self.disable_DirectRDP()
+ self._toggle_SetKeyboard()
+ self._set_SoundSystem(self.profile_config_bak['soundsystem'])
+ self._toggle_DefaultSoundPort()
self.RDPServerLabel.Enable(False)
self.RDPServer.Enable(False)
self.RDPOptionsLabel.Enable(False)
@@ -1547,6 +1633,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.AutoStartSession.SetValue(self._last_auto_start_value)
self._last_auto_start_value = None
+ self._toggle_DisplayProperties()
self.disable_EditConnected_options()
def OnCompressionSelected(self, event):
@@ -1653,7 +1740,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
if self.UseSSHProxy.GetValue():
self.profile_config_bak['host'] = self.Host.GetValue()
self.profile_config_bak['sshport'] = self.SSHPort.GetValue()
- self.ToggleSSHProxy()
+ self._toggle_SSHProxy()
def OnSSHProxySameUser(self, event):
"""\
@@ -1665,7 +1752,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
"""
if self.SSHProxySameUser.GetValue():
self.profile_config_bak['sshproxyuser'] = self.SSHProxyUser.GetValue()
- self.ToggleSSHProxy()
+ self._toggle_SSHProxy()
def OnSSHProxySamePassword(self, event):
"""\
@@ -1677,9 +1764,9 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
"""
if self.SSHProxySamePassword.GetValue():
self.profile_config_bak['sshproxykeyfile'] = self.SSHProxyKeyFile.GetValue()
- self.ToggleSSHProxy()
+ self._toggle_SSHProxy()
- def ToggleSSHProxy(self):
+ def _toggle_SSHProxy(self):
"""\
Gets called if the use-ssh-proxy checkbox gets marked.
@@ -1777,6 +1864,16 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
@type event: C{obj}
"""
+ self._toggle_SetKeyboard()
+
+ def _toggle_SetKeyboard(self):
+ """\
+ Toggle keyboard settings, depends on activation/deactivation of custom keyboard settings.
+
+ @param event: event
+ @type event: C{obj}
+
+ """
if self.CustomSetKeyboard.GetValue():
self.KeyboardModelLabel.Enable(True)
self.KeyboardLayoutLabel.Enable(True)
@@ -1800,13 +1897,15 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
@type event: C{obj}
"""
+ _session_type = [ i for i in self.sessionChoices.keys() if self.sessionChoices[i] == self.SessionType.GetValue() ][0]
if self.EnableSound.GetValue():
self.PulseAudio.Enable(True)
- self.Esd.Enable(True)
- self.DefaultSoundPort.Enable(True)
- if self.DefaultSoundPort.GetValue() is False:
- self.SoundPortLabel.Enable(True)
- self.SoundPort.Enable(True)
+ if _session_type != 'DirectRDP':
+ self.Esd.Enable(True)
+ self.DefaultSoundPort.Enable(True)
+ if self.DefaultSoundPort.GetValue() is False:
+ self.SoundPortLabel.Enable(True)
+ self.SoundPort.Enable(True)
else:
self.PulseAudio.Enable(False)
self.Esd.Enable(False)
@@ -1814,7 +1913,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.SoundPortLabel.Enable(False)
self.SoundPort.Enable(False)
-
def OnSetDisplayFullscreen(self, event):
"""\
Gets called whenever the fullscreen-display radion button gets checked.
@@ -1897,6 +1995,16 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
@type event: C{obj}
"""
+ self._toggle_DefaultSoundPort()
+
+ def _toggle_DefaultSoundPort(self):
+ """\
+ Gets called indirectly on activation/deactivation of the default-sound-port checkbox.
+
+ @param event: event
+ @type event: C{obj}
+
+ """
if not self.DefaultSoundPort.GetValue():
self.SoundPortLabel.Enable(True)
self.SoundPort.Enable(True)
@@ -1934,13 +2042,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ServerEncoding.Enable(False)
def OnToggleLocalFolderSharing(self, event):
- """\
- Gets called on activation/deactivation of client-side local folder sharing.
-
- @param event: event
- @type event: C{obj}
-
- """
self._toggle_localFolderSharing()
def OnSelectSharedFolderPath(self, event):
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