[X2Go-Commits] pyhoca-gui.git - build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d (branch) updated: 0.2.0.4-10-g9a3d8cd
X2Go dev team
git-admin at x2go.org
Tue Aug 27 13:22:31 CEST 2013
The branch, build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d has been updated
via 9a3d8cdb423e1a3ebe6ced33d80c52bc1c04b51a (commit)
from 46be5e3b5b1f56c6c3084bccc5e36e6eb81b574b (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 | 1 +
pyhoca/wxgui/profilemanager.py | 140 +++++++++++++++++++++++++++++-----------
2 files changed, 105 insertions(+), 36 deletions(-)
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index e8f019e..67d53e4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ pyhoca-gui (0.2.0.5-0~x2go1) UNRELEASED; urgency=low
- Make session icon handling more robust, be more compatible with X2Go Client
about the session icon name. Rewrite mistakes pyhoca-gui <= 0.2.0.4 did
on the icon attribute in the session profile config.
+ - Make DirectRDP sessions configurable through PyHoca-GUI profile manager.
* /debian/control:
+ Add Oleksandr Shneyder to Uploaders.
diff --git a/pyhoca/wxgui/profilemanager.py b/pyhoca/wxgui/profilemanager.py
index 2349547..cc3dc26 100644
--- a/pyhoca/wxgui/profilemanager.py
+++ b/pyhoca/wxgui/profilemanager.py
@@ -88,8 +88,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
'PUBLISHEDAPPLICATIONS': _(u'Published Applications'),
'APPLICATION': _(u'Single Application'),
'XDMCP': _(u'XDMCP Query'),
- 'RDP': _(u'Windows Terminal Server (RDP-proxy)'),
- #'DirectRDP': 'Windows Terminal Server (RDP-direct)',
+ 'RDP': _(u'Windows Terminal Server (X2Go-proxied RDP)'),
+ 'DirectRDP': 'Windows Terminal Server (direct RDP)',
'CUSTOM': _(u'Custom command'),
}
self.applicationChoices = {
@@ -98,6 +98,10 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
'OFFICE': _(u'Office'),
'TERMINAL': _(u'Terminal'),
}
+ self.rdpclientChoices = {
+ 'rdesktop': u'rdesktop',
+ 'xfreerdp': u'xfreerdp',
+ }
self.linkChoices = {
0: 'MODEM',
1: 'ISDN',
@@ -114,6 +118,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
'OPENWITH': _(u'Open application chooser dialog'),
'SAVEAS': _(u'Save incoming file as ...'),
}
+
+
self._compressions = defaults.pack_methods_nx3_noqual
self.compressionChoices = {}
for _comp in self._compressions:
@@ -149,6 +155,9 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
# we create a backup dict of our profile_config immediately (for being able to reset erroneously made changes)
self.profile_config_bak = copy.deepcopy(self.profile_config)
+ self._last_rdpclient = self.profile_config['rdpclient']
+ self._last_application = self.applicationChoices['TERMINAL']
+
self.X2goTabs = wx.Notebook(self, -1, style=0)
self.tab_Profile = wx.Panel(self.X2goTabs, -1)
self.tab_Session = wx.Panel(self.X2goTabs, -1)
@@ -338,6 +347,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.Bind(wx.EVT_COMBOBOX, self.OnSessionTypeSelected, self.SessionType)
self.Bind(wx.EVT_CHECKBOX, self.OnUseDefaultSessionWindowTitle, self.UseDefaultSessionWindowTitle)
self.Bind(wx.EVT_CHECKBOX, self.OnSetSessionWindowTitle, self.SetSessionWindowTitle)
+ self.Bind(wx.EVT_TEXT, self.OnHostKeyPressed, self.Host)
self.Bind(wx.EVT_BUTTON, self.OnSSHKeyFileBrowse, self.SSHKeyFileBrowseButton)
self.Bind(wx.EVT_BUTTON, self.OnSSHProxyKeyFileBrowse, self.SSHProxyKeyFileBrowseButton)
self.Bind(wx.EVT_CHECKBOX, self.OnUseSSHProxy, self.UseSSHProxy)
@@ -896,7 +906,11 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.RootlessSession.Enable(False)
self.UsePublishedApplications.SetValue(_published)
- if _command in self.sessionChoices.keys():
+ self.Application.SetItems(self.applicationChoices.values())
+ if _command == 'RDP' and self.profile_config['directrdp']:
+ self.SessionType.SetValue(self.sessionChoices['DirectRDP'])
+ self.Command.SetValue('')
+ elif _command in self.sessionChoices.keys():
self.SessionType.SetValue(self.sessionChoices[_command])
self.Application.SetValue('')
self.Command.SetValue('')
@@ -907,6 +921,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ApplicationLabel.Enable(True)
self.Application.Enable(True)
self.Application.SetValue(self.applicationChoices[_command])
+ self._last_application = self.applicationChoices[_command]
self.Command.SetValue('')
self.UsePublishedApplications.SetValue(False)
self.UsePublishedApplications.Enable(False)
@@ -934,29 +949,35 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.UsePublishedApplications.Enable(False)
self.RootlessSession.Enable(False)
- if _command in ('RDP', '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(True)
- self.RootlessSession.Enable(False)
+ if _command == 'RDP':
+ if self.profile_config['directrdp']:
+ self.enable_DirectRDP()
+ 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)
- if _command == 'DirectRDP':
- self.enable_DirectRDP()
- else:
- self.disable_DirectRDP()
-
- self.RDPServer.SetValue(self.profile_config['rdpserver'])
- self.RDPOptions.SetValue(self.profile_config['rdpoptions'])
-
self.XDMCPServer.SetValue(self.profile_config['xdmcpserver'])
if 0 < self.profile_config['speed'] <= 5:
@@ -1156,6 +1177,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
"""
self.profile_config['name'] = self.ProfileName.GetValue()
self.profile_config['setsessiontitle'] = self.SetSessionWindowTitle.GetValue()
+ _session_type = [ s for s in self.sessionChoices.keys() if self.sessionChoices[s] == self.SessionType.GetValue() ][0]
if self.UseDefaultSessionWindowTitle.GetValue():
self.profile_config['sessiontitle'] = ''
else:
@@ -1176,7 +1198,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
else:
self.profile_config['usesshproxy'] = False
self.profile_config['host'] = self.Host.GetValue()
- self.profile_config['sshport'] = self.SSHPort.GetValue()
+ if _session_type != 'DirectRDP':
+ self.profile_config['sshport'] = self.SSHPort.GetValue()
self.profile_config['sshproxyhost'] = self.SSHProxyHost.GetValue()
self.profile_config['sshproxyuser'] = self.SSHProxyUser.GetValue()
self.profile_config['sshproxytunnel'] = '%s:%s:%s:%s' % (self.SSHProxyTunnelFromHost.GetValue(),
@@ -1187,7 +1210,7 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.profile_config['sshproxykeyfile'] = self.SSHProxyKeyFile.GetValue()
self.profile_config['applications'] = self.applicationChoices.keys()
- _session_type = [ s for s in self.sessionChoices.keys() if self.sessionChoices[s] == self.SessionType.GetValue() ][0]
+ self.profile_config['directrdp'] = False
if _session_type == 'APPLICATION':
_command = [ a for a in self.applicationChoices.keys() if self.applicationChoices[a] == self.Application.GetValue() ][0]
self.profile_config['rootless'] = True
@@ -1197,6 +1220,15 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
elif _session_type == 'RDP':
_command = _session_type
self.profile_config['rootless'] = False
+ self.profile_config['rdpserver'] = self.RDPServer.GetValue()
+ self.profile_config['rdpoptions'] = self.RDPOptions.GetValue()
+ elif _session_type == 'DirectRDP':
+ _command = 'RDP'
+ self.profile_config['rootless'] = False
+ self.profile_config['directrdp'] = True
+ self.profile_config['directrdpsettings'] = self.RDPOptions.GetValue()
+ self.profile_config['rdpport'] = self.SSHPort.GetValue()
+ self.profile_config['rdpclient'] = [ rc for rc in self.rdpclientChoices.keys() if self.rdpclientChoices[rc] == self.Application.GetValue() ][0]
elif _session_type == 'PUBLISHEDAPPLICATIONS':
_command = ""
self.profile_config['rootless'] = True
@@ -1204,8 +1236,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
_command = _session_type
self.profile_config['rootless'] = False
self.profile_config['command'] = _command
- self.profile_config['rdpserver'] = self.RDPServer.GetValue()
- self.profile_config['rdpoptions'] = self.RDPOptions.GetValue()
self.profile_config['xdmcpserver'] = self.XDMCPServer.GetValue()
_link_idx = self.LinkSpeed.GetValue()
@@ -1347,12 +1377,14 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
@type event: C{obj}
"""
- self.HostLabel.Enable(False)
- self.Host.Enable(False)
- self.SSHPortLabel.Enable(False)
- self.SSHPort.Enable(False)
+ self.HostLabel.Enable(True)
+ self.Host.Enable(True)
+ self.SSHPortLabel.Enable(True)
+ self.SSHPort.Enable(True)
+ self.SSHPort.SetValue(self.profile_config_bak['rdpport'])
self.SSHKeyFileLabel.Enable(False)
self.SSHKeyFile.Enable(False)
+ self.UseSSHProxy.Enable(False)
self.staticbox_LinkSpeed.Enable(False)
self.LinkSpeed.Enable(False)
self.ModemLabel.Enable(False)
@@ -1366,7 +1398,15 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ImageQualityLabel.Enable(False)
self.ImageQuality.Enable(False)
self.tab_Settings.Enable(False)
- self.tab_SharedFilesAndFolders.Enable(False)
+ self.tab_SharedFilesAndFolders.Enable(True)
+ self.RDPServer.Enable(False)
+ self.RDPServer.SetValue(self.Host.GetValue())
+ self.RDPOptions.SetValue(self.profile_config_bak['directrdpsettings'])
+ if self.Application.GetValue() in self.applicationChoices.keys():
+ self._last_application = self.Application.GetValue()
+ self.Application.SetItems(self.rdpclientChoices.values())
+ self.Application.SetValue(self._last_rdpclient)
+ self.Application.Enable(True)
def disable_DirectRDP(self):
"""\
@@ -1381,8 +1421,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.Host.Enable(True)
self.SSHPortLabel.Enable(True)
self.SSHPort.Enable(True)
+ self.SSHPort.SetValue(self.profile_config_bak['sshport'])
+ else:
+ self.SSHPort.SetValue(self.SSHProxyTunnelFromPort.GetValue())
self.SSHKeyFileLabel.Enable(True)
self.SSHKeyFile.Enable(True)
+ self.UseSSHProxy.Enable(True)
self.staticbox_LinkSpeed.Enable(True)
self.LinkSpeed.Enable(True)
self.ModemLabel.Enable(True)
@@ -1397,6 +1441,12 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ImageQuality.Enable(True)
self.tab_Settings.Enable(True)
self.tab_SharedFilesAndFolders.Enable(True)
+ self.RDPServer.SetValue(self.profile_config_bak['rdpserver'])
+ self.RDPOptions.SetValue(self.profile_config_bak['rdpoptions'])
+ if self.Application.GetValue() in self.rdpclientChoices.keys():
+ self._last_rdpclient = self.Application.GetValue()
+ self.Application.SetItems(self.applicationChoices.values())
+ self.Application.SetValue(self._last_application)
def OnSessionTypeSelected(self, event):
"""\
@@ -1451,26 +1501,33 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.XDMCPServerLabel.Enable(False)
self.XDMCPServer.Enable(False)
- if _session_type in ('RDP', 'DirectRDP', ):
+ if _session_type == 'DirectRDP':
+ self.enable_DirectRDP()
+ 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)
+ elif _session_type == 'RDP':
+ 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(True)
+ 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)
- if _session_type == 'DirectRDP':
- self.enable_DirectRDP()
- else:
- self.disable_DirectRDP()
-
if _session_type == 'PUBLISHEDAPPLICATIONS':
self._last_pubapp_value = self.UsePublishedApplications.GetValue()
self._last_auto_start_value = self.AutoStartSession.GetValue()
@@ -1505,6 +1562,17 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
else:
self.ImageQuality.Enable(False)
+ def OnHostKeyPressed(self, event):
+ """\
+ Gets called whenever something gets typed in the host name field.
+
+ @param event: event
+ @type event: C{obj}
+
+ """
+ if [ k for k in self.sessionChoices.keys() if self.sessionChoices[k] == self.SessionType.GetValue() ][0] == 'DirectRDP':
+ self.RDPServer.SetValue(self.Host.GetValue())
+
def OnSSHKeyFileBrowse(self, event):
"""\
Gets called if the user requests to browse for an SSH key file (for X2Go client/server connection).
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