def on_replace_clicked(self, widget): tracks = [row[2] for row in self.tracks_list.get_model() if row[1]] replace_str = self.replace_entry.get_text().strip() if replace_str: query = _("Replace '%s' with '%s' on %s tracks?") % ( self.search_str, replace_str, len(tracks)) else: query = _("Delete '%s' from %s tracks?") % (self.search_str, len(tracks)) if dialogs.yesno(self, query) != Gtk.ResponseType.YES: return for track in tracks: groups = gt_common._get_track_groups(track, self.tagname) if self.search_str != '': groups.discard(self.search_str) if replace_str != '': groups.add(replace_str) if not gt_common.set_track_groups(track, groups): return dialogs.info(self, "Tags successfully renamed!") self.reset()
def on_find_clicked(self, widget): self.search_str = self.search_entry.get_text().strip() self.replace_str = self.replace_entry.get_text().strip() self.tagname = gt_common.get_tagname() # freeze update model = self.tracks_list.get_model() self.tracks_list.freeze_child_notify() self.tracks_list.set_model(None) model.clear() idx = self.playlists.get_active() if idx != -1 and (self.search_str != '' or self.replace_str != ''): smart, name = self.playlists.get_model()[idx] if smart: pl = self.exaile.smart_playlists.get_playlist(name) else: pl = self.exaile.playlists.get_playlist(name) if hasattr(pl, 'get_playlist'): pl = pl.get_playlist(self.exaile.collection) for track in pl: groups = gt_common._get_track_groups(track, self.tagname) if self.search_str != '' and self.search_str not in groups: continue name = ' - '.join([ track.get_tag_display('artist'), track.get_tag_display('album'), track.get_tag_display('title') ]) model.append((True, name, track)) # unfreeze, draw it up self.tracks_list.set_model(model) self.tracks_list.thaw_child_notify() self.found_label = _('%s tracks found') % len(model) self.replace.set_sensitive(len(model) != 0)
def on_find_clicked(self, widget): self.search_str = self.search_entry.get_text().strip() self.replace_str = self.replace_entry.get_text().strip() self.tagname = gt_common.get_tagname() # freeze update model = self.tracks_list.get_model() self.tracks_list.freeze_child_notify() self.tracks_list.set_model(None) model.clear() idx = self.playlists.get_active() if idx != -1 and (self.search_str != '' or self.replace_str != ''): smart, name = self.playlists.get_model()[idx] if smart: pl = self.exaile.smart_playlists.get_playlist(name) else: pl = self.exaile.playlists.get_playlist(name) if hasattr(pl, 'get_playlist'): pl = pl.get_playlist(self.exaile.collection) for track in pl: groups = gt_common._get_track_groups(track, self.tagname) if self.search_str != '' and self.search_str not in groups: continue name = ' - '.join([ track.get_tag_display('artist'), track.get_tag_display('album'), track.get_tag_display('title')]) model.append((True, name, track)) # unfreeze, draw it up self.tracks_list.set_model(model) self.tracks_list.thaw_child_notify() self.found_label = _('%s tracks found') % len(model) self.replace.set_sensitive(len(model) != 0)
def on_replace_clicked(self, widget): tracks = [row[2] for row in self.tracks_list.get_model() if row[1]] query = _("Replace '%s' with '%s' on %s tracks?") % (self.search_str, self.replace_str, len(tracks)) if dialogs.yesno(self, query) != Gtk.ResponseType.YES: return for track in tracks: groups = gt_common._get_track_groups(track, self.tagname) if self.search_str != '': groups.discard(self.search_str) if self.replace_str != '': groups.add(self.replace_str) if not gt_common.set_track_groups(track, groups): return dialogs.info(self, "Tags successfully renamed!") self.reset()
def on_replace_clicked(self, widget): tracks = [row[2] for row in self.tracks_list.get_model() if row[1]] query = _("Replace '%s' with '%s' on %s tracks?") % ( self.search_str, self.replace_str, len(tracks)) if dialogs.yesno(self.window, query) != gtk.RESPONSE_YES: return for track in tracks: groups = gt_common._get_track_groups(track, self.tagname) if self.search_str != '': groups.discard(self.search_str) if self.replace_str != '': groups.add(self.replace_str) if not gt_common.set_track_groups(track, groups): return dialogs.info(self.window, "Tags successfully renamed!") self.reset()