Exemplo n.º 1
0
 def __init__(self, parent, text):
     self._text = text
     self.encoding = None
     
     self._builder = Gtk.Builder()
     glade_file = Resources.find(path.join('data', 'gui', 'glade',
                                           'encoding_dialog.glade'))
     self._builder.add_from_file(glade_file)
     self._dialog = self._builder.get_object('encoding_dialog')
     self._dialog.set_transient_for(parent)
     self._builder.connect_signals(self)
     self._text_content = self._builder.get_object('text_content')
     self._store_encoding = self._builder.get_object('store_encoding')
     
     encodings = sorted(TextFile.get_available_encodings_with_title(),
                        key=itemgetter(0))
     
     # Test which encoding can be used to decode the text-file and
     # add those encodings to the combo box.
     for encoding in encodings:
         try:
             self._text.decode(encoding[1])
             # decode successfull --> add to list
             self._store_encoding.append(encoding)
         except UnicodeDecodeError:
             continue
Exemplo n.º 2
0
    def __init__(self, parent):
        self._builder = Gtk.Builder()
        glade_file = Resources.find(path.join("data", "gui", "glade", "change_fps_dialog.glade"))
        self._builder.add_from_file(glade_file)
        self._dialog = self._builder.get_object("change_fps_dialog")
        self._dialog.set_transient_for(parent)
        grid_main = self._builder.get_object("grid_main")

        self._adj_fps_from = self._builder.get_object("adj_fps_from")
        self._adj_fps_to = self._builder.get_object("adj_fps_to")

        self.fps_from = 23.976216
        self.fps_to = 25.000

        self._adj_fps_from.set_value(self.fps_from)
        self._adj_fps_to.set_value(self.fps_to)

        self._spin_fps_from = SpinEntry()
        self._spin_fps_from.set_adjustment(self._adj_fps_from)
        grid_main.attach(self._spin_fps_from, 1, 0, 1, 1)
        self._spin_fps_from.show()

        self._spin_fps_to = SpinEntry()
        self._spin_fps_to.set_adjustment(self._adj_fps_to)
        self._spin_fps_to.set_hexpand(True)
        grid_main.attach(self._spin_fps_to, 1, 1, 1, 1)
        self._spin_fps_to.show()
Exemplo n.º 3
0
    def __init__(self, parent, script_file):
        self._script_file = script_file
        self._submod = None
        self._cuts = None
        
        builder = Gtk.Builder()
        glade_file = Resources.find(path.join('data', 'gui', 'glade',
                                              'script_run_dialog.glade'))
        builder.add_from_file(glade_file)
        self._dialog = builder.get_object('script_run_dialog')
        self._dialog.set_transient_for(parent)
        builder.connect_signals(self)

        self._spin_loading_submod = builder.get_object('spin_loading_submod')
        self._img_loading_submod = builder.get_object('img_loading_submod')
        self._spin_loading_cutlist = builder.get_object('spin_loading_cutlist')
        self._img_loading_cutlist = builder.get_object('img_loading_cutlist')
        self._spin_loading_subtitle = builder.get_object(
                                                        'spin_loading_subtitle')
        self._img_loading_subtitle = builder.get_object('img_loading_subtitle')
        self._spin_running_submod = builder.get_object('spin_running_submod')
        self._img_running_submod = builder.get_object('img_running_submod')
        self._spin_saving_subtitle = builder.get_object('spin_saving_subtitle')
        self._img_saving_subtitle = builder.get_object('img_saving_subtitle')
        self._scroll_log = builder.get_object('scroll_log')
        self._txt_log = builder.get_object('txt_log')
        self._btn_close = builder.get_object('btn_close')
        
        self._step_icons = [
            self._spin_loading_submod, self._img_loading_submod,
            self._spin_loading_cutlist, self._img_loading_cutlist,
            self._spin_loading_subtitle, self._img_loading_subtitle,
            self._spin_running_submod, self._img_running_submod,
            self._spin_saving_subtitle, self._img_saving_subtitle
        ]
Exemplo n.º 4
0
 def __init__(self, parent, title, enable_encoding_selection=False):
     self._enable_encoding_selection = enable_encoding_selection
     self.encoding = None
     
     self._builder = Gtk.Builder()
     glade_file = Resources.find(path.join('data', 'gui', 'glade',
                                           'ext_file_chooser_dialog.glade'))
     self._builder.add_from_file(glade_file)
     self._dialog = self._builder.get_object('filechooserdialog')
     self._dialog.set_transient_for(parent)
     self._dialog.set_title(title)
     self._builder.connect_signals(self)
     self._box_encoding = self._builder.get_object('box_encoding')
     self._combo_encoding = self._builder.get_object('combo_encoding')
     self._store_encoding = self._builder.get_object('store_encoding')
     
     if not enable_encoding_selection:
         self._box_encoding.hide()
     
     self._combo_encoding.set_row_separator_func(self._is_separator, None)
     
     encodings = sorted(TextFile.get_available_encodings_with_title(),
                                                         key=itemgetter(0))
     
     self._store_encoding.append([_('Detect automatically'), None])
     self._store_encoding.append(['-', None])
     for encoding in encodings:
         self._store_encoding.append(encoding)
         
     self._combo_encoding.set_active(0)
Exemplo n.º 5
0
 def __init__(self, parent):
     self._builder = Gtk.Builder()
     gui_folder = Resources.find(path.join('data', 'gui'))
     self._builder.add_from_file(path.join(gui_folder, 'glade',
                                           'about_dialog.glade'))
     self._dialog = self._builder.get_object('about_dialog')
     logo_pixbuf = GdkPixbuf.Pixbuf.new_from_file(path.join(gui_folder,
                                                  'logo', 'logo-about.png'))
     self._dialog.set_logo(logo_pixbuf)
     self._dialog.set_transient_for(parent)
Exemplo n.º 6
0
    def __init__(self, parent, subtitle_list):
        self._subtitle_list = subtitle_list
        
        self._builder = Gtk.Builder()
        glade_file = Resources.find(path.join('data', 'gui', 'glade',
                                              'format_check_dialog.glade'))
        self._builder.add_from_file(glade_file)
        self._dialog = self._builder.get_object('format_check_dialog')
        self._dialog.set_transient_for(parent)
        self._builder.connect_signals(self)
        self._tree_subtitles_old = self._builder.get_object(
                                                           'tree_subtitles_old')
        self._tree_subtitles_new = self._builder.get_object(
                                                           'tree_subtitles_new')
        self._selection_subtitle_old = self._builder.get_object(
                                                       'selection_subtitle_old')
        self._selection_subtitle_new = self._builder.get_object(
                                                       'selection_subtitle_new')

        self._subtitle_list_model_old = SubtitleListTreeModel(subtitle_list,
                                                      self._on_subtitle_changed,
                                                      True)
        self._subtitle_list_model_new = SubtitleListTreeModel(subtitle_list,
                                                      self._on_subtitle_changed)
        self._tree_subtitles_old.set_model(self._subtitle_list_model_old)
        self._tree_subtitles_new.set_model(self._subtitle_list_model_new)

        # The start/end time should be displayed as hh:mm:ss.iii
        # TODO same as in main_window --> outsource
        cellrenderer_start_new = self._builder.get_object(
                                                       'cellrenderer_start_new')
        column_start_new = self._builder.get_object('column_start_new')
        column_start_new.set_cell_data_func(cellrenderer_start_new,
                                        self._format_start_time_column)

        cellrenderer_end_new = self._builder.get_object('cellrenderer_end_new')
        column_end_new = self._builder.get_object('column_end_new')
        column_end_new.set_cell_data_func(cellrenderer_end_new,
                                      self._format_end_time_column)

        cellrenderer_start_old = self._builder.get_object(
                                                       'cellrenderer_start_old')
        column_start_old = self._builder.get_object('column_start_old')
        column_start_old.set_cell_data_func(cellrenderer_start_old,
                                        self._format_start_time_column)

        cellrenderer_end_old = self._builder.get_object('cellrenderer_end_old')
        column_end_old = self._builder.get_object('column_end_old')
        column_end_old.set_cell_data_func(cellrenderer_end_old,
                                      self._format_end_time_column)
Exemplo n.º 7
0
    def __init__(self, parent, subtitle, edit=False, allow_edit_time=True):
        self.subtitle = subtitle
        
        self._builder = Gtk.Builder()
        glade_file = Resources.find(path.join('data', 'gui', 'glade',
                                              'subtitle_dialog.glade'))
        self._builder.add_from_file(glade_file)
        self._builder.connect_signals(self)
        self._dialog = self._builder.get_object('subtitle_dialog')
        self._dialog.set_transient_for(parent)
        grid_main = self._builder.get_object('grid_main')
        
        self._txt_text = self._builder.get_object('txt_text')
        self._txt_text.get_buffer().set_text(self.subtitle.text)

        if edit:
            self._dialog.set_title(_('Edit subtitle'))
        else:
            self._dialog.set_title(_('Add subtitle'))

        self._adj_start = self._builder.get_object('adj_start')
        self._adj_end = self._builder.get_object('adj_end')
        self._adj_duration = self._builder.get_object('adj_duration')

        self._adj_start.set_value(self.subtitle.start)
        self._adj_end.set_value(self.subtitle.end)
        self._adj_duration.set_value(self.subtitle.end - self.subtitle.start)

        if allow_edit_time:
            self._time_start = TimeEntry()
            self._time_start.set_adjustment(self._adj_start)
            grid_main.attach(self._time_start, 1, 0, 1, 1)
            self._time_start.show()

            self._time_end = TimeEntry()
            self._time_end.set_adjustment(self._adj_end)
            grid_main.attach(self._time_end, 1, 1, 1, 1)
            self._time_end.show()

            self._time_duration = TimeEntry()
            self._time_duration.set_adjustment(self._adj_duration)
            grid_main.attach(self._time_duration, 1, 2, 1, 1)
            self._time_duration.show()
        else:
            self._builder.get_object('lbl_duration').set_visible(False)
            self._builder.get_object('lbl_start').set_visible(False)
            self._builder.get_object('lbl_end').set_visible(False)

        self._text_formatter = TextFormatter()