summary refs log tree commit diff stats
path: root/tests/stdlib/tstrscans.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdlib/tstrscans.nim')
0 files changed, 0 insertions, 0 deletions
t@lavabit.com> 2010-01-08 17:35:56 +0100 added license information' href='/akspecs/ranger/commit/ranger/gui/widgets/taskview.py?id=b4c2c703f9acdf39cbd47407ed51a7e7c807ba7d'>b4c2c703 ^
811b7c28 ^






b4c2c703 ^
ddf828fb ^
b5393406 ^
ddf828fb ^


0cfc59d6 ^
ddf828fb ^


c4e869dd ^
ddf828fb ^
b5393406 ^
86594dde ^
ea87d005 ^
ddf828fb ^



ddf828fb ^
ddf828fb ^

b5393406 ^
ddf828fb ^

86594dde ^


ddf828fb ^
86594dde ^



4e01caf1 ^
86594dde ^

ddf828fb ^
86594dde ^

d3eff0a9 ^
86594dde ^






ddf828fb ^
86594dde ^

ddf828fb ^
86594dde ^

ddf828fb ^
86594dde ^







ddf828fb ^
86594dde ^
ea87d005 ^
33cb688a ^



ddf828fb ^
b5393406 ^
586f0006 ^


e8bab380 ^

ea87d005 ^
d6e2900a ^
586f0006 ^


d6e2900a ^
586f0006 ^
ddf828fb ^
c4e869dd ^



















ddf828fb ^
c4e869dd ^
ea87d005 ^
ddf828fb ^

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
                                                                 
 



                                                                      
 






                                                                       
 
   
                                                           


             
                             


                                              
                                               
 
                                    
                      
 



                                          
 

                                  
                                              

                                     


                                               
 



                                                        
 

                                         
 

                                                                        
 






                                                              
 

                                                             
 

                                                                      
 







                                                                                        
 
                                          
 



                                                                 
 
                                      


                                        

                                                      
 
                                        


                                        
                                                   
 
                             



















                                                                           
                     
                                    
 

                                           
# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

"""
The TaskView allows you to modify what the loader is doing.
"""

import curses
from collections import deque

from . import Widget
from ranger.ext.accumulator import Accumulator
from ranger.container.keymap import CommandArgs

class TaskView(Widget, Accumulator):
	old_lst = None

	def __init__(self, win):
		Widget.__init__(self, win)
		Accumulator.__init__(self)
		self.scroll_begin = 0

	def draw(self):
		base_clr = deque()
		base_clr.append('in_taskview')
		lst = self.get_list()

		if self.old_lst != lst:
			self.old_lst = lst
			self.need_redraw = True

		if self.need_redraw:
			self.win.erase()
			if not self.pointer_is_synced():
				self.sync_index()

			if self.hei <= 0:
				return

			self.addstr(0, 0, "Task View")
			self.color_at(0, 0, self.wid, base_clr, 'title')

			if lst:
				for i in range(self.hei - 1):
					i += self.scroll_begin
					try:
						obj = lst[i]
					except IndexError:
						break

					y = i + 1
					clr = deque(base_clr)

					if self.pointer == i:
						clr.append('selected')

					descr = obj.get_description()
					self.addstr(y, 0, descr, self.wid)
					self.color_at(y, 0, self.wid, clr)

			else:
				if self.hei > 1:
					self.addstr(1, 0, "No task in the queue.")
					self.color_at(1, 0, self.wid, base_clr, 'error')

			self.color_reset()

	def finalize(self):
		y = self.y + 1 + self.pointer - self.scroll_begin
		self.fm.ui.win.move(y, self.x)


	def task_remove(self, i=None):
		if i is None:
			i = self.pointer

		if self.fm.loader.queue:
			self.fm.loader.remove(index=i)

	def task_move(self, to, i=None):
		if i is None:
			i = self.pointer

		self.fm.loader.move(_from=i, to=to)

	def press(self, key):
		self.env.keymanager.use_context('taskview')
		self.env.key_append(key)
		kbuf = self.env.keybuffer
		cmd = kbuf.command

		if kbuf.failure:
			kbuf.clear()
			return
		elif not cmd:
			return

		self.env.cmd = cmd

		if cmd.function:
			try:
				cmd.function(CommandArgs.from_widget(self))
			except Exception as error:
				self.fm.notify(error)
			if kbuf.done:
				kbuf.clear()
		else:
			kbuf.clear()

	def get_list(self):
		return self.fm.loader.queue