def task(to_tree, to_model): all_rows = [] for i, path in enumerate(paths): from_iter = from_model.get_iter(path) row = self.get_row_from_model_iter(from_model, from_iter) if not i and not current: name = row[0] self.controls.notetabs._append_tab(name) to_tree = self.controls.notetabs.get_current_tree() # because to_tree has changed to_model = to_tree.get_model().get_model() if is_m3u(from_model.get_value(from_iter, self.path[0]).lower()): self.add_m3u(from_model, from_iter, to_tree, to_model) continue beans = self.get_all_beans_by_parent(from_model, from_iter) all_rows += self.fill_beans_and_get_rows(beans, self.simple_content_filter) for row in all_rows: if is_m3u(row[self.path[0]]): self.add_m3u(to_model=to_model, row=row) continue self.to_add_drag_item(to_tree, to_model, None, None, None, None, row) to_tree.update_tracknumber() if not current: '''gobject because rebuild_as_plain use it too''' gobject.idle_add(self.controls.play_first_file_in_playlist) thread.start_new_thread(self.controls.notetabs.on_save_tabs, ())
def one_row_replacing(self, ff_row_ref, ff_path, ff_model, from_tree, to_tree, to_model, to_iter, to_filter_pos, to_filter_path, new_iter, new_path=None, is_copy_move=False): ff_iter = self.get_iter_from_row_reference(ff_row_ref) """do not copy to himself""" if to_tree == from_tree and ff_path == to_filter_path: return None """if m3u is dropped""" if is_m3u(ff_model.get_value(ff_iter, self.path[0]).lower()): self.add_m3u(ff_model, ff_iter, to_tree, to_model, to_iter, to_filter_pos) return if ff_model.iter_has_child(ff_iter): new_iter = self.to_add_drag_item(to_tree, to_model, to_iter, to_filter_pos, ff_row_ref) self.iter_is_parent(ff_row_ref, ff_model, to_tree, to_model, new_iter) if is_copy_move: self.change_filepaths_in_row(to_model, new_iter, new_path) else: if new_iter and to_iter: to_iter = new_iter new_iter = self.to_add_drag_item(to_tree, to_model, to_iter, to_filter_pos, ff_row_ref) if is_copy_move: self.change_filepaths_in_row(to_model, new_iter, new_path) if to_filter_pos == BEFORE: new_iter = to_model.iter_next(new_iter) elif to_filter_pos == INTO_OR_BEFORE: new_iter = to_iter '''drag row with children from plain tree''' if from_tree.current_view == VIEW_PLAIN: ff_iter = self.get_iter_from_row_reference(ff_row_ref) if not self.get_bean_from_model_iter(ff_model, ff_iter).is_file: next_iter = ff_model.iter_next(ff_iter) _iter = new_iter while self.get_bean_from_model_iter(ff_model, next_iter).is_file: ref = self.get_row_reference_from_iter(ff_model, next_iter) if to_tree.current_view == VIEW_TREE: if _iter == new_iter: pos = INTO_OR_AFTER if to_filter_pos == BEFORE: _iter = self.get_previous_iter(to_model, _iter) else: pos = AFTER else: pos = to_filter_pos _iter = self.to_add_drag_item(to_tree, to_model, _iter, pos, ref) next_iter = self.get_iter_from_row_reference(ref) next_iter = ff_model.iter_next(next_iter) if not next_iter: break return new_iter
def task(to_iter): all_rows = [] for ff_path in ff_paths: ff_iter = ff_model.get_iter(ff_path) beans = self.get_all_beans_by_parent(ff_model, ff_iter) all_rows += self.fill_beans_and_get_rows(beans, self.simple_content_filter) for i, row in enumerate(all_rows): pos = AFTER if i else to_filter_pos if is_m3u(row[self.path[0]]): self.add_m3u(ff_model, ff_iter, to_tree, to_model, to_iter, pos) continue to_iter = self.to_add_drag_item(to_tree, to_model, to_iter, pos, None, row=row) self.update_tracknumber()