예제 #1
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #6
0
    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)