From a9c4b266ea5fcf7e96a1af0199777280ead12d06 Mon Sep 17 00:00:00 2001 From: Sergio Costas Date: Fri, 1 Aug 2014 23:59:25 +0200 Subject: [PATCH] Now shows a dialog at the end of the creation --- data/interface/wdone.ui | 161 ++++++++++++++++++++++++++++++ src/devede/dvdauthor_converter.py | 2 +- src/devede/end_job.py | 68 +++++++++++++ src/devede/mkisofs.py | 4 +- src/devede/project.py | 7 ++ src/devede/runner.py | 4 +- 6 files changed, 241 insertions(+), 5 deletions(-) create mode 100644 data/interface/wdone.ui create mode 100644 src/devede/end_job.py diff --git a/data/interface/wdone.ui b/data/interface/wdone.ui new file mode 100644 index 0000000..a458d49 --- /dev/null +++ b/data/interface/wdone.ui @@ -0,0 +1,161 @@ + + + + + + + False + dialog + + + False + vertical + 2 + + + False + end + + + Burn + True + True + True + + + False + True + 0 + + + + + gtk-ok + True + True + True + True + + + False + True + 1 + + + + + False + True + end + 0 + + + + + True + False + vertical + + + True + False + Job done! + start + 0.029999999999999999 + + + False + True + 31 + 0 + + + + + True + False + + + False + True + 16 + 1 + + + + + True + True + True + + + True + False + vertical + + + 240 + True + True + in + + + True + True + debug_buffer + + + + + False + True + 0 + + + + + gtk-copy + True + True + True + True + + + + False + True + 1 + + + + + + + True + False + Debugging data + start + + + + + False + True + 2 + + + + + True + True + 1 + + + + + + button_burn + button1 + + + diff --git a/src/devede/dvdauthor_converter.py b/src/devede/dvdauthor_converter.py index 062159a..baed5ac 100644 --- a/src/devede/dvdauthor_converter.py +++ b/src/devede/dvdauthor_converter.py @@ -51,7 +51,7 @@ class dvdauthor_converter(devede.executor.executor): return def process_stderr(self,data): - if data != None: + if (data != None) and (data[0] != ""): self.progress_bar[1].set_text(data[0]) return diff --git a/src/devede/end_job.py b/src/devede/end_job.py new file mode 100644 index 0000000..cecf7f1 --- /dev/null +++ b/src/devede/end_job.py @@ -0,0 +1,68 @@ +# Copyright 2014 (C) Raster Software Vigo (Sergio Costas) +# +# This file is part of DeVeDe-NG +# +# DeVeDe-NG 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. +# +# DeVeDe-NG 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 + +from gi.repository import Gtk,Gdk +import os +import devede.configuration_data + +class end_window: + + def __init__(self): + + self.config = devede.configuration_data.configuration.get_config() + + def run(self,time_used): + + builder = Gtk.Builder() + builder.set_translation_domain(self.config.gettext_domain) + + builder.add_from_file(os.path.join(self.config.glade,"wdone.ui")) + builder.connect_signals(self) + werror_window = builder.get_object("done") + wdebug_buffer = builder.get_object("debug_buffer") + wdebug_buffer.insert_at_cursor(self.config.get_log()) + wtime = builder.get_object("label_time") + hours = int(time_used / 3600) + minutes = int((time_used / 60) % 60) + seconds = int(time_used % 60) + time_used_str = "" + if hours < 10: + time_used_str += "0" + time_used_str += str(hours)+":" + if minutes < 10: + time_used_str += "0" + time_used_str += str(minutes)+":" + if seconds < 10: + time_used_str += "0" + time_used_str += str(seconds) + wtime.set_text(time_used_str) + + werror_window.show_all() + retval = werror_window.run() + werror_window.destroy() + if retval == 1: + return True # burn disc image + else: + return False + + + def on_copy_clicked(self,b): + + clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) + data =self.config.get_log() + clipboard.set_text(data,len(data)) + return diff --git a/src/devede/mkisofs.py b/src/devede/mkisofs.py index eae17e9..f31ba17 100644 --- a/src/devede/mkisofs.py +++ b/src/devede/mkisofs.py @@ -32,7 +32,7 @@ class mkisofs(devede.executor.executor): filesystem_path = os.path.join(path,name) final_path = os.path.join(path,name+".iso") - + self.command_var=[] self.command_var.append("mkisofs") self.command_var.append("-dvd-video") @@ -53,7 +53,7 @@ class mkisofs(devede.executor.executor): if (data[0].find("% done") == -1): return - + l = data[0].split("%") p = float(l[0]) self.progress_bar[1].set_fraction(p) diff --git a/src/devede/project.py b/src/devede/project.py index c9f46c8..681adcd 100644 --- a/src/devede/project.py +++ b/src/devede/project.py @@ -17,6 +17,7 @@ from gi.repository import Gtk import os +import time import devede.file_movie import devede.ask @@ -28,6 +29,7 @@ import devede.runner import devede.settings import devede.dvdauthor_converter import devede.mkisofs +import devede.end_job class devede_project: @@ -306,11 +308,16 @@ class devede_project: run_window.connect("done",self.disc_done) self.wmain_window.hide() + self.time_start = time.time() run_window.run() def disc_done(self,object,value): + if value == 0: + ended = devede.end_job.end_window() + ended.run(time.time() - self.time_start) + self.wmain_window.show() def on_preview_file_clicked(self,b): diff --git a/src/devede/runner.py b/src/devede/runner.py index faea1ee..4e438ae 100644 --- a/src/devede/runner.py +++ b/src/devede/runner.py @@ -114,7 +114,7 @@ class runner(GObject.GObject): element.cancel() self.wprogress.destroy() devede.error.error_window() - self.emit("done",1) + self.emit("done",1) # there was an error return # move the progress bar used by this process to the list of available progress bars @@ -140,4 +140,4 @@ class runner(GObject.GObject): self.run(False) else: self.wprogress.destroy() - self.emit("done",0) \ No newline at end of file + self.emit("done",0) # no error \ No newline at end of file