Now allows to add subtitles to the list
Added the new pictures for scaling
This commit is contained in:
parent
581cf07458
commit
0d6d0bd152
17 changed files with 1262 additions and 692 deletions
99
src/devede/ask_subtitles.py
Normal file
99
src/devede/ask_subtitles.py
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
# 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 <http://www.gnu.org/licenses/>
|
||||
|
||||
from gi.repository import Gtk
|
||||
import os
|
||||
import devede.configuration_data
|
||||
|
||||
class ask_subtitles:
|
||||
|
||||
def __init__(self):
|
||||
|
||||
self.config = devede.configuration_data.configuration.get_config()
|
||||
|
||||
def run(self):
|
||||
|
||||
builder = Gtk.Builder()
|
||||
builder.set_translation_domain(self.config.gettext_domain)
|
||||
|
||||
builder.add_from_file(os.path.join(self.config.glade,"wask_subtitles.ui"))
|
||||
builder.connect_signals(self)
|
||||
wask_window = builder.get_object("ask_subtitles")
|
||||
self.wfilename = builder.get_object("subtitle_file")
|
||||
self.waccept = builder.get_object("accept")
|
||||
wlist_encodings = builder.get_object("list_encodings")
|
||||
wlist_languages = builder.get_object("list_languages")
|
||||
wencoding = builder.get_object("encoding_l")
|
||||
wlanguage = builder.get_object("language_l")
|
||||
|
||||
lang_selection = 0
|
||||
enc_selection = 0
|
||||
|
||||
self.language = None
|
||||
self.encoding = None
|
||||
self.put_upper = False
|
||||
self.filename = None
|
||||
|
||||
counter = 0
|
||||
encodings = open(os.path.join(self.config.other_path,"codepages.lst"))
|
||||
for element in encodings:
|
||||
element = element.strip()
|
||||
if (element == self.config.sub_codepage):
|
||||
enc_selection = counter
|
||||
wlist_encodings.append([element])
|
||||
counter += 1
|
||||
encodings.close()
|
||||
|
||||
counter = 0
|
||||
languages = open(os.path.join(self.config.other_path,"languages.lst"))
|
||||
for element in languages:
|
||||
element = element.strip()
|
||||
if (element == self.config.sub_language):
|
||||
lang_selection = counter
|
||||
wlist_languages.append([element])
|
||||
counter += 1
|
||||
languages.close()
|
||||
|
||||
|
||||
wencoding.set_active(enc_selection)
|
||||
wlanguage.set_active(lang_selection)
|
||||
|
||||
wask_window.show_all()
|
||||
self.on_subtitle_file_set(None)
|
||||
retval = wask_window.run()
|
||||
if (retval == 2): # accept
|
||||
self.put_upper = builder.get_object("put_subtitles_upper").get_active()
|
||||
self.config.sub_codepage = wencoding.get_active_id()
|
||||
self.config.sub_language = wlanguage.get_active_id()
|
||||
self.encoding = wencoding.get_active_id()
|
||||
self.language = wlanguage.get_active_id()[:2]
|
||||
self.filename = self.wfilename.get_filename()
|
||||
|
||||
wask_window.destroy()
|
||||
if (retval == 2):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def on_subtitle_file_set(self,b):
|
||||
|
||||
f = self.wfilename.get_filename()
|
||||
if (f == None) or (f == ""):
|
||||
self.waccept.set_sensitive(False)
|
||||
else:
|
||||
self.waccept.set_sensitive(True)
|
||||
|
|
@ -86,6 +86,8 @@ class configuration(GObject.GObject):
|
|||
self.film_converter = None
|
||||
self.menu_converter = None
|
||||
self.subtitles_font_size = 28
|
||||
self.sub_language = None
|
||||
self.sub_codepage = None
|
||||
|
||||
config_path = os.path.join(os.environ.get("HOME"),".devede")
|
||||
try:
|
||||
|
|
@ -176,6 +178,10 @@ class configuration(GObject.GObject):
|
|||
config_data.write("film_converter:"+str(self.film_converter)+"\n")
|
||||
if (self.menu_converter != None):
|
||||
config_data.write("menu_converter:"+str(self.menu_converter)+"\n")
|
||||
if (self.sub_codepage != None):
|
||||
config_data.write("sub_codepage:"+str(self.sub_codepage)+"\n")
|
||||
if (self.sub_language != None):
|
||||
config_data.write("sub_language:"+str(self.sub_language)+"\n")
|
||||
config_data.write("subtitle_font_size:"+str(self.subtitles_font_size)+"\n")
|
||||
config_data.close()
|
||||
except:
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import os
|
|||
import devede.configuration_data
|
||||
import devede.interface_manager
|
||||
import devede.converter
|
||||
import devede.ask_subtitles
|
||||
|
||||
class file_movie(devede.interface_manager.interface_manager):
|
||||
|
||||
|
|
@ -180,6 +181,10 @@ class file_movie(devede.interface_manager.interface_manager):
|
|||
self.wframe_audio_rate = self.builder.get_object("frame_audio_rate")
|
||||
self.wframe_division_chapters = self.builder.get_object("frame_division_chapters")
|
||||
|
||||
# elements in page SUBTITLES
|
||||
self.wsubtitles_list = self.builder.get_object("subtitles_list")
|
||||
self.wdel_subtitles = self.builder.get_object("del_subtitles")
|
||||
|
||||
# elements in page VIDEO OPTIONS
|
||||
self.wsize_1920x1080 = self.builder.get_object("size_1920x1080")
|
||||
self.wsize_1280x720 = self.builder.get_object("size_1280x720")
|
||||
|
|
@ -187,6 +192,10 @@ class file_movie(devede.interface_manager.interface_manager):
|
|||
self.wsize_1280x720_ntsc = self.builder.get_object("size_1280x720_ntsc")
|
||||
self.wframe_final_size = self.builder.get_object("frame_final_size")
|
||||
self.wframe_aspect_ratio = self.builder.get_object("frame_aspect_ratio")
|
||||
self.waspect_classic = self.builder.get_object("aspect_classic")
|
||||
self.wadd_black_bars_pic = self.builder.get_object("add_black_bars_pic")
|
||||
self.wscale_picture_pic = self.builder.get_object("scale_picture_pic")
|
||||
self.wcut_picture_pic = self.builder.get_object("cut_picture_pic")
|
||||
|
||||
# elements in page AUDIO
|
||||
self.wsound5_1 = self.builder.get_object("sound5_1")
|
||||
|
|
@ -244,6 +253,19 @@ class file_movie(devede.interface_manager.interface_manager):
|
|||
self.wnotebook.remove_page(5)
|
||||
|
||||
self.update_ui(self.builder)
|
||||
self.on_aspect_classic_toggled(None)
|
||||
|
||||
def on_aspect_classic_toggled(self,b):
|
||||
|
||||
status = self.waspect_classic.get_active()
|
||||
if (status):
|
||||
self.wadd_black_bars_pic.set_from_file(os.path.join(self.config.pic_path,"to_classic_blackbars.png"))
|
||||
self.wcut_picture_pic.set_from_file(os.path.join(self.config.pic_path,"to_classic_cut.png"))
|
||||
self.wscale_picture_pic.set_from_file(os.path.join(self.config.pic_path,"to_classic_scale.png"))
|
||||
else:
|
||||
self.wadd_black_bars_pic.set_from_file(os.path.join(self.config.pic_path,"to_wide_blackbars.png"))
|
||||
self.wcut_picture_pic.set_from_file(os.path.join(self.config.pic_path,"to_wide_cut.png"))
|
||||
self.wscale_picture_pic.set_from_file(os.path.join(self.config.pic_path,"to_wide_scale.png"))
|
||||
|
||||
def on_button_accept_clicked(self,b):
|
||||
|
||||
|
|
@ -256,3 +278,9 @@ class file_movie(devede.interface_manager.interface_manager):
|
|||
self.wfile_properties.destroy()
|
||||
self.wfile_properties = None
|
||||
self.builder = None
|
||||
|
||||
def on_add_subtitles_clicked(self,b):
|
||||
|
||||
subt = devede.ask_subtitles.ask_subtitles()
|
||||
if (subt.run()):
|
||||
self.wsubtitles_list.append([subt.filename, subt.encoding, subt.language, subt.put_upper])
|
||||
|
|
@ -278,6 +278,11 @@ class interface_manager(GObject.GObject):
|
|||
for element in self.interface_lists:
|
||||
exec('self.'+element+' = []')
|
||||
the_liststore = builder.get_object(element)
|
||||
ncolumns = the_liststore.get_n_columns()
|
||||
for row in the_liststore:
|
||||
exec('self.'+element+'.append(row.model[row.iter])')
|
||||
final_row = []
|
||||
for c in range(0,ncolumns):
|
||||
final_row.append(row.model[row.iter][c])
|
||||
print (final_row)
|
||||
exec('self.'+element+'.append(final_row)')
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue