about summary refs log tree commit diff stats
path: root/ranger/actions.py
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2009-12-11 00:51:15 +0100
committerhut <hut@lavabit.com>2009-12-11 00:51:15 +0100
commit0c0b9489072922c0f597c7099f8728868ffbb4a4 (patch)
treed64203e1c87d11abd958f26ca016b5425f07e908 /ranger/actions.py
parent871c502d58055c7611f0763eaa71a7fafad7efdc (diff)
downloadranger-0c0b9489072922c0f597c7099f8728868ffbb4a4.tar.gz
moved commands from fm.py to actions.py, cleanups
Diffstat (limited to 'ranger/actions.py')
-rw-r--r--ranger/actions.py107
1 files changed, 107 insertions, 0 deletions
diff --git a/ranger/actions.py b/ranger/actions.py
new file mode 100644
index 00000000..54a88b11
--- /dev/null
+++ b/ranger/actions.py
@@ -0,0 +1,107 @@
+from ranger.shared import EnvironmentAware, SettingsAware
+
+class Actions(EnvironmentAware, SettingsAware):
+	def search_forward(self):
+		if self.env.pwd:
+			if self.env.pwd.search(self.env.last_search):
+				self.env.cf = self.env.pwd.pointed_file
+
+	def search_backward(self):
+		if self.env.pwd:
+			if self.env.pwd.search(self.env.last_search, -1):
+				self.env.cf = self.env.pwd.pointed_file
+
+	def interrupt(self):
+		import time
+		self.env.key_clear()
+		try:
+			time.sleep(0.2)
+		except KeyboardInterrupt:
+			raise SystemExit()
+
+	def resize(self):
+		self.ui.resize()
+
+	def exit(self):
+		raise SystemExit()
+
+	def enter_dir(self, path):
+		self.env.enter_dir(path)
+
+	def enter_bookmark(self, key):
+		from ranger.container.bookmarks import NonexistantBookmark
+		try:
+			destination = self.bookmarks[key]
+			current_path = self.env.pwd.path
+			if destination != current_path:
+				self.bookmarks.enter(key)
+				self.bookmarks.remember(current_path)
+		except NonexistantBookmark:
+			pass
+
+	def set_bookmark(self, key):
+		self.bookmarks[key] = self.env.pwd.path
+
+	def unset_bookmark(self, key):
+		self.bookmarks.delete(key)
+
+	def move_left(self):
+		self.env.enter_dir('..')
+	
+	def move_right(self, mode = 0):
+		cf = self.env.cf
+		if not self.env.enter_dir(cf):
+			self.execute_file(cf, mode = mode)
+
+	def history_go(self, relative):
+		self.env.history_go(relative)
+	
+	def handle_mouse(self):
+		self.ui.handle_mouse(self)
+
+	def execute_file(self, files, app = '', flags = '', mode = 0):
+		if type(files) not in (list, tuple):
+			files = [files]
+
+		self.apps.get(app)(
+				mainfile = files[0],
+				files = files,
+				flags = flags,
+				mode = mode,
+				fm = self,
+				stdin = None,
+				apps = self.apps)
+	
+	def edit_file(self):
+		if self.env.cf is None:
+			return
+		self.execute_file(self.env.cf, app = 'editor')
+
+	def open_console(self, mode = ':'):
+		if self.ui.can('open_console'):
+			self.ui.open_console(mode)
+
+	def move_pointer(self, relative = 0, absolute = None):
+		self.env.cf = self.env.pwd.move_pointer(relative, absolute)
+
+	def move_pointer_by_pages(self, relative):
+		self.env.cf = self.env.pwd.move_pointer(
+				relative = int(relative * self.env.termsize[0]))
+
+	def scroll(self, relative):
+		if self.ui.can('scroll'):
+			self.ui.scroll(relative)
+			self.env.cf = self.env.pwd.pointed_file
+
+	def redraw(self):
+		self.ui.redraw()
+
+	def reset(self):
+		old_path = self.env.pwd.path
+		self.env.directories = {}
+		self.enter_dir(old_path)
+
+	def toggle_boolean_option(self, string):
+		if isinstance(self.env.settings[string], bool):
+			self.env.settings[string] ^= True
+