示例#1
0
 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, ())
示例#2
0
 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  
示例#3
0
 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()