From 6cb04b131e3ec10fc122ce3fc570975431b11be9 Mon Sep 17 00:00:00 2001 From: Sergio Costas Date: Fri, 11 Jul 2014 23:40:21 +0200 Subject: [PATCH] Removed conflicting class "file" Now sets the disc type every time a new file or title is created --- src/devede/ask.py | 6 +- src/devede/{file.py => file_movie.py} | 25 +-- src/devede/project.py | 222 +++++++++++++------------- src/devede/title.py | 22 +-- src/devede_ng.py | 10 +- 5 files changed, 148 insertions(+), 137 deletions(-) rename src/devede/{file.py => file_movie.py} (80%) diff --git a/src/devede/ask.py b/src/devede/ask.py index 1eed496..e56aabe 100644 --- a/src/devede/ask.py +++ b/src/devede/ask.py @@ -22,10 +22,10 @@ class ask_window: def __init__(self,paths): - self.paths = paths - + self.paths = paths + def run(self,text,title): - + builder = Gtk.Builder() builder.set_translation_domain("devede_ng") diff --git a/src/devede/file.py b/src/devede/file_movie.py similarity index 80% rename from src/devede/file.py rename to src/devede/file_movie.py index e55aa9e..bf1d4e7 100644 --- a/src/devede/file.py +++ b/src/devede/file_movie.py @@ -17,18 +17,23 @@ from gi.repository import GObject -class file(GObject.GObject): - +class file_movie(GObject.GObject): + + counter2 = 0 + def __init__(self): - + GObject.GObject.__init__(self) - self.counter2 = 0 - + + def set_type(self,disc_type): + + self.disc_type = disc_type + def delete_file(self): - + print("Deleted file "+self.file_name) - + def properties(self): - - self.file_name = "Hola"+str(self.counter2) - self.counter2 += 1 \ No newline at end of file + + self.file_name = "Hola"+str(file_movie.counter2) + file_movie.counter2 += 1 \ No newline at end of file diff --git a/src/devede/project.py b/src/devede/project.py index 7b863a6..663928a 100644 --- a/src/devede/project.py +++ b/src/devede/project.py @@ -19,7 +19,7 @@ from gi.repository import Gtk import os import devede.title -import devede.file +import devede.file_movie import devede.ask class devede_project: @@ -28,10 +28,10 @@ class devede_project: self.paths = paths self.destroy_all() - - + + def destroy_all(self): - + self.wask_window = None self.wmain_window = None self.wframe_titles = None @@ -44,7 +44,7 @@ class devede_project: self.wuse_pal = None self.wuse_ntsc = None self.wcreate_menu = None - self.project_type = None + self.disc_type = None self.wdelete_title = None self.wup_title = None self.wdown_title = None @@ -55,7 +55,7 @@ class devede_project: self.wdown_file = None self.wproperties_file = None self.wcreate_disc = None - + devede.title.counter = 0 @@ -107,116 +107,29 @@ class devede_project: if (self.wask_window != None): self.wask_window.destroy() self.destroy_all() - - self.project_type = disc_type + + self.disc_type = disc_type self.show_main_window() - + # Set the default disc size - if (self.project_type == "dvd"): + if (self.disc_type == "dvd"): self.wdisc_size.set_active(1) # 4.7 GB DVD self.wframe_titles.show() else: self.wdisc_size.set_active(3) # 700 MB CD self.wframe_titles.hide() - + # create a new title self.on_add_title_clicked(None) - def on_add_title_clicked(self,b): - """ Creates a new title and adds it to the current project """ - - self.get_current_title() - - new_title = devede.title.title(self.wfiles,self.wliststore_files) - self.wliststore_titles.append([new_title.title_name, new_title]) - self.set_interface_status(None) - - def on_add_file_clicked(self,b): - - (element, position, model, treeiter) = self.get_current_title() - if (element == None): - return - - new_file = devede.file.file() - new_file.properties() - - if (new_file.file_name != None): - element.add_file(new_file) - self.set_interface_status(None) - - - def on_delete_title_clicked(self,b): - - (element, position, model, treeiter) = self.get_current_title() - if (element == None): - return - - ask_w = devede.ask.ask_window(self.paths) - if (ask_w.run(_("The title %(X)s will be removed.") % {"X":element.title_name},_("Delete title"))): - element.delete_title() - model.remove(treeiter) - self.set_interface_status(None) - - def on_delete_file_clicked(self,b): - - (element, position, model, treeiter) = self.get_current_file() - if (element == None): - return - - ask_w = devede.ask.ask_window(self.paths) - if (ask_w.run(_("The file %(X)s will be removed.") % {"X":element.file_name},_("Delete file"))): - element.delete_file() - model.remove(treeiter) - self.set_interface_status(None) - - def on_up_title_clicked(self,b): - - (element, position, model, treeiter) = self.get_current_title() - if (element == None) or (position == 0): - return - - last_element = self.wliststore_titles[position-1] - self.wliststore_titles.swap(last_element.iter,treeiter) - self.set_interface_status(None) - - def on_up_file_clicked(self,b): - - (element, position, model, treeiter) = self.get_current_file() - if (element == None) or (position == 0): - return - - last_element = self.wfiles.get_model()[position-1] - self.wfiles.get_model().swap(last_element.iter,treeiter) - self.set_interface_status(None) - - def on_down_title_clicked(self,b): - - (element, position, model, treeiter) = self.get_current_title() - if (element == None) or (position == (len(self.wliststore_titles)-1)): - return - - last_element = self.wliststore_titles[position+1] - self.wliststore_titles.swap(last_element.iter,treeiter) - self.set_interface_status(None) - - def on_down_file_clicked(self,b): - - (element, position, model, treeiter) = self.get_current_file() - if (element == None) or (position == (len(self.wfiles.get_model())-1)): - return - - last_element = self.wfiles.get_model()[position+1] - self.wfiles.get_model().swap(last_element.iter,treeiter) - self.set_interface_status(None) - def get_current_title(self): """ returns the currently selected title """ selection = self.wtitles.get_selection() model, treeiter = selection.get_selected() - + if treeiter != None: element = model[treeiter][1] position = 0 @@ -241,7 +154,7 @@ class devede_project: selection = self.wfiles.get_selection() model, treeiter = selection.get_selected() - + if treeiter != None: element = model[treeiter][1] position = 0 @@ -263,22 +176,22 @@ class devede_project: self.wup_title.set_sensitive(True) self.wdown_title.set_sensitive(True) self.wproperties_title.set_sensitive(True) - + self.wadd_file.set_sensitive(True) self.wdelete_file.set_sensitive(True) self.wup_file.set_sensitive(True) self.wdown_file.set_sensitive(True) self.wproperties_file.set_sensitive(True) self.wpreview_file.set_sensitive(True) - + self.wcreate_disc.set_sensitive(True) (element, position, model, treeiter) = self.get_current_title() - + if (self.current_title != element): self.current_title = element element.refresh() - + if (element == None): self.wdelete_title.set_sensitive(False) self.wup_title.set_sensitive(False) @@ -298,7 +211,7 @@ class devede_project: self.wup_title.set_sensitive(False) if (position == (ntitles-1)): self.wdown_title.set_sensitive(False) - + (element2, position2, model2, treeiter2) = self.get_current_file() if (element2 == None): self.wdelete_file.set_sensitive(False) @@ -342,7 +255,7 @@ class devede_project: self.wuse_ntsc = builder.get_object("use_ntsc") self.wcreate_menu = builder.get_object("create_menu") self.wframe_titles = builder.get_object("frame_titles") - + self.wadd_title = builder.get_object("delete_title") self.wdelete_title = builder.get_object("delete_title") self.wup_title = builder.get_object("up_title") @@ -354,23 +267,112 @@ class devede_project: self.wdown_file = builder.get_object("down_file") self.wproperties_file = builder.get_object("properties_file") self.wpreview_file = builder.get_object("preview_file") - + self.wcreate_disc = builder.get_object("create_disc") - + selection = self.wfiles.get_selection() selection.mode = Gtk.SelectionMode.SINGLE selection = self.wtitles.get_selection() selection.mode = Gtk.SelectionMode.SINGLE self.wmain_window.show_all() - + def on_wmain_window_delete_event(self,b,e=None): - + ask = devede.ask.ask_window(self.paths) if (ask.run(_("Abort the current DVD and exit?"),_("Exit DeVeDe"))): Gtk.main_quit() return True + def on_add_title_clicked(self,b): + """ Creates a new title and adds it to the current project """ + + self.get_current_title() + + new_title = devede.title.title(self.wfiles,self.wliststore_files) + new_title.set_type(self.disc_type) + self.wliststore_titles.append([new_title.title_name, new_title]) + self.set_interface_status(None) + + def on_add_file_clicked(self,b): + + (element, position, model, treeiter) = self.get_current_title() + if (element == None): + return + + new_file = devede.file_movie.file_movie() + new_file.set_type(self.disc_type) + new_file.properties() + + if (new_file.file_name != None): + element.add_file(new_file) + self.set_interface_status(None) + + + def on_delete_title_clicked(self,b): + + (element, position, model, treeiter) = self.get_current_title() + if (element == None): + return + + ask_w = devede.ask.ask_window(self.paths) + if (ask_w.run(_("The title %(X)s will be removed.") % {"X":element.title_name},_("Delete title"))): + element.delete_title() + model.remove(treeiter) + self.set_interface_status(None) + + def on_delete_file_clicked(self,b): + + (element, position, model, treeiter) = self.get_current_file() + if (element == None): + return + + ask_w = devede.ask.ask_window(self.paths) + if (ask_w.run(_("The file %(X)s will be removed.") % {"X":element.file_name},_("Delete file"))): + element.delete_file() + model.remove(treeiter) + self.set_interface_status(None) + + def on_up_title_clicked(self,b): + + (element, position, model, treeiter) = self.get_current_title() + if (element == None) or (position == 0): + return + + last_element = self.wliststore_titles[position-1] + self.wliststore_titles.swap(last_element.iter,treeiter) + self.set_interface_status(None) + + def on_up_file_clicked(self,b): + + (element, position, model, treeiter) = self.get_current_file() + if (element == None) or (position == 0): + return + + last_element = self.wfiles.get_model()[position-1] + self.wfiles.get_model().swap(last_element.iter,treeiter) + self.set_interface_status(None) + + def on_down_title_clicked(self,b): + + (element, position, model, treeiter) = self.get_current_title() + if (element == None) or (position == (len(self.wliststore_titles)-1)): + return + + last_element = self.wliststore_titles[position+1] + self.wliststore_titles.swap(last_element.iter,treeiter) + self.set_interface_status(None) + + def on_down_file_clicked(self,b): + + (element, position, model, treeiter) = self.get_current_file() + if (element == None) or (position == (len(self.wfiles.get_model())-1)): + return + + last_element = self.wfiles.get_model()[position+1] + self.wfiles.get_model().swap(last_element.iter,treeiter) + self.set_interface_status(None) + def on_adjust_disc_usage_clicked(self,b): pass diff --git a/src/devede/title.py b/src/devede/title.py index d54800c..f71fc18 100644 --- a/src/devede/title.py +++ b/src/devede/title.py @@ -18,11 +18,11 @@ from gi.repository import Gtk,GObject class title(GObject.GObject): - + counter = 0 - + def __init__(self,file_treeview,original_liststore): - + GObject.GObject.__init__(self) self.file_treeview = file_treeview title.counter += 1 @@ -32,15 +32,19 @@ class title(GObject.GObject): columns.append(original_liststore.get_column_type(iterator)) self.files = Gtk.ListStore() self.files.set_column_types(columns) - + + def set_type(self,disc_type): + + self.disc_type = disc_type + def delete_title(self): - + print("Deleted title "+self.title_name) - + def refresh(self): - + self.file_treeview.set_model(self.files) - + def add_file(self,new_file): - + self.files.append([new_file.file_name, new_file]) diff --git a/src/devede_ng.py b/src/devede_ng.py index 9f76af1..a6d52eb 100755 --- a/src/devede_ng.py +++ b/src/devede_ng.py @@ -26,9 +26,9 @@ from gi.repository import Gtk import devede.project class config_paths: - + def __init__(self,is_local): - + if (is_local): # locales must be always at /usr/share/locale because Gtk.Builder always search there self.share_locale="/usr/share/locale" @@ -44,8 +44,8 @@ class config_paths: self.pic_path="/usr/share/devede_ng" self.other_path="/usr/share/devede_ng" self.help_path="/usr/share/doc/devede_ng" - - + + paths = None @@ -72,7 +72,7 @@ try: except locale.Error: pass gettext.textdomain('devede_ng') -gettext.install("devede_ng",localedir=paths.share_locale) +gettext.install("devede_ng",localedir=paths.share_locale) _ = gettext.gettext