Ejemplo n.º 1
0
    def __init__(self, prnt, frmt, store):
        Gtk.Dialog.__init__(self, parent=prnt, use_header_bar=True)
        self.set_size_request(700, 450)
        self.set_border_width(4)
        self.set_title(_('Edition'))

        self.format = frmt
        self.store = store
        self.titlebar = self.get_titlebar()
        self.main_win = prnt

        self.vbox.set_spacing(6)
        grid = LabeledGrid(self.vbox)

        # Warning
        lbl_warn = Gtk.Label(_(
            '<span foreground="red"><i><b>WARNING:</b> Please change these values with care!</i></span>'
        ),
                             use_markup=True)
        self.vbox.pack_end(lbl_warn, False, False, 0)
        self.vbox.pack_end(Gtk.Separator(), False, False, 0)

        grid.append_title(_('Audio:'))

        self.entry_ab = Gtk.Entry()
        self.spin_def_ab = Gtk.SpinButton.new_with_range(1, 4, 1)
        self.entry_ab.connect('changed', self.on_bitrate_changed,
                              self.spin_def_ab)

        box_ab = Gtk.Box(spacing=6)
        box_ab.pack_start(self.entry_ab, True, True, 0)
        box_ab.pack_start(Gtk.Label(_('Default')), False, False, 0)
        box_ab.pack_start(self.spin_def_ab, False, False, 0)

        grid.append_row(_('Audio Bitrates'), box_ab, True)
        self.entry_afreq = Gtk.Entry()
        grid.append_row(_('Audio Frequencies'), self.entry_afreq, True)
        self.entry_ach = Gtk.Entry()
        grid.append_row(_('Audio Channels'), self.entry_ach, True)
        self.entry_acodec = Gtk.Entry()
        grid.append_row(_('Audio Codecs'), self.entry_acodec, True)

        # video
        grid.append_title(_('Video:'))
        self.entry_vb = Gtk.Entry()
        self.spin_def_vb = Gtk.SpinButton().new_with_range(1, 4, 1)
        self.entry_vb.connect('changed', self.on_bitrate_changed,
                              self.spin_def_vb)

        box_vb = Gtk.Box(spacing=6)
        box_vb.pack_start(self.entry_vb, True, True, 0)
        box_vb.pack_start(Gtk.Label(_('Default')), False, False, 0)
        box_vb.pack_start(self.spin_def_vb, False, False, 0)

        grid.append_row(_('Video Bitrates'), box_vb, True)
        self.entry_vfps = Gtk.Entry()
        grid.append_row(_('Video FPS'), self.entry_vfps, True)
        self.entry_vsize = Gtk.Entry()
        grid.append_row(_('Video Sizes'), self.entry_vsize, True)
        self.entry_vcodec = Gtk.Entry()
        grid.append_row(_('Video Codecs'), self.entry_vcodec, True)
        self.entry_vratio = Gtk.Entry()
        grid.append_row(_('Aspect Ratios'), self.entry_vratio, True)

        grid.append_title(_('Other Options:'))
        self.entry_extra = Gtk.Entry()
        grid.append_row(_('Extra Options'), self.entry_extra, True)

        box_title = Gtk.Box()
        Gtk.StyleContext.add_class(box_title.get_style_context(), "linked")

        # Format Entry
        self.entry_frmt = Gtk.Entry()
        self.entry_frmt.set_alignment(0.5)
        self.entry_frmt.set_size_request(320, 1)
        box_title.pack_start(self.entry_frmt, True, True, 0)

        # Save Button
        btn_save = ButtonWithIcon('document-save-symbolic')
        btn_save.set_tooltip_text(_('Save'))
        btn_save.connect('clicked', self.on_btn_save)
        box_title.pack_start(btn_save, True, True, 0)

        # Remove button
        self.btn_remove = ButtonWithIcon('edit-delete-symbolic')
        self.btn_remove.set_tooltip_text(_('Remove'))
        self.btn_remove.connect('clicked', self.remove_format)
        box_title.pack_start(self.btn_remove, False, False, 0)

        self.titlebar.set_custom_title(box_title)

        # Set to default button
        btn_def = ButtonWithIcon('view-refresh-symbolic')
        btn_def.set_tooltip_text(_('Restore default'))
        btn_def.connect('clicked', self.on_btn_def)
        self.titlebar.pack_end(btn_def)

        self.set_focus(btn_save)

        # work
        self.ffile = self.get_formats_file()
        self.load_settings()
Ejemplo n.º 2
0
    def __init__(self, wind, formats_list, curr_format, store):
        self.wind = wind
        self.formats_list = formats_list
        self.selected_format = curr_format
        
        self.no_format = _('<i><span color="red">No format selected!</span></i>')
        
        Gtk.Popover.__init__(self)
        self.set_border_width(4)
        self.connect('closed', self.on_closed)
        
        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=4)
        self.add(vbox)
        
        #
        self.e_search = Gtk.SearchEntry()
        self.e_search.set_activates_default(True)
        self.e_search.connect('changed', self.on_entry_search)
        self.e_search.set_direction(Gtk.TextDirection.LTR)
        vbox.pack_start(self.e_search, False, True, 2)
        
        
        #
        self.store = store # Gtk.ListStore(str)
        self.tree_filter = self.store.filter_new()
        self.tree_filter.set_visible_func(self.match_func)
        
        self.tree_formats = Gtk.TreeView(self.tree_filter)
        self.tree_formats.set_headers_visible(False)
        self.tree_formats.set_direction(Gtk.TextDirection.LTR)
        self.tree_formats.set_grid_lines(Gtk.TreeViewGridLines.HORIZONTAL)
        self.tree_formats.connect('row-activated', self.on_choosed_format)
        
        self.tree_sel = self.tree_formats.get_selection()
        
        # cell
        cell = Gtk.CellRendererText()
        col = Gtk.TreeViewColumn(None, cell, text=0)
        self.tree_formats.append_column(col)
        
        scroll = Gtk.ScrolledWindow()
        scroll.set_size_request(450, 220)
        scroll.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
        scroll.add(self.tree_formats)
        vbox.pack_start(scroll, True, True, 0)
        
        # Load formats
        for fmt in self.formats_list:
            self.store.append([fmt])
        
        self.store.set_sort_column_id(0, Gtk.SortType.ASCENDING)
        
        # hbox btns
        hbox_btns = Gtk.Box()
        vbox.pack_start(hbox_btns, True, True, 0)
        
        # edit btn
        btn_edit = ButtonWithIcon('preferences-other-symbolic')
        btn_edit.set_tooltip_text(_('Edit'))
        btn_edit.connect('clicked', self.on_edit_format)
        hbox_btns.pack_start(btn_edit, False, True, 0)
        
        self.lbl = Gtk.Label()
        hbox_btns.pack_start(self.lbl, True, False, 0)        
        
        # select btn
        btn_select = Gtk.Button(_('Choose'))
        btn_select.set_size_request(80, 1)
        btn_select.set_tooltip_text(_('Choose'))
        btn_select.connect('clicked', self.on_select_format)
        hbox_btns.pack_end(btn_select, False, True, 0)
 
        # finally
        vbox.show_all()