Now doesn't use "titles" and "files" for DVDs, but "files" for everything

Started to implement the file properties
This commit is contained in:
Sergio Costas 2014-07-13 18:43:37 +02:00
parent d960322a5c
commit ae172c785f
7 changed files with 683 additions and 1279 deletions

View file

@ -3,7 +3,7 @@
<interface> <interface>
<requires lib="gtk+" version="3.10"/> <requires lib="gtk+" version="3.10"/>
<object class="GtkDialog" id="add_files"> <object class="GtkDialog" id="add_files">
<property name="width_request">640</property> <property name="width_request">740</property>
<property name="height_request">400</property> <property name="height_request">400</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="title" translatable="yes">Add new file(s)</property> <property name="title" translatable="yes">Add new file(s)</property>
@ -58,11 +58,6 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkFileChooserWidget" id="filechooserwidget1"> <object class="GtkFileChooserWidget" id="filechooserwidget1">
<property name="visible">True</property> <property name="visible">True</property>
@ -71,101 +66,6 @@
<property name="select_multiple">True</property> <property name="select_multiple">True</property>
<signal name="selection-changed" handler="on_filechooserwidget1_selection_changed" swapped="no"/> <signal name="selection-changed" handler="on_filechooserwidget1_selection_changed" swapped="no"/>
</object> </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="frame_options">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="left_padding">12</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkRadioButton" id="add_to_current_title">
<property name="label" translatable="yes">Add file(s) to the currently selected title</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<signal name="group-changed" handler="on_add_to_new_titles_toggled" swapped="no"/>
<signal name="toggled" handler="on_add_to_new_titles_toggled" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="add_to_new_titles">
<property name="label" translatable="yes">Add file(s) into its own new title</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">add_to_current_title</property>
<signal name="group-changed" handler="on_add_to_new_titles_toggled" swapped="no"/>
<signal name="toggled" handler="on_add_to_new_titles_toggled" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="use_filename_as_title">
<property name="label" translatable="yes">Use file name as title name</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="margin_left">20</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;b&gt;Extra options&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>

View file

@ -66,6 +66,8 @@
<property name="use_markup">True</property> <property name="use_markup">True</property>
<property name="justify">center</property> <property name="justify">center</property>
<property name="wrap">True</property> <property name="wrap">True</property>
<property name="wrap_mode">word-char</property>
<property name="ellipsize">start</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>

File diff suppressed because it is too large Load diff

View file

@ -30,18 +30,10 @@
</object> </object>
<object class="GtkListStore" id="liststore_files"> <object class="GtkListStore" id="liststore_files">
<columns> <columns>
<!-- column-name files -->
<column type="gchararray"/>
<!-- column-name files_element --> <!-- column-name files_element -->
<column type="GObject"/> <column type="GObject"/>
</columns> <!-- column-name files -->
</object>
<object class="GtkListStore" id="liststore_titles">
<columns>
<!-- column-name title -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name title_element -->
<column type="GObject"/>
</columns> </columns>
</object> </object>
<object class="GtkWindow" id="wmain_window"> <object class="GtkWindow" id="wmain_window">
@ -214,179 +206,6 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkFrame" id="frame_titles">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="left_padding">12</property>
<child>
<object class="GtkBox" id="box7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="titles">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore_titles</property>
<property name="headers_visible">False</property>
<property name="reorderable">True</property>
<property name="enable_search">False</property>
<property name="show_expanders">False</property>
<signal name="cursor-changed" handler="set_interface_status" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<property name="title" translatable="yes">Titles</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext2"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="add_title">
<property name="label">gtk-add</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<property name="image_position">top</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="on_add_title_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="delete_title">
<property name="label">gtk-remove</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<property name="image_position">top</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="on_delete_title_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="down_title">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<property name="image_position">top</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="on_down_title_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="up_title">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<property name="image_position">top</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="on_up_title_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="properties_title">
<property name="label">gtk-properties</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<property name="image_position">top</property>
<property name="always_show_image">True</property>
<signal name="clicked" handler="on_properties_title_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;b&gt;Titles&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child> <child>
<object class="GtkFrame" id="frame5"> <object class="GtkFrame" id="frame5">
<property name="visible">True</property> <property name="visible">True</property>
@ -416,10 +235,11 @@
<property name="headers_visible">False</property> <property name="headers_visible">False</property>
<property name="reorderable">True</property> <property name="reorderable">True</property>
<property name="enable_search">False</property> <property name="enable_search">False</property>
<property name="search_column">0</property>
<property name="show_expanders">False</property> <property name="show_expanders">False</property>
<signal name="cursor-changed" handler="set_interface_status" swapped="no"/> <signal name="cursor-changed" handler="set_interface_status" swapped="no"/>
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2"/> <object class="GtkTreeSelection" id="treeview-selection"/>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn" id="treeviewcolumn2"> <object class="GtkTreeViewColumn" id="treeviewcolumn2">
@ -427,7 +247,7 @@
<child> <child>
<object class="GtkCellRendererText" id="cellrenderertext3"/> <object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes> <attributes>
<attribute name="text">0</attribute> <attribute name="text">1</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
@ -522,6 +342,7 @@
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="image_position">top</property> <property name="image_position">top</property>
<property name="always_show_image">True</property> <property name="always_show_image">True</property>
<signal name="clicked" handler="on_properties_file_clicked" swapped="no"/>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -600,13 +421,6 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkFrame" id="frame1"> <object class="GtkFrame" id="frame1">
<property name="visible">True</property> <property name="visible">True</property>

View file

@ -45,30 +45,16 @@ class add_files:
self.wfile_chooser = builder.get_object("filechooserwidget1") self.wfile_chooser = builder.get_object("filechooserwidget1")
if (add_files.last_path != None): if (add_files.last_path != None):
self.wfile_chooser.set_current_folder(add_files.last_path) self.wfile_chooser.set_current_folder(add_files.last_path)
self.wadd_to_current_title = builder.get_object("add_to_current_title")
self.wadd_to_new_titles = builder.get_object("add_to_new_titles")
self.wuse_filename_as_title = builder.get_object("use_filename_as_title")
self.wbutton_accept = builder.get_object("button_accept") self.wbutton_accept = builder.get_object("button_accept")
woptions = builder.get_object("frame_options")
wadd_files.show_all() wadd_files.show_all()
if (self.show_title_options == False):
woptions.hide()
self.on_add_to_new_titles_toggled(None)
retval = wadd_files.run() retval = wadd_files.run()
self.files = None self.files = None
self.add_to_current_title = True
self.use_filename_as_title = False
if (retval == 2): if (retval == 2):
self.add_to_current_title = self.wadd_to_current_title.get_active()
self.use_filename_as_title = self.wuse_filename_as_title.get_active()
self.files = self.get_files() self.files = self.get_files()
print(self.files)
add_files.last_path = self.wfile_chooser.get_current_folder() add_files.last_path = self.wfile_chooser.get_current_folder()
wadd_files.destroy() wadd_files.destroy()
@ -93,7 +79,3 @@ class add_files:
self.wbutton_accept.set_sensitive(False) self.wbutton_accept.set_sensitive(False)
else: else:
self.wbutton_accept.set_sensitive(True) self.wbutton_accept.set_sensitive(True)
def on_add_to_new_titles_toggled(self,b):
self.wuse_filename_as_title.set_sensitive(self.wadd_to_new_titles.get_active())

View file

@ -15,7 +15,8 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/> # along with this program. If not, see <http://www.gnu.org/licenses/>
from gi.repository import GObject from gi.repository import Gtk,GObject
import os
class file_movie(GObject.GObject): class file_movie(GObject.GObject):
@ -26,15 +27,58 @@ class file_movie(GObject.GObject):
GObject.GObject.__init__(self) GObject.GObject.__init__(self)
self.config = config self.config = config
self.file_name = file_name self.file_name = file_name
self.title_name = os.path.splitext(os.path.basename(file_name))[0]
self.wfile_properties = None
self.model = None
self.treeiter = None
self.builder = None
def set_type(self,disc_type): def set_type(self,disc_type = None):
if (disc_type != None):
self.disc_type = disc_type self.disc_type = disc_type
def delete_file(self): def delete_file(self):
print("Deleted file "+self.file_name) print("Deleted file "+self.file_name)
def properties(self): def properties(self,model,treeiter):
if (self.wfile_properties != None):
self.wfile_properties.present()
return
self.model = model
self.treeiter = treeiter
self.builder = Gtk.Builder()
self.builder.set_translation_domain(self.config.gettext_domain)
self.builder.add_from_file(os.path.join(self.config.glade,"wfile_properties.ui"))
self.builder.connect_signals(self)
self.wfile_properties = self.builder.get_object("file_properties")
self.wfile_properties.show_all()
self.wfile = self.builder.get_object("label_filename")
self.wtitle = self.builder.get_object("entry_title")
self.wfile.set_text(self.file_name)
self.wtitle.set_text(self.title_name)
def on_button_accept_clicked(self,b):
self.title_name = self.wtitle.get_text()
self.model.set_value(self.treeiter,1,self.title_name)
self.on_button_cancel_clicked(None)
def on_button_cancel_clicked(self,b):
self.wfile_properties.destroy()
self.wfile_properties = None
self.builder = None
self.model = None
self.treeiter = None
file_movie.counter2 += 1

View file

@ -18,7 +18,6 @@
from gi.repository import Gtk from gi.repository import Gtk
import os import os
import devede.title
import devede.file_movie import devede.file_movie
import devede.ask import devede.ask
import devede.add_files import devede.add_files
@ -35,21 +34,14 @@ class devede_project:
self.wask_window = None self.wask_window = None
self.wmain_window = None self.wmain_window = None
self.wframe_titles = None
self.wdisc_size = None self.wdisc_size = None
self.wliststore_files = None self.wliststore_files = None
self.wliststore_titles = None
self.wfiles = None self.wfiles = None
self.wtitles = None
self.wdisc_fill_level = None self.wdisc_fill_level = None
self.wuse_pal = None self.wuse_pal = None
self.wuse_ntsc = None self.wuse_ntsc = None
self.wcreate_menu = None self.wcreate_menu = None
self.disc_type = None self.disc_type = None
self.wdelete_title = None
self.wup_title = None
self.wdown_title = None
self.wproperties_title = None
self.wadd_file = None self.wadd_file = None
self.wdelete_file = None self.wdelete_file = None
self.wup_file = None self.wup_file = None
@ -57,8 +49,6 @@ class devede_project:
self.wproperties_file = None self.wproperties_file = None
self.wcreate_disc = None self.wcreate_disc = None
devede.title.counter = 0
def ask_type(self): def ask_type(self):
""" This method resets the project and asks the user what kind of project want to do """ """ This method resets the project and asks the user what kind of project want to do """
@ -115,40 +105,10 @@ class devede_project:
# Set the default disc size # Set the default disc size
if (self.disc_type == "dvd"): if (self.disc_type == "dvd"):
self.wdisc_size.set_active(1) # 4.7 GB DVD self.wdisc_size.set_active(1) # 4.7 GB DVD
self.wframe_titles.show()
else: else:
self.wdisc_size.set_active(3) # 700 MB CD self.wdisc_size.set_active(3) # 700 MB CD
self.wframe_titles.hide()
# create a new title
self.on_add_title_clicked(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
for row in self.wliststore_titles:
item = row.model[row.iter][1]
if element == item:
break
position += 1
return ( (element, position, model, treeiter) )
else:
# If there is no selection, try to select the first one if exists
try:
first = self.wliststore_titles[0]
selection.select_iter(first.iter)
return ( (first.model[first.iter][1], 0, first.model, first.iter) )
except:
return ( (None, -1, None, None) )
def get_current_file(self): def get_current_file(self):
""" returns the currently selected file """ """ returns the currently selected file """
@ -157,10 +117,10 @@ class devede_project:
model, treeiter = selection.get_selected() model, treeiter = selection.get_selected()
if treeiter != None: if treeiter != None:
element = model[treeiter][1] element = model[treeiter][0]
position = 0 position = 0
for row in self.wfiles.get_model(): for row in self.wfiles.get_model():
item = row.model[row.iter][1] item = row.model[row.iter][0]
if element == item: if element == item:
break break
position += 1 position += 1
@ -172,12 +132,6 @@ class devede_project:
def set_interface_status(self,b): def set_interface_status(self,b):
self.wadd_title.set_sensitive(True)
self.wdelete_title.set_sensitive(True)
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.wadd_file.set_sensitive(True)
self.wdelete_file.set_sensitive(True) self.wdelete_file.set_sensitive(True)
self.wup_file.set_sensitive(True) self.wup_file.set_sensitive(True)
@ -185,36 +139,8 @@ class devede_project:
self.wproperties_file.set_sensitive(True) self.wproperties_file.set_sensitive(True)
self.wpreview_file.set_sensitive(True) self.wpreview_file.set_sensitive(True)
self.wcreate_disc.set_sensitive(True) (element, position, model, treeiter) = self.get_current_file()
(element, position, model, treeiter) = self.get_current_title()
if (self.current_title != element):
self.current_title = element
element.refresh()
if (element == None): if (element == None):
self.wdelete_title.set_sensitive(False)
self.wup_title.set_sensitive(False)
self.wdown_title.set_sensitive(False)
self.wproperties_title.set_sensitive(False)
self.wadd_file.set_sensitive(False)
self.wdelete_file.set_sensitive(False)
self.wup_file.set_sensitive(False)
self.wdown_file.set_sensitive(False)
self.wproperties_file.set_sensitive(False)
self.wpreview_file.set_sensitive(False)
else:
ntitles = len(self.wliststore_titles)
if (ntitles < 2):
self.wdelete_title.set_sensitive(False)
if (position == 0):
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) self.wdelete_file.set_sensitive(False)
self.wup_file.set_sensitive(False) self.wup_file.set_sensitive(False)
self.wdown_file.set_sensitive(False) self.wdown_file.set_sensitive(False)
@ -224,9 +150,9 @@ class devede_project:
nfiles = len(self.wfiles.get_model()) nfiles = len(self.wfiles.get_model())
if (nfiles < 1): if (nfiles < 1):
self.wdelete_file.set_sensitive(False) self.wdelete_file.set_sensitive(False)
if (position2 == 0): if (position == 0):
self.wup_file.set_sensitive(False) self.wup_file.set_sensitive(False)
if (position2 == (nfiles-1)): if (position == (nfiles-1)):
self.wdown_file.set_sensitive(False) self.wdown_file.set_sensitive(False)
@ -248,20 +174,13 @@ class devede_project:
self.wmain_window = builder.get_object("wmain_window") self.wmain_window = builder.get_object("wmain_window")
self.wdisc_size = builder.get_object("disc_size") self.wdisc_size = builder.get_object("disc_size")
self.wliststore_files = builder.get_object("liststore_files") self.wliststore_files = builder.get_object("liststore_files")
self.wliststore_titles = builder.get_object("liststore_titles")
self.wfiles = builder.get_object("files") self.wfiles = builder.get_object("files")
self.wtitles = builder.get_object("titles")
self.wdisc_fill_level = builder.get_object("disc_fill_level") self.wdisc_fill_level = builder.get_object("disc_fill_level")
self.wuse_pal = builder.get_object("use_pal") self.wuse_pal = builder.get_object("use_pal")
self.wuse_ntsc = builder.get_object("use_ntsc") self.wuse_ntsc = builder.get_object("use_ntsc")
self.wcreate_menu = builder.get_object("create_menu") self.wcreate_menu = builder.get_object("create_menu")
self.wframe_titles = builder.get_object("frame_titles") 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")
self.wdown_title = builder.get_object("down_title")
self.wproperties_title = builder.get_object("properties_title")
self.wadd_file = builder.get_object("add_file") self.wadd_file = builder.get_object("add_file")
self.wdelete_file = builder.get_object("delete_file") self.wdelete_file = builder.get_object("delete_file")
self.wup_file = builder.get_object("up_file") self.wup_file = builder.get_object("up_file")
@ -273,10 +192,9 @@ class devede_project:
selection = self.wfiles.get_selection() selection = self.wfiles.get_selection()
selection.mode = Gtk.SelectionMode.SINGLE selection.mode = Gtk.SelectionMode.SINGLE
selection = self.wtitles.get_selection()
selection.mode = Gtk.SelectionMode.SINGLE
self.wmain_window.show_all() self.wmain_window.show_all()
self.set_interface_status(None)
def on_wmain_window_delete_event(self,b,e=None): def on_wmain_window_delete_event(self,b,e=None):
@ -285,54 +203,18 @@ class devede_project:
Gtk.main_quit() Gtk.main_quit()
return True 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.config,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): def on_add_file_clicked(self,b):
(element, position, model, treeiter) = self.get_current_title()
if (element == None):
return
ask_files = devede.add_files.add_files(self.config) ask_files = devede.add_files.add_files(self.config)
ask_files.set_type(self.disc_type) ask_files.set_type(self.disc_type)
if (ask_files.run()): if (ask_files.run()):
for efile in ask_files.files: for efile in ask_files.files:
new_file = devede.file_movie.file_movie(self.config,efile) new_file = devede.file_movie.file_movie(self.config,efile)
new_file.set_type(self.disc_type) new_file.set_type(self.disc_type)
if (ask_files.add_to_current_title): self.wliststore_files.append([new_file, new_file.title_name])
element.add_file(new_file)
else:
if (ask_files.use_filename_as_title):
filename = os.path.splitext(os.path.basename(efile))[0]
new_title = devede.title.title(self.config,self.wfiles,self.wliststore_files,filename)
else:
new_title = devede.title.title(self.config,self.wfiles,self.wliststore_files)
new_title.set_type(self.disc_type)
self.wliststore_titles.append([new_title.title_name, new_title])
new_title.add_file(new_file)
self.set_interface_status(None) 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.config)
if (ask_w.run(_("The title <b>%(X)s</b> 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): def on_delete_file_clicked(self,b):
(element, position, model, treeiter) = self.get_current_file() (element, position, model, treeiter) = self.get_current_file()
@ -340,21 +222,11 @@ class devede_project:
return return
ask_w = devede.ask.ask_window(self.config) ask_w = devede.ask.ask_window(self.config)
if (ask_w.run(_("The file <b>%(X)s</b> will be removed.") % {"X":element.file_name},_("Delete file"))): if (ask_w.run(_("The file <b>%(X)s</b> <i>(%(Y)s)</i> will be removed.") % {"X":element.title_name, "Y":element.file_name},_("Delete file"))):
element.delete_file() element.delete_file()
model.remove(treeiter) model.remove(treeiter)
self.set_interface_status(None) 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): def on_up_file_clicked(self,b):
(element, position, model, treeiter) = self.get_current_file() (element, position, model, treeiter) = self.get_current_file()
@ -365,16 +237,6 @@ class devede_project:
self.wfiles.get_model().swap(last_element.iter,treeiter) self.wfiles.get_model().swap(last_element.iter,treeiter)
self.set_interface_status(None) 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): def on_down_file_clicked(self,b):
(element, position, model, treeiter) = self.get_current_file() (element, position, model, treeiter) = self.get_current_file()
@ -385,13 +247,12 @@ class devede_project:
self.wfiles.get_model().swap(last_element.iter,treeiter) self.wfiles.get_model().swap(last_element.iter,treeiter)
self.set_interface_status(None) self.set_interface_status(None)
def on_properties_title_clicked(self,b): def on_properties_file_clicked(self,b):
(element, position, model, treeiter) = self.get_current_title() (element, position, model, treeiter) = self.get_current_file()
if (element == None) or (position == (len(self.wfiles.get_model())-1)): if (element == None):
return return
element.properties() element.properties(model,treeiter)
self.wliststore_titles.set_value(treeiter,0,element.title_name)
def on_adjust_disc_usage_clicked(self,b): def on_adjust_disc_usage_clicked(self,b):