Exemplo n.º 1
0
 def __init__(self, plugin, selected_playlist=None):
     
     self.plugin = plugin
     
     guiutil.initialize_from_xml(self)
     
     self.info_bar = dialogs.MessageBar(self.info_bar, type=gtk.MESSAGE_ERROR, 
                                        buttons=gtk.BUTTONS_CLOSE)
     
     self.__build_template_list()
     self.__build_playlist_list(selected_playlist)
     self.__initialize_presets()
     
     self.__tag_widgets = []
     
     self.window.show_all()
     
     def tag_data_key(td):
         if td:
             return td.translated_name
     
     # convenience
     td = tag_data.values()
     
     # Add grouptagger to the list
     gt = get_default_tagdata('__grouptagger')
     gt.translated_name = _('GroupTagger')
     
     td.append(gt)
     
     self.__sorted_tags = sorted(td, key=tag_data_key)
 
     # setup the selected template
     guiutil.persist_selection(self.template_list, 0, 'plugin/playlistanalyzer/last_tmpl')
Exemplo n.º 2
0
 def __init__(self, plugin, selected_playlist=None):
     
     self.plugin = plugin
     
     guiutil.initialize_from_xml(self)
     
     self.info_bar = dialogs.MessageBar(self.info_bar, type=Gtk.MessageType.ERROR, 
                                        buttons=Gtk.ButtonsType.CLOSE)
     
     self.__build_template_list()
     self.__build_playlist_list(selected_playlist)
     self.__initialize_presets()
     
     self.__tag_widgets = []
     
     self.window.show_all()
     
     def tag_data_key(td):
         if td:
             return td.translated_name
     
     # convenience
     td = tag_data.values()
     
     # Add grouptagger to the list
     gt = get_default_tagdata('__grouptagger')
     gt.translated_name = _('GroupTagger')
     
     td.append(gt)
     
     self.__sorted_tags = sorted(td, key=tag_data_key)
 
     # setup the selected template
     guiutil.persist_selection(self.template_list, 0, 'plugin/playlistanalyzer/last_tmpl')
Exemplo n.º 3
0
    def _build_from_track(self, position):
        self._clear_grids()

        self.rows = []

        # Previous, next and current track label
        self.prev_button.set_sensitive(True)
        self.next_button.set_sensitive(True)

        if position == 0:
            self.prev_button.set_sensitive(False)

        if position == (len(self.trackdata) - 1):
            self.next_button.set_sensitive(False)

        self.cur_track_label.set_text(
            _("Editing track %(current)d of %(total)d") % {
                'current': self.current_position + 1,
                'total': len(self.tracks)
            })

        trackdata = self.trackdata[position]

        if len(self.trackdata) == 1:
            ab = False
        else:
            ab = True

        for tag, tag_info in self.def_tags.items():

            for i, entry in enumerate(trackdata.get(tag, [''])):

                field = self._get_field_widget(tag_info, ab)

                row = TagRow(self, self.tags_grid, field, tag, entry, i)
                self.rows.append(row)

                try:
                    if (self.trackdata[self.current_position][tag] !=
                            self.trackdata_original[self.current_position][tag]
                        ):
                        row.label.set_attributes(self.__changed_attributes)
                except KeyError:
                    row.label.set_attributes(self.__changed_attributes)

        for tag in trackdata:
            if tag in self.def_tags:
                continue

            try:
                tag_info = tag_data[tag]
            except KeyError:
                tag_info = get_default_tagdata(tag)

            if tag_info is None:
                continue

            for i, entry in enumerate(trackdata[tag]):
                if tag_info.editable:
                    field = self._get_field_widget(tag_info, ab)
                    self.rows.append(
                        TagRow(self, self.tags_grid, field, tag, entry, i))
                else:
                    field = PropertyField(tag_info.type)
                    self.rows.append(
                        TagRow(self, self.properties_grid, field, tag, entry,
                               i))

        self._check_for_changes()
        self._build_grids_from_rows()
Exemplo n.º 4
0
    def _build_from_track(self, position):

        for table in [self.tags_table, self.properties_table]:
            for child in table.get_children():
                table.remove(child)

            table.resize(1,4)

        self.rows = []

        # Previous, next and current track label
        self.prev_button.set_sensitive(True)
        self.next_button.set_sensitive(True)

        if position == 0:
            self.prev_button.set_sensitive(False)

        if position == (len(self.trackdata) - 1):
            self.next_button.set_sensitive(False)

        self.cur_track_label.set_text(
            _("Editing track %(current)d of %(total)d") % {
                'current': self.current_position + 1,
                'total': len(self.tracks)
            }
        )

        trackdata = self.trackdata[position]

        if len(self.trackdata) == 1:
            ab = False
        else:
            ab = True

        for tag, tag_info in self.def_tags.iteritems():
            
            for i, entry in enumerate(trackdata.get(tag, [''])):
                
                field = self._get_field_widget(tag_info, ab)
                
                row = TagRow(self, self.tags_table, field, tag, entry, i)
                self.rows.append(row)

                try:
                    if self.trackdata[self.current_position][tag] != \
                       self.trackdata_original[self.current_position][tag]:
                        row.label.set_attributes(self.__changed_attributes)
                except KeyError:
                    row.label.set_attributes(self.__changed_attributes)

        for tag in trackdata:
            if tag in self.def_tags:
                continue
            
            try:
                tag_info = tag_data[tag]
            except KeyError:
                tag_info = get_default_tagdata(tag)
            
            if tag_info is None:
                continue
            
            for i, entry in enumerate(trackdata[tag]):
                if tag_info.editable:
                    field = self._get_field_widget(tag_info, ab)
                    self.rows.append(TagRow(self, self.tags_table, field, tag, entry, i))
                else:
                    field = PropertyField(tag_info.type)
                    self.rows.append(TagRow(self, self.properties_table, field, tag, entry, i))
        
        self._check_for_changes()
        self._build_tables_from_rows()