From 3d8117cab503c90741e3b55f383a60acf3092f53 Mon Sep 17 00:00:00 2001 From: Emanuele Petriglia Date: Sun, 22 Sep 2019 12:49:48 +0200 Subject: [PATCH] Add error for invalid config (bug #15983) --- xfce4-panel-profiles/xfce4-panel-profiles.py | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/xfce4-panel-profiles/xfce4-panel-profiles.py b/xfce4-panel-profiles/xfce4-panel-profiles.py index c3a7ca8..0fa5d61 100644 --- a/xfce4-panel-profiles/xfce4-panel-profiles.py +++ b/xfce4-panel-profiles/xfce4-panel-profiles.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU General Public License along # with this program. If not, see . +import tarfile + import gettext gettext.textdomain('xfce4-panel-profiles') @@ -252,9 +254,24 @@ class XfcePanelProfiles: if savedlg.run() == Gtk.ResponseType.ACCEPT: name = savedlg.get_save_name() dst = os.path.join(self.save_location, name + ".tar.bz2") - self._copy(filename, dst) - self.tree_model.append( - [dst, name, int(datetime.datetime.now().strftime('%s'))]) + try: + self._copy(filename, dst) + self.tree_model.append( + [dst, name, int(datetime.datetime.now().strftime('%s'))]) + except tarfile.ReadError: + message = _("Invalid configuration file!\n" + "Please select a valid configuration file.") + + errordlg = Gtk.MessageDialog( + transient_for=self.window, modal=True, + message_type=Gtk.MessageType.ERROR, + text=message) + + errordlg.add_button(_("OK"), Gtk.ResponseType.OK) + + errordlg.run() + errordlg.destroy() + savedlg.destroy() dialog.destroy() @@ -337,6 +354,7 @@ class PanelSaveDialog(Gtk.MessageDialog): def set_save_name(self, name): self.entry.set_text(name.strip()) + if __name__ == "__main__": import sys -- 2.21.0