[X2Go-Commits] pyhoca-gui.git - twofactorauth (branch) updated: f8bf3631945ce3d1d675ff4434d77f7cfc6c5659
X2Go dev team
git-admin at x2go.org
Sat Sep 14 15:54:30 CEST 2013
The branch, twofactorauth has been updated
via f8bf3631945ce3d1d675ff4434d77f7cfc6c5659 (commit)
from 2e084470dedc09b2d165e46d6693d400b9ec795f (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/menus_taskbar.py | 11 +--
pyhoca/wxgui/profilemanager.py | 144 ++++++++++++++++++++++++++++++----------
2 files changed, 117 insertions(+), 38 deletions(-)
The diff of changes is:
diff --git a/pyhoca/wxgui/menus_taskbar.py b/pyhoca/wxgui/menus_taskbar.py
index ac1860f..f7aae23 100644
--- a/pyhoca/wxgui/menus_taskbar.py
+++ b/pyhoca/wxgui/menus_taskbar.py
@@ -168,6 +168,8 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
ID_SHARELOCALFOLDER = wx.NewId()
ID_DISCONNECT = wx.NewId()
+ current_profile_config = self._PyHocaGUI.get_profile_config(profile_name)
+
# preparing profile_name information for the main PyHocaGUI instance
self._PyHocaGUI._eventid_profilenames_map[ID_SESSIONSTART] = \
self._PyHocaGUI._eventid_profilenames_map[ID_CLEANSESSIONS] = \
@@ -203,13 +205,14 @@ class PyHocaGUI_Menu_TaskbarSessionProfile(wx.Menu):
self.Append(id=ID_CLEANSESSIONS, text="&Clean all sessions")
self.AppendSeparator()
self.Append(id=ID_EDITPROFILEWHILECONNECTED, text="Customize &profile")
- _share_folder = self.Append(id=ID_SHARELOCALFOLDER, text="Share local &folder")
+ if current_profile_config['useexports']:
+ _share_folder = self.Append(id=ID_SHARELOCALFOLDER, text="Share local &folder")
+ if not self._PyHocaGUI._X2goClient__client_associated_sessions_of_profile_name(profile_name):
+ _share_folder.Enable(False)
+
self.AppendSeparator()
self.Append(id=ID_DISCONNECT, text="&Disconnect from Server")
- if not self._PyHocaGUI._X2goClient__client_associated_sessions_of_profile_name(profile_name):
- _share_folder.Enable(False)
-
self._PyHocaGUI.current_profile_name = profile_name
self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnSessionStart, id=ID_SESSIONSTART)
self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnCleanSessions, id=ID_CLEANSESSIONS)
diff --git a/pyhoca/wxgui/profilemanager.py b/pyhoca/wxgui/profilemanager.py
index 74fc795..167dc45 100644
--- a/pyhoca/wxgui/profilemanager.py
+++ b/pyhoca/wxgui/profilemanager.py
@@ -23,6 +23,7 @@ import os
import copy
import x2go.log as log
+import x2go.utils as utils
from x2go import X2GOCLIENT_OS
from x2go import defaults
@@ -31,6 +32,7 @@ import notify
import basepath
_icons_location = basepath.icons_basepath
+_known_encodings = utils.known_encodings()
class PyHocaGUI_ProfileManager(wx.Dialog):
"""\
@@ -205,25 +207,32 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.PulseAudio = wx.RadioButton(self.tab_Settings, -1, "Pulse Audio", style=wx.RB_GROUP)
self.Arts = wx.RadioButton(self.tab_Settings, -1, "Arts")
self.esd = wx.RadioButton(self.tab_Settings, -1, "esd")
- self.SoundTunnel = wx.CheckBox(self.tab_Settings, -1, "Use SSH port forwarding to tunnel sound system\nconnections through firewall")
self.DefaultSoundPort = wx.CheckBox(self.tab_Settings, -1, "Use default sound port")
self.SoundPortLabel = wx.StaticText(self.tab_Settings, -1, "Custom sound port:")
self.SoundPort = wx.SpinCtrl(self.tab_Settings, -1, "4713", min=23, max=64889)
self.ClientSidePrinting = wx.CheckBox(self.tab_Settings, -1, "Client Side printing")
+ self.UseLocalFolderSharing = wx.CheckBox(self.tab_SharedFolders, -1, "Use local folder sharing")
self.SharedFolderPathLabel = wx.StaticText(self.tab_SharedFolders, -1, "Path:")
- self.SharedFolderPath = wx.TextCtrl(self.tab_SharedFolders, -1, "")
+ self.SharedFolderPath = wx.TextCtrl(self.tab_SharedFolders, -1, "", style=wx.TE_PROCESS_ENTER)
self.SharedFolderPathBrowseButton = wx.BitmapButton(self.tab_SharedFolders, -1, wx.Bitmap('%s/PyHoca/16x16/system-search.png' % _icons_location, wx.BITMAP_TYPE_ANY))
self.AddSharedFolderPathButton = wx.Button(self.tab_SharedFolders, -1, "Add")
self.SharedFoldersList = wx.ListCtrl(self.tab_SharedFolders, -1, style=wx.LC_LIST|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL|wx.LC_VRULES)
self.DeleteSharedFolderPathButton = wx.Button(self.tab_SharedFolders, -1, "Delete")
- self.SSHFSPortForwarding = wx.CheckBox(self.tab_SharedFolders, -1, "Use ssh port forwarding to tunnel file system connections through firewalls")
+
+ self.UseEncodingConverter = wx.CheckBox(self.tab_SharedFolders, -1, "Convert between client and server encodings")
+ self.ClientEncodingLabel = wx.StaticText(self.tab_SharedFolders, -1, "Client encoding:")
+ self.ClientEncoding = wx.ComboBox(self.tab_SharedFolders, -1, choices=_known_encodings, style=wx.CB_DROPDOWN|wx.CB_READONLY)
+ self.ServerEncodingLabel = wx.StaticText(self.tab_SharedFolders, -1, "Server encoding:")
+ self.ServerEncoding = wx.ComboBox(self.tab_SharedFolders, -1, choices=_known_encodings, style=wx.CB_DROPDOWN|wx.CB_READONLY)
+
if self.action == 'ADD':
self.OKButton = wx.Button(self, -1, "Add")
self.DefaultButton = wx.Button(self, -1, 'Defaults')
else:
self.OKButton = wx.Button(self, -1, "Save")
self.DefaultButton = wx.Button(self, -1, 'Reset')
+ self.OKButton.SetDefault()
self.CancelButton = wx.Button(self, -1, "Cancel")
self.__set_properties()
@@ -244,10 +253,15 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.Bind(wx.EVT_BUTTON, self.OnSelectSharedFolderPath, self.SharedFolderPathBrowseButton)
self.Bind(wx.EVT_BUTTON, self.OnAddSharedFolderPath, self.AddSharedFolderPathButton)
self.Bind(wx.EVT_BUTTON, self.OnDeleteSharedFolderPath, self.DeleteSharedFolderPathButton)
+ self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSharedFolderListItemSelected, self.SharedFoldersList)
+ self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnSharedFolderListItemDeselected, self.SharedFoldersList)
+ self.Bind(wx.EVT_TEXT, self.OnSharedFolderPathKeyPressed, self.SharedFolderPath)
+ self.Bind(wx.EVT_TEXT_ENTER, self.OnAddSharedFolderPath, self.SharedFolderPath)
+ self.Bind(wx.EVT_CHECKBOX, self.OnToggleEncodingConverter, self.UseEncodingConverter)
+ self.Bind(wx.EVT_CHECKBOX, self.OnToggleLocalFolderSharing, self.UseLocalFolderSharing)
self.Bind(wx.EVT_BUTTON, self.OnOKButton, self.OKButton)
self.Bind(wx.EVT_BUTTON, self.OnCancel, self.CancelButton)
self.Bind(wx.EVT_BUTTON, self.OnDefault, self.DefaultButton)
-
self.SetSize(self.GetBestSize())
self.Show(True)
@@ -320,7 +334,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.EnableSound.SetValue(1)
self.PulseAudio.SetMinSize((120, _textfield_height))
self.PulseAudio.SetValue(1)
- self.SoundTunnel.SetValue(1)
self.Arts.SetMinSize((120, _textfield_height))
self.DefaultSoundPort.SetValue(1)
self.esd.SetMinSize((120, 21))
@@ -328,8 +341,10 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.ClientSidePrinting.SetValue(1)
self.SharedFolderPath.SetMinSize((220, _textfield_height))
self.SharedFolderPathBrowseButton.SetSize(self.SharedFolderPathBrowseButton.GetBestSize())
- self.SharedFoldersList.SetMinSize((303, 300))
- self.SSHFSPortForwarding.SetValue(1)
+ self.SharedFoldersList.SetMinSize((303, 240))
+ self.ClientEncoding.SetMinSize((140, _textfield_height))
+ self.ServerEncoding.SetMinSize((140, _textfield_height))
+
self.OKButton.SetMinSize((60, 30))
self.CancelButton.SetMinSize((60, 30))
self.DefaultButton.SetMinSize((60, 30))
@@ -427,11 +442,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
sizer_2_2_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2_2_1.Add(self.LinkSpeed, 0, 0, 0)
sizer_2_2_2 = wx.GridSizer(1,5,0,0)
- #sizer_2_2_2.AddGrowableCol(0)
- #sizer_2_2_2.AddGrowableCol(1)
- #sizer_2_2_2.AddGrowableCol(2)
- #sizer_2_2_2.AddGrowableCol(3)
- #sizer_2_2_2.AddGrowableCol(4)
sizer_2_2_2.Add(self.ModemLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0)
sizer_2_2_2.Add(self.ISDNLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0)
sizer_2_2_2.Add(self.ADSLLabel, 0, wx.ALIGN_CENTRE_HORIZONTAL, 0)
@@ -504,7 +514,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
sizer_3_3_2_1.Add(self.esd, 0, 0, 0)
sizer_3_3_2.Add(sizer_3_3_2_1, 0, 0, 0)
sizer_3_3_2_2 = wx.BoxSizer(wx.VERTICAL)
- sizer_3_3_2_2.Add(self.SoundTunnel, 0, 0, 0)
sizer_3_3_2_2.Add(self.DefaultSoundPort, 0, 0, 0)
sizer_3_3_2_2_1 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3_3_2_2_1.Add(self.SoundPortLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
@@ -527,23 +536,31 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
# FOLDERSHARING TAB
sizer_4 = wx.BoxSizer(wx.VERTICAL)
sizer_4_1 = wx.StaticBoxSizer(self.staticbox_FolderSharing, wx.VERTICAL)
- sizer_4_1_1 = wx.GridSizer(2, 2, 0, 0)
- sizer_4_1_1_1 = wx.BoxSizer(wx.HORIZONTAL)
- sizer_4_1_1_1.Add(self.SharedFolderPathLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
- sizer_4_1_1_1.Add(self.SharedFolderPath, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
- sizer_4_1_1_1.Add(self.SharedFolderPathBrowseButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
- sizer_4_1_1_2 = wx.BoxSizer(wx.HORIZONTAL)
- sizer_4_1_1_2.Add(self.AddSharedFolderPathButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
- sizer_4_1_1.Add(sizer_4_1_1_1, 0, wx.LEFT, 0, 0)
- sizer_4_1_1.Add(sizer_4_1_1_2, 0, wx.RIGHT, 0, 0)
+ sizer_4_1_1 = wx.BoxSizer(wx.HORIZONTAL)
+ sizer_4_1_1.Add(self.UseLocalFolderSharing, 0, 0, 0)
sizer_4_1_2 = wx.BoxSizer(wx.HORIZONTAL)
- sizer_4_1_2.Add(self.SharedFoldersList, 1, wx.EXPAND, 0)
+ sizer_4_1_2.Add(self.SharedFolderPathLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
+ sizer_4_1_2.Add(self.SharedFolderPath, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
+ sizer_4_1_2.Add(self.SharedFolderPathBrowseButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
+ sizer_4_1_2.Add(self.AddSharedFolderPathButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
+ sizer_4_1_2.Add(self.DeleteSharedFolderPathButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
sizer_4_1_3 = wx.BoxSizer(wx.HORIZONTAL)
- sizer_4_1_3.Add(self.DeleteSharedFolderPathButton, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
- sizer_4_1_3.Add(self.SSHFSPortForwarding, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
- sizer_4_1.Add(sizer_4_1_1, 0, 0, 0)
+ sizer_4_1_3.Add(self.SharedFoldersList, 1, wx.EXPAND, 0)
+ sizer_4_1_4 = wx.BoxSizer(wx.HORIZONTAL)
+ sizer_4_1_4.Add(self.UseEncodingConverter, 0, 0, 0)
+ sizer_4_1_5 = wx.BoxSizer(wx.HORIZONTAL)
+ sizer_4_1_5.Add(self.ClientEncodingLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
+ sizer_4_1_5.Add((8,0))
+ sizer_4_1_5.Add(self.ClientEncoding, 0, 0, 0)
+ sizer_4_1_5.Add((16,0))
+ sizer_4_1_5.Add(self.ServerEncodingLabel, 0, wx.ALIGN_CENTRE_VERTICAL, 0)
+ sizer_4_1_5.Add((8,0))
+ sizer_4_1_5.Add(self.ServerEncoding, 0, 0, 0)
+ sizer_4_1.Add(sizer_4_1_1, 0, wx.EXPAND, 0)
sizer_4_1.Add(sizer_4_1_2, 0, wx.EXPAND, 0)
sizer_4_1.Add(sizer_4_1_3, 0, wx.EXPAND, 0)
+ sizer_4_1.Add(sizer_4_1_4, 0, wx.EXPAND, 0)
+ sizer_4_1.Add(sizer_4_1_5, 0, wx.EXPAND, 0)
sizer_4.Add(sizer_4_1, 0, wx.EXPAND, 0)
self.tab_SharedFolders.SetSizer(sizer_4)
@@ -722,7 +739,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.KeyboardModel.Enable(True)
self.EnableSound.SetValue(self.profile_config['sound'])
- self.SoundTunnel.SetValue(self.profile_config['soundtunnel'])
self.DefaultSoundPort.SetValue(self.profile_config['defsndport'])
self.SoundPort.SetValue(self.profile_config['sndport'])
if self.profile_config['soundsystem'] == 'pulse':
@@ -733,7 +749,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.esd.SetValue(True)
if self.profile_config['sound']:
self.PulseAudio.Enable(True)
- self.SoundTunnel.Enable(True)
self.Arts.Enable(True)
self.esd.Enable(True)
self.DefaultSoundPort.Enable(True)
@@ -745,7 +760,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.SoundPort.Enable(False)
else:
self.PulseAudio.Enable(False)
- self.SoundTunnel.Enable(False)
self.Arts.Enable(False)
self.esd.Enable(False)
self.DefaultSoundPort.Enable(False)
@@ -753,7 +767,9 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.SoundPort.Enable(False)
self.ClientSidePrinting.SetValue(self.profile_config['print'])
- self.SSHFSPortForwarding.SetValue(self.profile_config['fstunnel'])
+
+ self.UseLocalFolderSharing.SetValue(self.profile_config['useexports'])
+ self._toggle_localFolderSharing()
self.SharedFoldersList.DeleteAllItems()
_shared_folders = self.profile_config['export'].strip().strip(',').strip()
@@ -763,6 +779,13 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
_item.SetData(wx.NewId())
_item.SetText(_shared_folder_path)
self.SharedFoldersList.InsertItem(_item)
+ self.AddSharedFolderPathButton.Enable(False)
+ self.DeleteSharedFolderPathButton.Enable(False)
+
+ self.UseEncodingConverter.SetValue(self.profile_config['useiconv'])
+ self.ClientEncoding.SetValue(self.profile_config['iconvfrom'])
+ self.ServerEncoding.SetValue(self.profile_config['iconvto'])
+ self._toggle_useEncodingConverter()
self.disable_EditConnected_options()
@@ -854,7 +877,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.profile_config['type'] = self.KeyboardModel.GetValue()
self.profile_config['sound'] = self.EnableSound.GetValue()
- self.profile_config['soundtunnel'] = self.SoundTunnel.GetValue()
self.profile_config['defsndport'] = self.DefaultSoundPort.GetValue()
self.profile_config['sndport'] = self.SoundPort.GetValue()
if self.PulseAudio.GetValue():
@@ -865,8 +887,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.profile_config['soundsystem'] = 'esd'
self.profile_config['print'] = self.ClientSidePrinting.GetValue()
- self.profile_config['fstunnel'] = self.SSHFSPortForwarding.GetValue()
+ self.profile_config['useexports'] = self.UseLocalFolderSharing.GetValue()
_shared_folders = []
_item_id = self.SharedFoldersList.GetTopItem()
while _item_id != -1:
@@ -874,6 +896,9 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
_shared_folders.append(_item.GetText())
_item_id = self.SharedFoldersList.GetNextItem(_item_id)
self.profile_config['export'] = ','.join(_shared_folders)
+ self.profile_config['useiconv'] = self.UseEncodingConverter.GetValue()
+ self.profile_config['iconvfrom'] = self.ClientEncoding.GetValue()
+ self.profile_config['iconvto'] = self.ServerEncoding.GetValue()
def OnIconChange(self, event):
_share_location = os.path.split(_icons_location)[0]
@@ -1064,7 +1089,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.PulseAudio.Enable(True)
self.Arts.Enable(True)
self.esd.Enable(True)
- self.SoundTunnel.Enable(True)
self.DefaultSoundPort.Enable(True)
if self.DefaultSoundPort.GetValue() is False:
self.SoundPortLabel.Enable(True)
@@ -1073,7 +1097,6 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.PulseAudio.Enable(False)
self.Arts.Enable(False)
self.esd.Enable(False)
- self.SoundTunnel.Enable(False)
self.DefaultSoundPort.Enable(False)
self.SoundPortLabel.Enable(False)
self.SoundPort.Enable(False)
@@ -1104,6 +1127,30 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
else:
self.DisplayDPI.Enable(False)
+ def _toggle_localFolderSharing(self):
+ if self.UseLocalFolderSharing.GetValue():
+ self.SharedFolderPathLabel.Enable(True)
+ self.SharedFolderPath.Enable(True)
+ self.SharedFolderPathBrowseButton.Enable(True)
+ self.SharedFoldersList.Enable(True)
+ self.UseEncodingConverter.Enable(True)
+ self._toggle_useEncodingConverter()
+ else:
+ self.AddSharedFolderPathButton.Enable(False)
+ self.DeleteSharedFolderPathButton.Enable(False)
+ self.SharedFolderPathLabel.Enable(False)
+ self.SharedFolderPath.Enable(False)
+ self.SharedFolderPathBrowseButton.Enable(False)
+ self.SharedFoldersList.Enable(False)
+ self.UseEncodingConverter.Enable(False)
+ self.ClientEncodingLabel.Enable(False)
+ self.ClientEncoding.Enable(False)
+ self.ServerEncodingLabel.Enable(False)
+ self.ServerEncoding.Enable(False)
+
+ def OnToggleLocalFolderSharing(self, event):
+ self._toggle_localFolderSharing()
+
def OnSelectSharedFolderPath(self, event):
shared_folder = os.path.expanduser('~')
if not os.path.exists(shared_folder):
@@ -1116,6 +1163,15 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
# This returns a Python list of files that were selected.
self.SharedFolderPath.SetValue(dlg.GetPath())
+ def OnSharedFolderListItemSelected(self, event):
+ self.DeleteSharedFolderPathButton.Enable(True)
+
+ def OnSharedFolderListItemDeselected(self, event):
+ self.DeleteSharedFolderPathButton.Enable(False)
+
+ def OnSharedFolderPathKeyPressed(self, event):
+ self.AddSharedFolderPathButton.Enable(True)
+
def OnAddSharedFolderPath(self, event):
_shared_folder_path = self.SharedFolderPath.GetValue()
if _shared_folder_path and (self.SharedFoldersList.FindItem(0, _shared_folder_path) == -1):
@@ -1123,10 +1179,28 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
_item.SetData(wx.NewId())
_item.SetText(_shared_folder_path)
self.SharedFoldersList.InsertItem(_item)
+ self.SharedFolderPath.SetValue('')
+ self.AddSharedFolderPathButton.Enable(False)
def OnDeleteSharedFolderPath(self, event):
_item = self.SharedFoldersList.GetFocusedItem()
self.SharedFoldersList.DeleteItem(_item)
+ self.DeleteSharedFolderPathButton.Enable(False)
+
+ def _toggle_useEncodingConverter(self):
+ if self.UseEncodingConverter.GetValue():
+ self.ClientEncodingLabel.Enable(True)
+ self.ClientEncoding.Enable(True)
+ self.ServerEncodingLabel.Enable(True)
+ self.ServerEncoding.Enable(True)
+ else:
+ self.ClientEncodingLabel.Enable(False)
+ self.ClientEncoding.Enable(False)
+ self.ServerEncodingLabel.Enable(False)
+ self.ServerEncoding.Enable(False)
+
+ def OnToggleEncodingConverter(self, event):
+ self._toggle_useEncodingConverter()
def __validate(self):
validateOk = True
@@ -1166,6 +1240,8 @@ class PyHocaGUI_ProfileManager(wx.Dialog):
self.Close()
self.Destroy()
+ wx.EndBusyCursor()
+
def OnCancel(self, event):
self.Close()
self.Destroy()
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