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')
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')
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()
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()