[Xfce4-commits] [apps/xfce4-panel-profiles] 08/162: Cleanup and improve some bits
noreply at xfce.org
noreply at xfce.org
Fri Jul 13 13:08:27 CEST 2018
This is an automated email from the git hooks/post-receive script.
o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository apps/xfce4-panel-profiles.
commit 73dc19c03179504e555167c28e961c3e09d1122d
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Mon Jul 20 22:13:01 2015 -0400
Cleanup and improve some bits
---
xfpanel-switch/xfpanel-switch.glade | 2 +-
xfpanel-switch/xfpanel-switch.py | 122 ++++++++++++++++++++++--------------
2 files changed, 76 insertions(+), 48 deletions(-)
diff --git a/xfpanel-switch/xfpanel-switch.glade b/xfpanel-switch/xfpanel-switch.glade
index 4a217b0..da627ef 100644
--- a/xfpanel-switch/xfpanel-switch.glade
+++ b/xfpanel-switch/xfpanel-switch.glade
@@ -48,7 +48,7 @@
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="margin_start">6</property>
- <property name="margin_top">6</property>
+ <property name="margin_top">1</property>
<property name="pixel_size">48</property>
<property name="icon_name">xfce4-panel</property>
<property name="icon_size">6</property>
diff --git a/xfpanel-switch/xfpanel-switch.py b/xfpanel-switch/xfpanel-switch.py
index 5edd652..7c554be 100644
--- a/xfpanel-switch/xfpanel-switch.py
+++ b/xfpanel-switch/xfpanel-switch.py
@@ -20,7 +20,6 @@ from gettext import gettext as _
from gettext import ngettext
import shlex
-import shutil
import os
import datetime
from gi.repository import Gtk, GLib, Gio
@@ -59,6 +58,23 @@ class XfpanelSwitch:
os.makedirs(self.save_location)
self.window.show()
+
+ def _copy(self, src, dst):
+ PanelConfig.from_file(src).to_file(dst)
+
+ def _filedlg(self, title, action, default=None):
+ if action == Gtk.FileChooserAction.SAVE:
+ button = _("Save")
+ else:
+ button = _("Open")
+ dialog = Gtk.FileChooserDialog(title,
+ self.window, action,
+ (_("Cancel"), Gtk.ResponseType.CANCEL,
+ button, Gtk.ResponseType.ACCEPT))
+ dialog.set_default_response(Gtk.ResponseType.ACCEPT)
+ if default:
+ dialog.set_current_name(default)
+ return dialog
def load_xfconf(self):
session_bus = Gio.BusType.SESSION
@@ -123,17 +139,11 @@ class XfpanelSwitch:
model, treeiter = self.treeview.get_selection().get_selected()
values = model[treeiter][:]
return (model, treeiter, values)
-
- def get_save_dialog(self, default_name=None):
- dialog = self.builder.get_object("save_dialog")
- self.name_entry = self.builder.get_object("name_entry")
- if default_name is None:
- date = datetime.datetime.now().strftime("%x %X")
- date = date.replace(":", "-").replace("/", "-").replace(" ", "_")
- default_name = _("Backup_%s") % date
- self.name_entry.set_text(default_name)
-
- return dialog
+
+ def get_selected_filename(self):
+ model, treeiter, values = self.get_selected()
+ filename = values[0]
+ return filename
def copy_configuration(self, row, new_name, append=True):
model, treeiter, values = row
@@ -142,7 +152,7 @@ class XfpanelSwitch:
created = values[2]
new_filename = new_name + ".tar.bz2"
new_filename = os.path.join(self.save_location, new_filename)
- PanelConfig.from_file(filename).to_file(new_filename)
+ self._copy(filename, new_filename)
if append:
name = _("%s (Copy of %s)") % (new_name, old_name)
self.tree_model.append([new_filename, name, created])
@@ -156,67 +166,52 @@ class XfpanelSwitch:
self.tree_model.append([filename, name, created])
def on_save_clicked(self, widget):
- model, treeiter, values = self.get_selected()
- filename = values[0]
- dialog = self.get_save_dialog()
- if dialog.run() == Gtk.ResponseType.OK:
- name = self.name_entry.get_text().strip()
+ filename = self.get_selected_filename()
+ dialog = PanelSaveDialog(self.window)
+ if dialog.run() == Gtk.ResponseType.ACCEPT:
+ name = dialog.get_save_name()
if len(name) > 0:
if filename == "":
self.save_configuration(name)
else:
self.copy_configuration(self.get_selected(), name)
- dialog.hide()
+ dialog.destroy()
def on_export_clicked(self, widget):
- dialog = Gtk.FileChooserDialog(_("Export configuration as..."),
- self.window, Gtk.FileChooserAction.SAVE,
- (_("Cancel"), Gtk.ResponseType.CANCEL,
- _("Save"), Gtk.ResponseType.ACCEPT))
- dialog.set_current_name(_("Untitled"))
+ dialog = self._filedlg(_("Export configuration as..."),
+ Gtk.FileChooserAction.SAVE, _("Untitled"))
response = dialog.run()
if response == Gtk.ResponseType.ACCEPT:
+ selected = self.get_selected_filename()
filename = dialog.get_filename()
- if filename == "":
+ if selected == "":
self.save_configuration(filename, False)
else:
- self.copy_configuration(self.get_selected(), filename)
- dialog.hide()
+ self.copy_configuration(self.get_selected(), filename, False)
dialog.destroy()
def on_import_clicked(self, widget):
- dialog = Gtk.FileChooserDialog(_("Import configuration file..."),
- self.window, Gtk.FileChooserAction.OPEN,
- (_("Cancel"), Gtk.ResponseType.CANCEL,
- _("Save"), Gtk.ResponseType.ACCEPT))
+ dialog = self._filedlg(_("Import configuration file..."),
+ Gtk.FileChooserAction.OPEN)
response = dialog.run()
if response == Gtk.ResponseType.ACCEPT:
filename = dialog.get_filename()
- savedlg = self.get_save_dialog()
- if savedlg.run() == Gtk.ResponseType.OK:
- name = self.name_entry.get_text().strip()
+ savedlg = PanelSaveDialog()
+ if savedlg.run() == Gtk.ResponseType.ACCEPT:
+ name = savedlg.get_save_name()
dst = os.path.join(self.save_location, name+".tar.bz2")
- shutil.copyfile(filename, dst)
+ self._copy(filename, dst)
self.tree_model.append([dst, name,
datetime.datetime.now().strftime("%X")])
- savedlg.hide()
- dialog.hide()
+ savedlg.destroy()
dialog.destroy()
-
- def get_selected_filename(self):
- model, treeiter, values = self.get_selected()
- filename = values[0]
- if filename == "":
- return
- return filename
def load_configuration(self, filename):
if os.path.isfile(filename):
PanelConfig.from_file(filename).to_xfconf(self.xfconf)
def on_apply_clicked(self, widget):
- model, treeiter, values = self.get_selected()
- filename = values[0]
+ filename = self.get_selected_filename()
self.load_configuration(filename)
def delete_configuration(self, filename):
@@ -225,7 +220,7 @@ class XfpanelSwitch:
def on_delete_clicked(self, widget):
model, treeiter, values = self.get_selected()
- filename = values[0]
+ filename = values[0]
if filename == "":
return
self.delete_configuration(filename)
@@ -238,6 +233,39 @@ class XfpanelSwitch:
def on_close_clicked(self, *args):
'''Exit the application when the window is closed.'''
Gtk.main_quit()
+
+class PanelSaveDialog(Gtk.MessageDialog):
+ def __init__(self, parent=None, default=None):
+ primary = _("Name the new panel configuration")
+ secondary = ""
+ Gtk.MessageDialog.__init__(self, transient_for=parent, modal=True,
+ message_type=Gtk.MessageType.QUESTION,
+ message_format=primary,
+ buttons=(_("Cancel"), Gtk.ResponseType.CANCEL,
+ _("Save Configuration"), Gtk.ResponseType.ACCEPT))
+ self.set_default_icon_name("document-save-as")
+ self.set_default_response(Gtk.ResponseType.ACCEPT)
+ box = self.get_message_area()
+ self.entry = Gtk.Entry.new()
+ self.entry.set_activates_default(True)
+ if default:
+ self.entry.set_text(default)
+ else:
+ self.default()
+ box.pack_start(self.entry, True, True, 0)
+ box.show_all()
+
+ def default(self):
+ date = datetime.datetime.now().strftime("%x %X")
+ date = date.replace(":", "-").replace("/", "-").replace(" ", "_")
+ name = _("Backup_%s") % date
+ self.set_save_name(name)
+
+ def get_save_name(self):
+ return self.entry.get_text().strip()
+
+ def set_save_name(self, name):
+ self.entry.set_text(name.strip())
if __name__ == "__main__":
main = XfpanelSwitch()
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list