def safe_fill_treerows(self): try: self.filling_lock.acquire() rows = collections.OrderedDict() for treerow in self.model: rows[Gtk.TreeRowReference.new(self.model, treerow.path)] = [col for col in treerow] for row_ref in rows.keys(): row = rows[row_ref] if not row[self.time[0]] and row[self.is_file[0]] and row_ref.valid(): bean = self.get_bean_from_row(row) beans = update_id3_wind_filtering([bean]) if len(beans) == 1: self.fill_row(row_ref, beans[:][0]) else: bean = FDModel(text=_('Playlist: ') + os.path.basename(bean.path)).add_font("bold").add_is_file(False) self.fill_row(row_ref, bean) beans.reverse() for b in beans[:]: self.insert_bean(row_ref, b) finally: #self.update_tracknumber() self.controls.notetabs.on_save_tabs() if self.filling_lock.locked(): self.filling_lock.release()
def safe_fill_treerows(self): try: self.filling_lock.acquire() rows = collections.OrderedDict() for treerow in self.model: rows[Gtk.TreeRowReference.new( self.model, treerow.path)] = [col for col in treerow] for row_ref in rows.keys(): row = rows[row_ref] if not row[self.time[0]] and row[ self.is_file[0]] and row_ref.valid(): bean = self.get_bean_from_row(row) beans = update_id3_wind_filtering([bean]) if len(beans) == 1: self.fill_row(row_ref, beans[:][0]) else: bean = FDModel(text=_('Playlist: ') + os.path.basename(bean.path)).add_font( "bold").add_is_file(False) self.fill_row(row_ref, bean) beans.reverse() for b in beans[:]: self.insert_bean(row_ref, b) finally: #self.update_tracknumber() self.controls.notetabs.on_save_tabs() if self.filling_lock.locked(): self.filling_lock.release()
def get_all_music_with_id3_by_path(path, with_cue_filter=None): beans = simple_scanner(path, None) all = [] if with_cue_filter: for bean in beans: if get_file_extension(bean.path) == ".cue": all.append(bean) beans = all if all else beans return update_id3_wind_filtering(beans)
def fill_beans_and_get_rows(self, beans, filter=None): if filter: beans = filter(beans) full_beans = update_id3_wind_filtering(beans) rows = [] for one in full_beans: one.visible = True one.update_uuid() row = self.get_row_from_bean(one) rows.append(row) return rows
def _plain_append(self, bean, parent_iter): logging.debug("Plain append task: " + str(bean.text) + " " + str(bean.path)) if not bean: return if bean.is_file == True: bean.font = "normal" else: bean.font = "bold" bean.visible = True beans = update_id3_wind_filtering([bean]) for one in beans: one.update_uuid() row = self.get_row_from_bean(one) logging.debug(row) self.model.append(parent_iter, row)
def _plain_append(self, bean, parent_iter): logging.debug("Plain append task: " + str(bean.text) + " " + str(bean.path)) if not bean: return if bean.is_file: bean.font = "normal" else: bean.font = "bold" bean.visible = True beans = update_id3_wind_filtering([bean]) for one in beans: one.update_uuid() row = self.get_row_from_bean(one) self.model.append(parent_iter, row)
def fill_treerows(self): all_extra_rows = {} for k, treerow in enumerate(self.model): if not treerow[self.time[0]] and treerow[self.is_file[0]]: bean = self.get_bean_from_row(treerow) full_beans = update_id3_wind_filtering([bean]) rows_for_add = [] if len(full_beans) == 1: full_bean = full_beans[0] m_dict = FTreeModel().cut().__dict__ new_dict = dict(zip(m_dict.values(), m_dict.keys())) for i, key in enumerate(new_dict.values()): value = getattr(full_bean, key) if value is None: value = '' elif type(value) in [int, float, long]: value = str(value) treerow[i] = value else: for n, full_bean in enumerate(full_beans): full_bean.visible = True full_bean.update_uuid() row = self.get_row_from_bean(full_bean) rows_for_add.insert(0, row) if n == 0: treerow[self.font[0]] = 'bold' treerow[self.is_file[0]] = False if rows_for_add: all_extra_rows[k] = rows_for_add if all_extra_rows: for i in sorted(all_extra_rows.keys(), reverse = True): for row in all_extra_rows[i]: self.model.insert_after(None, self.model.get_iter(i), row)
def fill_treerows(self): all_extra_rows = {} for k, treerow in enumerate(self.model): if not treerow[self.time[0]] and treerow[self.is_file[0]]: bean = self.get_bean_from_row(treerow) full_beans = update_id3_wind_filtering([bean]) rows_for_add = [] if len(full_beans) == 1: full_bean = full_beans[0] m_dict = FTreeModel().cut().__dict__ new_dict = dict(zip(m_dict.values(), m_dict.keys())) for i, key in enumerate(new_dict.values()): value = getattr(full_bean, key) if value is None: value = '' elif type(value) in [int, float, long]: value = str(value) treerow[i] = value else: for n, full_bean in enumerate(full_beans): full_bean.visible = True full_bean.update_uuid() row = self.get_row_from_bean(full_bean) rows_for_add.insert(0, row) if n == 0: treerow[self.font[0]] = 'bold' treerow[self.is_file[0]] = False if rows_for_add: all_extra_rows[k] = rows_for_add if all_extra_rows: for i in sorted(all_extra_rows.keys(), reverse=True): for row in all_extra_rows[i]: self.model.insert_after(None, self.model.get_iter(i), row)
def get_all_music_with_id3_by_path(path): all = _scanner(path, None) return update_id3_wind_filtering(all)