def choose_root(self, roots=None): # Set navigator status self.cls.navigator_status = CHOOSE_ROOT # Find roots roots = roots if roots else self.find_root() # Sort roots roots = sorted(roots) # Find command prefix prefix = os.path.commonprefix(roots).rpartition(os.sep)[0] items = [[item[len(prefix) + 1:], os.path.dirname(item)] for item in roots] # items = [[os.path.basename(item), os.path.dirname(item)] for item in roots] def on_done(i): if i < 0: self.cls.reset() else: self.navigator(roots[i]) if not items: sublime.status_message("No Root Elements") elif len(items) == 1: on_done(0) else: show_quick_panel(self.window, items, on_done)
def choose_root(self, roots = None): # Set navigator status self.cls.navigator_status = CHOOSE_ROOT # Find roots roots = roots if roots else self.find_root() # Sort roots roots = sorted(roots) # Find command prefix prefix = os.path.commonprefix(roots).rpartition(os.sep)[0] items = [[item[len(prefix)+1:], os.path.dirname(item)] for item in roots] # items = [[os.path.basename(item), os.path.dirname(item)] for item in roots] def on_done(i): if i < 0: self.cls.reset() else: self.navigator(roots[i]) if not items: sublime.status_message("No Root Elements") elif len(items) == 1: on_done(0) else: show_quick_panel(self.window, items, on_done)
def do_dictionary(self, path): # Set navigator status self.cls.navigator_status = DO_DIR def on_done(i): if i < 0: if not self.cls.keep_settings: self.cls.reset() self.cls.keep_settings = False # Go back to directory elif i == 0: self.navigator(path) elif i == 1: self.do_new_directory(path) elif i == 2: self.do_new_file(path) elif i == 3: self.do_open_folder(path) elif i == 4: self.do_rename(path) elif i == 5: self.do_copy(path) elif i == 6: self.do_move(path) elif i == 7: self.do_delete(path) # Save dir_name dir_name = os.path.basename(path) items = [["Back", "Go back to Directory content"]] items += [[ "New Directory", "Create a new Directory in \"%s\"" % dir_name ]] items += [["New File", "Create a new File in \"%s\"" % dir_name]] items += [["Open", "Open \"%s\" outside of Sublime Text" % dir_name]] items += [["Rename", "Rename \"%s\"" % dir_name]] items += [[ "Copy To ...", "Copy \"%s\" to a different location" % dir_name ]] items += [[ "Move To ...", "Move \"%s\" to a different location" % dir_name ]] items += [["Delete", "Delete \"%s\"" % dir_name]] show_quick_panel(self.window, items, on_done)
def navigator(self, path): items = [{"name": ".."}] if self.item_buffer: items += [{"name": "Paste"}] if len(self.item_buffer) == 1: items += [{"name": "Paste As ..."}] # List items in folder items += list_items(path, len(self.item_buffer) > 0, self.cls.show_hidden_files) # block_do_directory on paste if self.item_buffer: self.cls.navigator_status = NAVIGATOR_PASTE else: self.cls.navigator_status = NAVIGATOR # Set current working directory self.cls.cwd = path def on_done(i): if i < 0: if not self.cls.keep_settings: self.cls.reset() self.cls.keep_settings = False # Enclosing Directory elif i == 0: self.navigator(os.path.dirname(path)) # Paste item if item buffer elif i == 1 and self.item_buffer: self.do_paste(path) elif i == 2 and len(self.item_buffer) == 1: self.do_paste_as(path) # Restart navigator if the selected item is a dir, or file action on selecting a file elif items[i]["is_dir"]: self.navigator(items[i]["path"]) else: self.do_file(items[i]["path"]) if items: show_quick_panel(self.window, [item["name"] for item in items], on_done) else: sublime.status_message("No Items in %s!!!" % path)
def navigator(self, path): items = [{"name": ".."}] if self.item_buffer: items += [{"name": "Paste"}] if len(self.item_buffer) == 1: items += [{"name": "Paste As ..."}] # List items in folder items += list_items(path, len(self.item_buffer) > 0, self.cls.show_hidden_files) # block_do_directory on paste if self.item_buffer: self.cls.navigator_status = NAVIGATOR_PASTE else: self.cls.navigator_status = NAVIGATOR # Set current working directory self.cls.cwd = path def on_done(i): if i < 0: if not self.cls.keep_settings: self.cls.reset() self.cls.keep_settings = False # Enclosing Directory elif i == 0: self.navigator(os.path.dirname(path)) # Paste item if item buffer elif i == 1 and self.item_buffer: self.do_paste(path); elif i == 2 and len(self.item_buffer) == 1: self.do_paste_as(path); # Restart navigator if the selected item is a dir, or file action on selecting a file elif items[i]["is_dir"]: self.navigator(items[i]["path"]) else: self.do_file(items[i]["path"]) if items: show_quick_panel(self.window, [item["name"] for item in items], on_done) else: sublime.status_message("No Items in %s!!!" % path)
def do_file(self, path): # Set navigator status self.cls.navigator_status = DO_FILE def on_done(i): if i < 0: if not self.cls.keep_settings: self.cls.reset() self.cls.keep_settings = False # Go back to directory elif i == 0: self.navigator(os.path.dirname(path)) elif i == 1: self.do_open(path) elif i == 2: self.do_rename(path) elif i == 3: self.do_copy(path) elif i == 4: self.do_move(path) elif i == 5: self.do_delete(path) # Save dir_name file_name = os.path.basename(path) items = [["..", "Enclosing Folder"]] items += [["Open", "Open \"%s\" in Sublime Text" % file_name]] items += [["Rename", "Rename \"%s\"" % file_name]] items += [[ "Copy To ...", "Copy \"%s\" to a different location" % file_name ]] items += [[ "Move To ...", "Move \"%s\" to a different location" % file_name ]] items += [["Delete", "Delete \"%s\"" % file_name]] show_quick_panel(self.window, items, on_done)
def do_dictionary(self, path): # Set navigator status self.cls.navigator_status = DO_DIR def on_done(i): if i < 0: if not self.cls.keep_settings: self.cls.reset() self.cls.keep_settings = False # Go back to directory elif i == 0: self.navigator(path) elif i == 1: self.do_new_directory(path) elif i == 2: self.do_new_file(path) elif i == 3: self.do_open_folder(path) elif i == 4: self.do_rename(path) elif i == 5: self.do_copy(path) elif i == 6: self.do_move(path) elif i == 7: self.do_delete(path) # Save dir_name dir_name = os.path.basename(path) items = [["Back", "Go back to Directory content"]] items += [["New Directory", "Create a new Directory in \"%s\"" % dir_name]] items += [["New File", "Create a new File in \"%s\"" % dir_name]] items += [["Open", "Open \"%s\" outside of Sublime Text" % dir_name]] items += [["Rename", "Rename \"%s\"" % dir_name]] items += [["Copy To ...", "Copy \"%s\" to a different location" % dir_name]] items += [["Move To ...", "Move \"%s\" to a different location" % dir_name]] items += [["Delete", "Delete \"%s\"" % dir_name]] show_quick_panel(self.window, items, on_done)
def do_file(self, path): # Set navigator status self.cls.navigator_status = DO_FILE def on_done(i): if i < 0: if not self.cls.keep_settings: self.cls.reset() self.cls.keep_settings = False # Go back to directory elif i == 0: self.navigator(os.path.dirname(path)) elif i == 1: self.do_open(path) elif i == 2: self.do_rename(path) elif i == 3: self.do_copy(path) elif i == 4: self.do_move(path) elif i == 5: self.do_delete(path) # Save dir_name file_name = os.path.basename(path) items = [["..", "Enclosing Folder"]] items += [["Open", "Open \"%s\" in Sublime Text" % file_name]] items += [["Rename", "Rename \"%s\"" % file_name]] items += [["Copy To ...", "Copy \"%s\" to a different location" % file_name]] items += [["Move To ...", "Move \"%s\" to a different location" % file_name]] items += [["Delete", "Delete \"%s\"" % file_name]] show_quick_panel(self.window, items, on_done)