Пример #1
0
	def __init__(self, parent):
		RenameExtension.__init__(self, parent)

		self._basename_methods = (
					(_('Do nothing'), self.__do_nothing),
					(_('Capitalize'), self.__capitalize),
					(_('Upper case'), self.__upper),
					(_('Lower case'), self.__lower),
					(_('Swap case'), self.__swap),
				)

		self._extension_methods = (
					(_('Do nothing'), self.__do_nothing),
					(_('Upper case'), self.__upper),
					(_('Lower case'), self.__lower),
				)

		# create labels
		label_basename = gtk.Label(_('Item name:'))
		label_basename.set_alignment(0, 0.5)

		label_extension = gtk.Label(_('Extension:'))
		label_extension.set_alignment(0, 0.5)

		# create combo boxes
		self._combo_basename = gtk.combo_box_new_text()
		self._combo_basename.connect('changed', self._update_parent_list)

		self._combo_extension = gtk.combo_box_new_text()
		self._combo_extension.connect('changed', self._update_parent_list)

		# fill comboboxes
		for method in self._basename_methods:
			self._combo_basename.append_text(method[0])

		for method in self._extension_methods:
			self._combo_extension.append_text(method[0])

		self._combo_basename.set_active(0)
		self._combo_extension.set_active(0)

		# pack gui
		table = gtk.Table(2, 2, False)
		table.set_col_spacing(0, 5)
		table.set_row_spacings(5)

		table.attach(label_basename, 0, 1, 0, 1, xoptions=gtk.FILL)
		table.attach(label_extension, 0, 1, 1, 2, xoptions=gtk.FILL)

		table.attach(self._combo_basename, 1, 2, 0, 1, xoptions=gtk.FILL)
		table.attach(self._combo_extension, 1, 2, 1, 2, xoptions=gtk.FILL)

		self.vbox.pack_start(table, False, False, 0)
Пример #2
0
	def __init__(self, parent):
		RenameExtension.__init__(self, parent)

		self._templates = {
					'[a]': ('album', _('Album')),
					'[A]': ('artist', _('Artist')),
					'[T]': ('title', _('Title')),
					'[G]': ('genre', _('Genre')),
					'[D]': ('date', _('Date')),
					'[t]': ('tracknumber', _('Track number')),
				}

		# create template entry
		label_template = gtk.Label(_('Template:'))
		label_template.set_alignment(0, 0.5)

		self._entry_template = gtk.Entry()
		self._entry_template.set_text('[[t]] [A] - [T]')
		self._entry_template.connect('changed', self._update_parent_list)

		# create replace entry
		label_replace1 = gtk.Label(_('Replace:'))
		label_replace1.set_alignment(0, 0.5)

		self._entry_replace = gtk.Entry()
		self._entry_replace.set_text(',?/')
		self._entry_replace.connect('changed', self._update_parent_list)

		# create replace combo boxes
		label_replace2 = gtk.Label(_('With:'))
		label_replace2.set_alignment(0, 0.5)

		self._combobox_replace = gtk.combo_box_entry_new_text()
		self._combobox_replace.connect('changed', self._update_parent_list)

		for str_rep in ('_', '-', ''):
			self._combobox_replace.append_text(str_rep)

		# create syntax
		label_tip = gtk.Label()
		label_tip.set_alignment(0, 0)
		label_tip.set_use_markup(True)
		label_tip.set_markup('<b>{0}</b>\n{1}'.format(_('Template syntax'),
			'\n'.join(['{0}\t{1}'.format(k, v[1]) for k, v in self._templates.iteritems()])))

		# create boxes
		hbox = gtk.HBox(True, 15)
		vbox_left = gtk.VBox(False, 5)
		vbox_right = gtk.VBox(False, 0)
		vbox_template = gtk.VBox(False, 0)
		table_replace = gtk.Table(2, 2, False)
		table_replace.set_border_width(5)

		frame_replace = gtk.Frame(label=_('Character replacement'))

		# disable checkbox if mutagen is not available
		self._checkbox_active.set_sensitive(USE_MUTAGEN)

		# create warning label
		label_warning = gtk.Label(_(
							'In order to use this extension you need <b>mutagen</b> module installed!'
						))
		label_warning.set_use_markup(True)
		label_warning.set_property('no-show-all', USE_MUTAGEN)

		# pack gui
		vbox_template.pack_start(label_template, False, False, 0)
		vbox_template.pack_start(self._entry_template, False, False, 0)

		self.vbox.remove(self._checkbox_active)

		table_replace.attach(label_replace1, 0, 1, 0, 1)
		table_replace.attach(self._entry_replace, 1, 2, 0, 1, xoptions=gtk.FILL)
		table_replace.attach(label_replace2, 0, 1, 1, 2)
		table_replace.attach(self._combobox_replace, 1, 2, 1, 2, xoptions=gtk.FILL)

		frame_replace.add(table_replace)

		vbox_left.pack_start(self._checkbox_active, False, False, 0)
		vbox_left.pack_start(vbox_template, False, False, 0)
		vbox_left.pack_start(frame_replace, False, False, 0)

		vbox_right.pack_start(label_tip, False, False, 0)

		hbox.pack_start(vbox_left, True, True, 0)
		hbox.pack_start(vbox_right, True, True, 0)

		self.vbox.pack_start(hbox, False, False, 0)
		self.vbox.pack_end(label_warning, False, False, 0)
Пример #3
0
    def __init__(self, parent):
        RenameExtension.__init__(self, parent)

        # default option needs to be active by default
        self._checkbox_active.set_active(True)

        # create expressions
        self._regexp_name = re.compile(
            '\[(N|E|C)([\d][^-]*)?-?([\d][^\]]*)?\]', re.I | re.U)

        self._template = '[N][E]'
        self._counter = 0
        self._counter_start = 0
        self._counter_step = 1
        self._counter_digits = 1

        # create user interface
        hbox = gtk.HBox(True, 15)

        vbox_left = gtk.VBox(False, 5)
        vbox_right = gtk.VBox(False, 5)

        # help
        label_help = gtk.Label()
        label_help.set_alignment(0, 0)
        label_help.set_use_markup(True)

        label_help.set_markup(
            _('<b>Template syntax</b>\n'
              '[N]\tItem name\n'
              '[E]\tExtension\n'
              '[C]\tCounter\n\n'
              'For name and extension you can\n'
              'use range in format [N#-#].'))

        # template
        vbox_template = gtk.VBox(False, 0)
        hbox_template = gtk.HBox(False, 2)

        label_template = gtk.Label(_('Template:'))
        label_template.set_alignment(0, 0.5)

        self._entry_template = gtk.Entry()
        self._entry_template.set_text(self._template)
        self._entry_template.connect('changed', self.__template_changed)

        style = gtk.RcStyle()
        style.xthickness = 0
        style.ythickness = 0

        image_add = gtk.Image()
        image_add.set_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_BUTTON)
        button_add = gtk.Button()
        button_add.set_image(image_add)
        button_add.modify_style(style)
        button_add.connect('clicked', self.__button_add_clicked)

        # create popup menu
        self._add_menu = gtk.Menu()

        item_add_name = gtk.MenuItem(label=_('Name'))
        item_add_name.connect('activate', self.__add_to_template, 'N')

        item_add_name_part = gtk.MenuItem(label=_('Part of name'))
        item_add_name_part.connect('activate', self.__add_range_to_template,
                                   'N')

        item_separator1 = gtk.SeparatorMenuItem()

        item_add_extension = gtk.MenuItem(label=_('Extension'))
        item_add_extension.connect('activate', self.__add_to_template, 'E')

        item_add_extension_part = gtk.MenuItem(label=_('Part of extension'))
        item_add_extension_part.connect('activate',
                                        self.__add_range_to_template, 'E')

        item_separator2 = gtk.SeparatorMenuItem()

        item_add_counter = gtk.MenuItem(label=_('Counter'))
        item_add_counter.connect('activate', self.__add_to_template, 'C')

        self._add_menu.append(item_add_name)
        self._add_menu.append(item_add_name_part)
        self._add_menu.append(item_separator1)
        self._add_menu.append(item_add_extension)
        self._add_menu.append(item_add_extension_part)
        self._add_menu.append(item_separator2)
        self._add_menu.append(item_add_counter)

        self._add_menu.show_all()

        # counter
        frame_counter = gtk.Frame(label=_('Counter'))

        table_counter = gtk.Table(3, 2)
        table_counter.set_border_width(5)
        table_counter.set_col_spacings(5)

        label_start = gtk.Label(_('Start:'))
        label_start.set_alignment(0, 0.5)

        adjustment = gtk.Adjustment(0, 0, 10**10, 1, 10)
        self._entry_start = gtk.SpinButton(adjustment, 0, 0)
        self._entry_start.connect('value-changed', self.__counter_changed)

        label_step = gtk.Label(_('Step:'))
        label_step.set_alignment(0, 0.5)

        adjustment = gtk.Adjustment(1, 1, 10**10, 1, 10)
        self._entry_step = gtk.SpinButton(adjustment, 0, 0)
        self._entry_step.connect('value-changed', self.__counter_changed)

        label_digits = gtk.Label(_('Digits:'))
        label_digits.set_alignment(0, 0.5)

        adjustment = gtk.Adjustment(1, 1, 20, 1, 5)
        self._entry_digits = gtk.SpinButton(adjustment, 0, 0)
        self._entry_digits.connect('value-changed', self.__counter_changed)

        # repack 'active' check box
        self.vbox.remove(self._checkbox_active)
        vbox_left.pack_start(self._checkbox_active, False, False, 0)

        # pack interface
        table_counter.attach(label_start, 0, 1, 0, 1)
        table_counter.attach(self._entry_start,
                             0,
                             1,
                             1,
                             2,
                             xoptions=gtk.EXPAND | gtk.FILL)
        table_counter.attach(label_step, 1, 2, 0, 1)
        table_counter.attach(self._entry_step,
                             1,
                             2,
                             1,
                             2,
                             xoptions=gtk.EXPAND | gtk.FILL)
        table_counter.attach(label_digits, 2, 3, 0, 1)
        table_counter.attach(self._entry_digits,
                             2,
                             3,
                             1,
                             2,
                             xoptions=gtk.EXPAND | gtk.FILL)

        frame_counter.add(table_counter)

        hbox_template.pack_start(self._entry_template, True, True, 0)
        hbox_template.pack_start(button_add, False, False, 0)

        vbox_template.pack_start(label_template, False, False, 0)
        vbox_template.pack_start(hbox_template, False, False, 0)

        vbox_left.pack_start(vbox_template, False, False, 0)
        vbox_left.pack_start(frame_counter, False, False, 0)

        vbox_right.pack_start(label_help, True, True, 0)

        hbox.pack_start(vbox_left, True, True, 0)
        hbox.pack_start(vbox_right, True, True, 0)

        self.vbox.pack_start(hbox, True, True, 0)

        self.vbox.show_all()
Пример #4
0
	def __init__(self, parent):
		RenameExtension.__init__(self, parent)

		# default option needs to be active by default
		self._checkbox_active.set_active(True)

		# create expressions
		self._regexp_name = re.compile('\[(N|E|C)([\d][^-]*)?-?([\d][^\]]*)?\]', re.I | re.U)

		self._template = '[N][E]'
		self._counter = 0
		self._counter_start = 0
		self._counter_step = 1
		self._counter_digits = 1

		# create user interface
		hbox = gtk.HBox(True, 15)

		vbox_left = gtk.VBox(False, 5)
		vbox_right = gtk.VBox(False, 5)

		# help
		label_help = gtk.Label()
		label_help.set_alignment(0, 0)
		label_help.set_use_markup(True)

		label_help.set_markup(_(
							'<b>Template syntax</b>\n'
							'[N]\tItem name\n'
							'[E]\tExtension\n'
							'[C]\tCounter\n\n'
							'For name and extension you can\n'
							'use range in format [N#-#].'
						))

		# template
		vbox_template = gtk.VBox(False, 0)
		hbox_template = gtk.HBox(False, 2)

		label_template = gtk.Label(_('Template:'))
		label_template.set_alignment(0, 0.5)

		self._entry_template = gtk.Entry()
		self._entry_template.set_text(self._template)
		self._entry_template.connect('changed', self.__template_changed)

		style = gtk.RcStyle()
		style.xthickness = 0
		style.ythickness = 0

		image_add = gtk.Image()
		image_add.set_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_BUTTON)
		button_add = gtk.Button()
		button_add.set_image(image_add)
		button_add.modify_style(style)
		button_add.connect('clicked', self.__button_add_clicked)

		# create popup menu
		self._add_menu = gtk.Menu()

		item_add_name = gtk.MenuItem(label=_('Name'))
		item_add_name.connect('activate', self.__add_to_template, 'N')

		item_add_name_part = gtk.MenuItem(label=_('Part of name'))
		item_add_name_part.connect('activate', self.__add_range_to_template, 'N')

		item_separator1 = gtk.SeparatorMenuItem()

		item_add_extension = gtk.MenuItem(label=_('Extension'))
		item_add_extension.connect('activate', self.__add_to_template, 'E')

		item_add_extension_part = gtk.MenuItem(label=_('Part of extension'))
		item_add_extension_part.connect('activate', self.__add_range_to_template, 'E')

		item_separator2 = gtk.SeparatorMenuItem()

		item_add_counter = gtk.MenuItem(label=_('Counter'))
		item_add_counter.connect('activate', self.__add_to_template, 'C')

		self._add_menu.append(item_add_name)
		self._add_menu.append(item_add_name_part)
		self._add_menu.append(item_separator1)
		self._add_menu.append(item_add_extension)
		self._add_menu.append(item_add_extension_part)
		self._add_menu.append(item_separator2)
		self._add_menu.append(item_add_counter)

		self._add_menu.show_all()

		# counter
		frame_counter = gtk.Frame(label=_('Counter'))

		table_counter = gtk.Table(3, 2)
		table_counter.set_border_width(5)
		table_counter.set_col_spacings(5)

		label_start = gtk.Label(_('Start:'))
		label_start.set_alignment(0, 0.5)

		adjustment = gtk.Adjustment(0, 0, 10**10, 1, 10)
		self._entry_start = gtk.SpinButton(adjustment, 0, 0)
		self._entry_start.connect('value-changed', self.__counter_changed)

		label_step = gtk.Label(_('Step:'))
		label_step.set_alignment(0, 0.5)

		adjustment = gtk.Adjustment(1, 1, 10**10, 1, 10)
		self._entry_step = gtk.SpinButton(adjustment, 0, 0)
		self._entry_step.connect('value-changed', self.__counter_changed)

		label_digits = gtk.Label(_('Digits:'))
		label_digits.set_alignment(0, 0.5)

		adjustment = gtk.Adjustment(1, 1, 20, 1, 5)
		self._entry_digits = gtk.SpinButton(adjustment, 0, 0)
		self._entry_digits.connect('value-changed', self.__counter_changed)

		# repack 'active' check box
		self.vbox.remove(self._checkbox_active)
		vbox_left.pack_start(self._checkbox_active, False, False, 0)

		# pack interface
		table_counter.attach(label_start, 0, 1, 0, 1)
		table_counter.attach(self._entry_start, 0, 1, 1, 2, xoptions=gtk.EXPAND|gtk.FILL)
		table_counter.attach(label_step, 1, 2, 0, 1)
		table_counter.attach(self._entry_step, 1, 2, 1, 2, xoptions=gtk.EXPAND|gtk.FILL)
		table_counter.attach(label_digits, 2, 3, 0, 1)
		table_counter.attach(self._entry_digits, 2, 3, 1, 2, xoptions=gtk.EXPAND|gtk.FILL)

		frame_counter.add(table_counter)

		hbox_template.pack_start(self._entry_template, True, True, 0)
		hbox_template.pack_start(button_add, False, False, 0)

		vbox_template.pack_start(label_template, False, False, 0)
		vbox_template.pack_start(hbox_template, False, False, 0)

		vbox_left.pack_start(vbox_template, False, False, 0)
		vbox_left.pack_start(frame_counter, False, False, 0)

		vbox_right.pack_start(label_help, True, True, 0)

		hbox.pack_start(vbox_left, True, True, 0)
		hbox.pack_start(vbox_right, True, True, 0)

		self.vbox.pack_start(hbox, True, True, 0)

		self.vbox.show_all()
Пример #5
0
    def __init__(self, parent):
        RenameExtension.__init__(self, parent)

        self._templates = {
            '[a]': ('album', _('Album')),
            '[A]': ('artist', _('Artist')),
            '[T]': ('title', _('Title')),
            '[G]': ('genre', _('Genre')),
            '[D]': ('date', _('Date')),
            '[t]': ('tracknumber', _('Track number')),
        }

        # create template entry
        label_template = gtk.Label(_('Template:'))
        label_template.set_alignment(0, 0.5)

        self._entry_template = gtk.Entry()
        self._entry_template.set_text('[[t]] [A] - [T]')
        self._entry_template.connect('changed', self._update_parent_list)

        # create replace entry
        label_replace1 = gtk.Label(_('Replace:'))
        label_replace1.set_alignment(0, 0.5)

        self._entry_replace = gtk.Entry()
        self._entry_replace.set_text(',?/')
        self._entry_replace.connect('changed', self._update_parent_list)

        # create replace combo boxes
        label_replace2 = gtk.Label(_('With:'))
        label_replace2.set_alignment(0, 0.5)

        self._combobox_replace = gtk.combo_box_entry_new_text()
        self._combobox_replace.connect('changed', self._update_parent_list)

        for str_rep in ('_', '-', ''):
            self._combobox_replace.append_text(str_rep)

        # create syntax
        label_tip = gtk.Label()
        label_tip.set_alignment(0, 0)
        label_tip.set_use_markup(True)
        label_tip.set_markup('<b>{0}</b>\n{1}'.format(
            _('Template syntax'), '\n'.join([
                '{0}\t{1}'.format(k, v[1])
                for k, v in self._templates.iteritems()
            ])))

        # create boxes
        hbox = gtk.HBox(True, 15)
        vbox_left = gtk.VBox(False, 5)
        vbox_right = gtk.VBox(False, 0)
        vbox_template = gtk.VBox(False, 0)
        table_replace = gtk.Table(2, 2, False)
        table_replace.set_border_width(5)

        frame_replace = gtk.Frame(label=_('Character replacement'))

        # disable checkbox if mutagen is not available
        self._checkbox_active.set_sensitive(USE_MUTAGEN)

        # create warning label
        label_warning = gtk.Label(
            _('In order to use this extension you need <b>mutagen</b> module installed!'
              ))
        label_warning.set_use_markup(True)
        label_warning.set_property('no-show-all', USE_MUTAGEN)

        # pack gui
        vbox_template.pack_start(label_template, False, False, 0)
        vbox_template.pack_start(self._entry_template, False, False, 0)

        self.vbox.remove(self._checkbox_active)

        table_replace.attach(label_replace1, 0, 1, 0, 1)
        table_replace.attach(self._entry_replace,
                             1,
                             2,
                             0,
                             1,
                             xoptions=gtk.FILL)
        table_replace.attach(label_replace2, 0, 1, 1, 2)
        table_replace.attach(self._combobox_replace,
                             1,
                             2,
                             1,
                             2,
                             xoptions=gtk.FILL)

        frame_replace.add(table_replace)

        vbox_left.pack_start(self._checkbox_active, False, False, 0)
        vbox_left.pack_start(vbox_template, False, False, 0)
        vbox_left.pack_start(frame_replace, False, False, 0)

        vbox_right.pack_start(label_tip, False, False, 0)

        hbox.pack_start(vbox_left, True, True, 0)
        hbox.pack_start(vbox_right, True, True, 0)

        self.vbox.pack_start(hbox, False, False, 0)
        self.vbox.pack_end(label_warning, False, False, 0)