[X2Go-Commits] pyhoca-gui.git - build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d (branch) updated: 0.2.1.1-12-gb40455d
X2Go dev team
git-admin at x2go.org
Tue Aug 27 13:22:48 CEST 2013
The branch, build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d has been updated
via b40455ddce61dc0f8eab116018b2378d1f84ca66 (commit)
from 450197e2ac67b5e90e22f1b37912653e93e6a6f8 (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 +
debian/control | 2 +-
.../PyHoca/32x32/{auth_success.png => success.png} | Bin 1572 -> 1572 bytes
icons/PyHoca/64x64/{audio_error.png => error.png} | Bin 3973 -> 3973 bytes
.../PyHoca/64x64/{auth_success.png => success.png} | Bin 3213 -> 3213 bytes
.../PyHoca/32x32/{auth_success.png => success.png} | 0
.../{32x32/audio_error.png => 64x64/error.png} | 0
.../{32x32/auth_success.png => 64x64/success.png} | 0
pyhoca/wxgui/frontend.py | 76 ++++++++++++++++++++
pyhoca/wxgui/menus_taskbar.py | 20 +++++-
10 files changed, 98 insertions(+), 2 deletions(-)
copy icons/PyHoca/32x32/{auth_success.png => success.png} (100%)
copy icons/PyHoca/64x64/{audio_error.png => error.png} (100%)
copy icons/PyHoca/64x64/{auth_success.png => success.png} (100%)
copy icons_symlinked/PyHoca/32x32/{auth_success.png => success.png} (100%)
copy icons_symlinked/PyHoca/{32x32/audio_error.png => 64x64/error.png} (100%)
copy icons_symlinked/PyHoca/{32x32/auth_success.png => 64x64/success.png} (100%)
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 89b80a2..659476f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,8 +11,10 @@ pyhoca-gui (0.2.1.2-0~x2go1) UNRELEASED; urgency=low
- Add rules to setup.py that install PyHoca-GUI's data files under Linux
(i.e. icons, images, man page, etc.). Thanks to Orion Poplawski for
coming up with an inspiring patch. (Fixes: #92).
+ - Add support for exporting session profiles and session profile groups.
* /debian/control:
+ Thanks to Orion's patch in bug #91 we can drop many build dependencies.
+ + Versioned Depend: on python-x2go (>= 0.2.1.2-0~).
-- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Thu, 20 Dec 2012 08:51:50 +0100
diff --git a/debian/control b/debian/control
index 4716516..14aad2c 100644
--- a/debian/control
+++ b/debian/control
@@ -23,7 +23,7 @@ Architecture: all
Depends:
${misc:Depends},
python,
- python-x2go (>=0.2.1.1-0~),
+ python-x2go (>=0.2.1.2-0~),
python-argparse,
python-notify,
python-setproctitle,
diff --git a/icons/PyHoca/32x32/auth_success.png b/icons/PyHoca/32x32/success.png
similarity index 100%
copy from icons/PyHoca/32x32/auth_success.png
copy to icons/PyHoca/32x32/success.png
diff --git a/icons/PyHoca/64x64/audio_error.png b/icons/PyHoca/64x64/error.png
similarity index 100%
copy from icons/PyHoca/64x64/audio_error.png
copy to icons/PyHoca/64x64/error.png
diff --git a/icons/PyHoca/64x64/auth_success.png b/icons/PyHoca/64x64/success.png
similarity index 100%
copy from icons/PyHoca/64x64/auth_success.png
copy to icons/PyHoca/64x64/success.png
diff --git a/icons_symlinked/PyHoca/32x32/auth_success.png b/icons_symlinked/PyHoca/32x32/success.png
similarity index 100%
copy from icons_symlinked/PyHoca/32x32/auth_success.png
copy to icons_symlinked/PyHoca/32x32/success.png
diff --git a/icons_symlinked/PyHoca/32x32/audio_error.png b/icons_symlinked/PyHoca/64x64/error.png
similarity index 100%
copy from icons_symlinked/PyHoca/32x32/audio_error.png
copy to icons_symlinked/PyHoca/64x64/error.png
diff --git a/icons_symlinked/PyHoca/32x32/auth_success.png b/icons_symlinked/PyHoca/64x64/success.png
similarity index 100%
copy from icons_symlinked/PyHoca/32x32/auth_success.png
copy to icons_symlinked/PyHoca/64x64/success.png
diff --git a/pyhoca/wxgui/frontend.py b/pyhoca/wxgui/frontend.py
index 328941c..68dd026 100644
--- a/pyhoca/wxgui/frontend.py
+++ b/pyhoca/wxgui/frontend.py
@@ -312,6 +312,7 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
self._logon_windows = {}
self._hide_notifications_map = {}
self._eventid_profilenames_map = {}
+ self._eventid_exportprofiles_map = {}
self._eventid_sessionnames_map = {}
self._eventid_applications_map = {}
self._eventid_shared_folders_map = {}
@@ -1058,6 +1059,81 @@ class PyHocaGUI(wx.App, x2go.X2goClient):
pass
self._temp_disabled_profile_names.remove(profile_name)
+ def OnProfileExport(self, evt):
+ """\
+ Gets called if the user request a session profile (group) export.
+
+ @param evt: event
+ @type evt: C{obj}
+
+ """
+ try:
+ profile_name = self._eventid_profilenames_map[evt.GetId()]
+ except KeyError:
+ profile_name = None
+
+ try:
+ profile_group = self._eventid_exportprofiles_map[evt.GetId()]
+ except KeyError:
+ profile_group = None
+
+ if profile_group:
+
+ # This returns a Python list of files that were selected.
+ filtered_profile_names = [ pn for pn in self._X2goClient__get_profiles().profile_names if pn.startswith(unicode(profile_group)) ]
+
+ dlg = wx.FileDialog(
+ self.about, message=_(u"%s - export session profiles") % profile_group, wildcard="*.x2go", style=wx.FD_SAVE)
+
+ if profile_name:
+
+ dlg = wx.FileDialog(
+ self.about, message=_(u"%s - export session profile") % profile_name, wildcard="*.x2go", style=wx.FD_SAVE)
+ filtered_profile_names = [profile_name]
+
+ # Show the dialog and retrieve the user response. If it is the OK response,
+ # process the data.
+ if dlg.ShowModal() == wx.ID_OK:
+
+ _export_file = dlg.GetPath()
+ if not _export_file.endswith(".x2go"): _export_file += ".x2go"
+
+ if os.path.exists(_export_file):
+ m = messages.PyHoca_MessageWindow_NoYes(self,
+ title=_(u'%s: Export file already exists') % self.appname,
+ msg=_(u"The file »%s« already exists in this folder.\n\nDo you want to replace it?") % os.path.basename(_export_file),
+ icon='warning',
+ profile_name=profile_name)
+ m.ShowModal()
+ if not m.Yes(): return
+ else: os.remove(_export_file)
+
+ exported_sessions = x2go.X2goSessionProfiles(config_files=[_export_file])
+ for profile_name in filtered_profile_names:
+ this_profile = self._X2goClient__get_profile_config(profile_name)
+
+ # clean up session profile options that are unknown to Python X2Go
+ for key in copy.deepcopy(this_profile).keys():
+ if key not in x2go.defaults.X2GO_SESSIONPROFILE_DEFAULTS:
+ del this_profile[key]
+
+ exported_sessions.add_profile(**this_profile)
+
+ exported_sessions.write_user_config = True
+ if exported_sessions.write():
+ if profile_group:
+ self.notifier.send(_(u'%s - profiles exported') % profile_group, _(u'Successfully exported session profile group »%s« to file »%s«.') % (profile_group, os.path.basename(_export_file)), icon='success', timeout=10000)
+ elif profile_name:
+ self.notifier.send(_(u'%s - profile exported') % profile_name, _(u'Successfully exported single session profile »%s« to file »%s«.') % (profile_name, os.path.basename(_export_file)), icon='success', timeout=10000)
+ 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)
+ m.ShowModal()
+
def OnShareCustomLocalFolder(self, evt):
"""\
Gets called if the user chooses to share a non-configured local folder with the running X2Go session.
diff --git a/pyhoca/wxgui/menus_taskbar.py b/pyhoca/wxgui/menus_taskbar.py
index e7c07cf..68cd3f3 100644
--- a/pyhoca/wxgui/menus_taskbar.py
+++ b/pyhoca/wxgui/menus_taskbar.py
@@ -64,21 +64,26 @@ class PyHocaGUI_Menu_TaskbarManageProfile(wx.Menu):
ID_EDITPROFILE = wx.NewId()
ID_COPYPROFILE = wx.NewId()
+ ID_EXPORTPROFILE = wx.NewId()
ID_DELETEPROFILE = wx.NewId()
# preparing profile_name information for the main PyHocaGUI instance
self._PyHocaGUI._eventid_profilenames_map[ID_EDITPROFILE] = \
self._PyHocaGUI._eventid_profilenames_map[ID_COPYPROFILE] = \
+ self._PyHocaGUI._eventid_profilenames_map[ID_EXPORTPROFILE] = \
self._PyHocaGUI._eventid_profilenames_map[ID_DELETEPROFILE] = profile_name
self.Append(text=_(u"Edit Profile"), id=ID_EDITPROFILE)
if not self._PyHocaGUI.args.single_session_profile:
self.AppendSeparator()
self.Append(text=_(u"Use as Template for New Profile"), id=ID_COPYPROFILE)
+ self.AppendSeparator()
+ self.Append(text=_(u"Export Profile"), id=ID_EXPORTPROFILE)
self.Append(text=_(u"Delete Profile"), id=ID_DELETEPROFILE)
self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileEdit, id=ID_EDITPROFILE)
self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileCopy, id=ID_COPYPROFILE)
+ self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileExport, id=ID_EXPORTPROFILE)
self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileDelete, id=ID_DELETEPROFILE)
@@ -886,8 +891,8 @@ class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
group_name=profile_group,
parent_group=_parent_group,
group_menus=True)
- )
+ )
if filter_profiles:
_profile_names = [ p for p in _profile_names if p not in filter_profiles ]
@@ -921,6 +926,19 @@ class PyHocaGUI_Menu_TaskbarProfileNames(wx.Menu):
_dummy = self.Append(text=_(u'No session profiles defined'), id=wx.NewId())
_dummy.Enable(False)
+ else:
+ if bind_method is None:
+ self.AppendSeparator()
+ _export_id = wx.NewId()
+ _export_group_name = "%s/%s" % (parent_group, group_name)
+ _export_group_name = _export_group_name.strip("/")
+ self._PyHocaGUI._eventid_exportprofiles_map[_export_id] = _export_group_name
+ if not group_name:
+ self.Append(text=_(u'Export all profiles'), id=_export_id)
+ else:
+ self.Append(text=_(u'Export profile group'), id=_export_id)
+ self._PyHocaGUI.Bind(wx.EVT_MENU, self._PyHocaGUI.OnProfileExport, id=_export_id)
+
def OnUpdateUI(self, evt):
profile_name = self._PyHocaGUI._eventid_profilenames_map[evt.GetId()]
if profile_name in self._PyHocaGUI._temp_disabled_profile_names:
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