From 16fe2e5d0525422ba6ca5db9e92a93d17caae302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 27 Sep 2015 15:05:13 +0200 Subject: Imported Upstream version 0.6.6 --- src/themes/themeImporter.vala | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/themes/themeImporter.vala (limited to 'src/themes/themeImporter.vala') diff --git a/src/themes/themeImporter.vala b/src/themes/themeImporter.vala new file mode 100644 index 0000000..f110696 --- /dev/null +++ b/src/themes/themeImporter.vala @@ -0,0 +1,62 @@ +///////////////////////////////////////////////////////////////////////// +// Copyright (c) 2011-2015 by Simon Schneegans +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or (at +// your option) any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +///////////////////////////////////////////////////////////////////////// + +namespace GnomePie { + +///////////////////////////////////////////////////////////////////////// +/// This class provides functions to check whether an archive contains a +/// valid Gnome-Pie theme. +///////////////////////////////////////////////////////////////////////// + +public class ThemeImporter : ArchiveReader { + + public bool is_valid_theme; + public string theme_name; + + ///////////////////////////////////////////////////////////////////// + /// Returns + ///////////////////////////////////////////////////////////////////// + + public new bool open(string path) { + + this.is_valid_theme = false; + this.theme_name = ""; + + var tmp_reader = new ArchiveReader(); + + if (tmp_reader.open(path)) { + try { + var tmp_dir = GLib.DirUtils.make_tmp("gnomepieXXXXXX"); + if (tmp_reader.extract_to(tmp_dir)) { + var tmp_theme = new Theme(tmp_dir); + if (tmp_theme.load()) { + is_valid_theme = true; + theme_name = tmp_theme.name; + } + } + } catch (Error e) { + warning(e.message); + } + } + + tmp_reader.close(); + + return base.open(path); + } +} + +} -- cgit v1.2.3