summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-04-13 17:57:46 +0200
committerhut <hut@lavabit.com>2010-04-13 17:57:46 +0200
commit447cbcd65588eafdb85b407750602c0fdd591ef4 (patch)
tree22d9bdbe6481a945dba0e57c6f9f2b9639fe0a94
parentd492db527bd0a610bef85682615de2c25d5145d6 (diff)
downloadranger-447cbcd65588eafdb85b407750602c0fdd591ef4.tar.gz
dirarg: added unit test and almost working implementaiton
-rw-r--r--ranger/core/actions.py6
-rw-r--r--test/tc_direction.py7
2 files changed, 12 insertions, 1 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py
index 7b8d192d..df623c77 100644
--- a/ranger/core/actions.py
+++ b/ranger/core/actions.py
@@ -545,7 +545,7 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 	def copy(self, narg=None, dirarg=None):
 		"""Copy the selected items"""
 		direction = Direction(dirarg or {})
-		selected = direction.select(
+		pos, selected = direction.select(
 				override=narg,
 				lst=self.env.cwd.files,
 				current=self.env.cwd.pointer,
@@ -553,7 +553,11 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 
 		selected = selected or self.env.get_selection()
 		self.env.copy = set(f for f in selected if f in self.env.cwd.files)
+		self.env.copy.add(self.env.cwd.pointed_obj)
 		self.env.cut = False
+		self.env.cwd.pointer = pos
+		self.env.cwd.correct_pointer()
+		self.env.copy.add(self.env.cwd.pointed_obj)
 		self.ui.browser.main_column.request_redraw()
 
 	def cut(self, narg=None, dirarg=None):
diff --git a/test/tc_direction.py b/test/tc_direction.py
index 18f9eb4c..124a7001 100644
--- a/test/tc_direction.py
+++ b/test/tc_direction.py
@@ -76,6 +76,13 @@ class TestDirections(unittest.TestCase):
 		d2 = Direction(absolute=True)
 		self.assertEqual(5, d2.move(direction=9, override=5))
 
+	def test_select(self):
+		d = Direction(down=3)
+		lst = list(range(100))
+		self.assertEqual((6, [3,4,5]), d.select(current=3, pagesize=10, override=None, lst=lst))
+		d = Direction(down=3, pages=True)
+		self.assertEqual((9, [3,4,5,6,7,8]), d.select(current=3, pagesize=2, override=None, lst=lst))
+
 if __name__ == '__main__':
 	unittest.main()
 
498f6cd ^
c442a5ad ^

c498f6cd ^
c442a5ad ^
c88b9e31 ^
5cec03b4 ^



c442a5ad ^

54ed56f2 ^
c442a5ad ^
c88b9e31 ^
5cec03b4 ^


c442a5ad ^
5cec03b4 ^
c442a5ad ^
c88b9e31 ^
5cec03b4 ^


c442a5ad ^

54ed56f2 ^
c442a5ad ^
c88b9e31 ^
5cec03b4 ^

c442a5ad ^

54ed56f2 ^
c442a5ad ^
c88b9e31 ^
5cec03b4 ^

c442a5ad ^


54ed56f2 ^
c442a5ad ^
c88b9e31 ^
5cec03b4 ^
2ec6d1e5 ^
c442a5ad ^
2ec6d1e5 ^


c442a5ad ^
2ec6d1e5 ^
95fbb9bf ^

e0d71f95 ^

5cec03b4 ^





a754efc5 ^
5cec03b4 ^


a754efc5 ^
5cec03b4 ^





a754efc5 ^
5cec03b4 ^


2ec6d1e5 ^

c88b9e31 ^
d5d43e04 ^
2ec6d1e5 ^
d5d43e04 ^
2ec6d1e5 ^
d5d43e04 ^
44fdc79f ^
d5d43e04 ^
6362c51d ^
9ad81331 ^
6362c51d ^
d5d43e04 ^

2ec6d1e5 ^

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