summary refs log tree commit diff stats
path: root/ranger
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2009-12-23 20:02:39 +0100
committerhut <hut@lavabit.com>2009-12-23 20:02:39 +0100
commitfd39b80a83da3049198ef317aab2d7bc5c82039a (patch)
tree15f2f6762f79002266db64a0885d83806ab5d509 /ranger
parent793554498569c8f39e0ffcff4b475a948a4645c8 (diff)
downloadranger-fd39b80a83da3049198ef317aab2d7bc5c82039a.tar.gz
optimized directory loading
instead of creating a new directory object when loading_content,
get the one which is cached in the environment.
Diffstat (limited to 'ranger')
-rw-r--r--ranger/fsobject/directory.py4
-rw-r--r--ranger/fsobject/loader.py16
2 files changed, 12 insertions, 8 deletions
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py
index 99a4bc61..44c4cf96 100644
--- a/ranger/fsobject/directory.py
+++ b/ranger/fsobject/directory.py
@@ -128,10 +128,10 @@ class Directory(SuperClass, SettingsAware):
 			files = []
 			for name in self.filenames:
 				if isdir(name):
-					item = Directory(name)
+					item = self.fm.env.get_directory(name)
 				else:
 					item = File(name)
-				item.load()
+				item.load_if_outdated()
 				files.append(item)
 				yield
 
diff --git a/ranger/fsobject/loader.py b/ranger/fsobject/loader.py
index 00992651..483595c3 100644
--- a/ranger/fsobject/loader.py
+++ b/ranger/fsobject/loader.py
@@ -37,12 +37,16 @@ class Loader(object):
 		self.queue.appendleft(obj)
 
 	def work(self):
-		if not self.queue:
-			return
-
-		item = self.queue[0]
-		if item.load_generator is None:
-			self.queue.popleft()
+		while True:
+			# get the first item with a proper load_generator
+			try:
+				item = self.queue[0]
+				if item.load_generator is None:
+					self.queue.popleft()
+				else:
+					break
+			except IndexError:
+				return
 
 		self.rotate()
 		self.tick += 1
2159eb8 ^
a782b70 ^

2159eb8 ^
a782b70 ^






0f8b7a1 ^



2159eb8 ^

a782b70 ^



2159eb8 ^
a782b70 ^


0f8b7a1 ^
de36484 ^
0f8b7a1 ^

2159eb8 ^

a782b70 ^

2159eb8 ^
a782b70 ^

a782b70 ^
5685a17 ^
a782b70 ^
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