Example #1
0
    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()
Example #2
0
    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()
Example #3
0
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)
Example #4
0
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)
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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)            
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
def get_all_music_with_id3_by_path(path):
    all = _scanner(path, None)
    return update_id3_wind_filtering(all)
Example #12
0
def get_all_music_with_id3_by_path(path):
    all = _scanner(path, None)
    return update_id3_wind_filtering(all)