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>
<requires lib="gtk+" version="3.10"/>
<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="can_focus">False</property>
<property name="title" translatable="yes">Add new file(s)</property>
@ -59,112 +59,12 @@
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<object class="GtkFileChooserWidget" id="filechooserwidget1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkFileChooserWidget" id="filechooserwidget1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="create_folders">False</property>
<property name="select_multiple">True</property>
<signal name="selection-changed" handler="on_filechooserwidget1_selection_changed" swapped="no"/>
</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>
<property name="create_folders">False</property>
<property name="select_multiple">True</property>
<signal name="selection-changed" handler="on_filechooserwidget1_selection_changed" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>

View file

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

File diff suppressed because it is too large Load diff

View file

@ -30,18 +30,10 @@
</object>
<object class="GtkListStore" id="liststore_files">
<columns>
<!-- column-name files -->
<column type="gchararray"/>
<!-- column-name files_element -->
<column type="GObject"/>
</columns>
</object>
<object class="GtkListStore" id="liststore_titles">
<columns>
<!-- column-name title -->
<!-- column-name files -->
<column type="gchararray"/>
<!-- column-name title_element -->
<column type="GObject"/>
</columns>
</object>
<object class="GtkWindow" id="wmain_window">
@ -215,152 +207,91 @@
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<object class="GtkFrame" id="frame5">
<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="GtkFrame" id="frame_titles">
<object class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<property name="left_padding">12</property>
<child>
<object class="GtkAlignment" id="alignment4">
<object class="GtkBox" id="box8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="left_padding">12</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="box7">
<object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow1">
<object class="GtkTreeView" id="files">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<property name="model">liststore_files</property>
<property name="headers_visible">False</property>
<property name="reorderable">True</property>
<property name="enable_search">False</property>
<property name="search_column">0</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="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>
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
<property name="title" translatable="yes">column</property>
<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>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
<attribute name="text">1</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="box10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="add_file">
<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_file_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box9">
<object class="GtkButton" id="delete_file">
<property name="label">gtk-remove</property>
<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>
<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_file_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@ -368,237 +299,120 @@
<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>
<object class="GtkFrame" id="frame5">
<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="alignment5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="left_padding">12</property>
<child>
<object class="GtkBox" id="box8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow2">
<object class="GtkButton" id="down_file">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="files">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore_files</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-selection2"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
<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_file_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box10">
<object class="GtkButton" id="up_file">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">False</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_file_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_file">
<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_file_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="preview_file">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="yalign">0.4699999988079071</property>
<property name="image_position">top</property>
<child>
<object class="GtkButton" id="add_file">
<property name="label">gtk-add</property>
<object class="GtkBox" id="box11">
<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_file_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_file">
<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_file_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_file">
<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_file_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_file">
<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_file_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_file">
<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>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="preview_file">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="yalign">0.4699999988079071</property>
<property name="image_position">top</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="box11">
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">video-display</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Preview</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<property name="icon_name">video-display</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Preview</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;b&gt;Files&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">1</property>
</packing>
</child>
<child type="label">
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;b&gt;Files&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>

View file

@ -45,30 +45,16 @@ class add_files:
self.wfile_chooser = builder.get_object("filechooserwidget1")
if (add_files.last_path != None):
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")
woptions = builder.get_object("frame_options")
wadd_files.show_all()
if (self.show_title_options == False):
woptions.hide()
self.on_add_to_new_titles_toggled(None)
retval = wadd_files.run()
self.files = None
self.add_to_current_title = True
self.use_filename_as_title = False
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()
print(self.files)
add_files.last_path = self.wfile_chooser.get_current_folder()
wadd_files.destroy()
@ -93,7 +79,3 @@ class add_files:
self.wbutton_accept.set_sensitive(False)
else:
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
# 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):
@ -26,15 +27,58 @@ class file_movie(GObject.GObject):
GObject.GObject.__init__(self)
self.config = config
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):
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
import os
import devede.title
import devede.file_movie
import devede.ask
import devede.add_files
@ -35,21 +34,14 @@ class devede_project:
self.wask_window = None
self.wmain_window = None
self.wframe_titles = None
self.wdisc_size = None
self.wliststore_files = None
self.wliststore_titles = None
self.wfiles = None
self.wtitles = None
self.wdisc_fill_level = None
self.wuse_pal = None
self.wuse_ntsc = None
self.wcreate_menu = 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.wdelete_file = None
self.wup_file = None
@ -57,8 +49,6 @@ class devede_project:
self.wproperties_file = None
self.wcreate_disc = None
devede.title.counter = 0
def ask_type(self):
""" 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
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 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):
""" returns the currently selected file """
@ -157,10 +117,10 @@ class devede_project:
model, treeiter = selection.get_selected()
if treeiter != None:
element = model[treeiter][1]
element = model[treeiter][0]
position = 0
for row in self.wfiles.get_model():
item = row.model[row.iter][1]
item = row.model[row.iter][0]
if element == item:
break
position += 1
@ -172,12 +132,6 @@ class devede_project:
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.wdelete_file.set_sensitive(True)
self.wup_file.set_sensitive(True)
@ -185,36 +139,8 @@ class devede_project:
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()
(element, position, model, treeiter) = self.get_current_file()
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.wup_file.set_sensitive(False)
self.wdown_file.set_sensitive(False)
@ -224,9 +150,9 @@ class devede_project:
nfiles = len(self.wfiles.get_model())
if (nfiles < 1):
self.wdelete_file.set_sensitive(False)
if (position2 == 0):
if (position == 0):
self.wup_file.set_sensitive(False)
if (position2 == (nfiles-1)):
if (position == (nfiles-1)):
self.wdown_file.set_sensitive(False)
@ -248,20 +174,13 @@ class devede_project:
self.wmain_window = builder.get_object("wmain_window")
self.wdisc_size = builder.get_object("disc_size")
self.wliststore_files = builder.get_object("liststore_files")
self.wliststore_titles = builder.get_object("liststore_titles")
self.wfiles = builder.get_object("files")
self.wtitles = builder.get_object("titles")
self.wdisc_fill_level = builder.get_object("disc_fill_level")
self.wuse_pal = builder.get_object("use_pal")
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")
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.wdelete_file = builder.get_object("delete_file")
self.wup_file = builder.get_object("up_file")
@ -273,10 +192,9 @@ class devede_project:
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()
self.set_interface_status(None)
def on_wmain_window_delete_event(self,b,e=None):
@ -285,54 +203,18 @@ class devede_project:
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.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):
(element, position, model, treeiter) = self.get_current_title()
if (element == None):
return
ask_files = devede.add_files.add_files(self.config)
ask_files.set_type(self.disc_type)
if (ask_files.run()):
for efile in ask_files.files:
new_file = devede.file_movie.file_movie(self.config,efile)
new_file.set_type(self.disc_type)
if (ask_files.add_to_current_title):
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.wliststore_files.append([new_file, new_file.title_name])
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):
(element, position, model, treeiter) = self.get_current_file()
@ -340,21 +222,11 @@ class devede_project:
return
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()
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()
@ -365,16 +237,6 @@ class devede_project:
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()
@ -385,13 +247,12 @@ class devede_project:
self.wfiles.get_model().swap(last_element.iter,treeiter)
self.set_interface_status(None)
def on_properties_title_clicked(self,b):
(element, position, model, treeiter) = self.get_current_title()
if (element == None) or (position == (len(self.wfiles.get_model())-1)):
def on_properties_file_clicked(self,b):
(element, position, model, treeiter) = self.get_current_file()
if (element == None):
return
element.properties()
self.wliststore_titles.set_value(treeiter,0,element.title_name)
element.properties(model,treeiter)
def on_adjust_disc_usage_clicked(self,b):