diff -r 000000000000 -r ca70ae20a155 src/extras/dir_iter.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/extras/dir_iter.py Tue Feb 16 10:07:05 2010 +0530 @@ -0,0 +1,78 @@ +# Copyright (c) 2005-2009 Nokia Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# +# dir_iter.py +# +# Utility module for filebrowser. +# + +import sys +import os +import time + + +class Directory_iter: + + def __init__(self, drive_list): + self.drives = [((i, u"Drive")) for i in drive_list] + self.at_root = 1 + self.path = '\\' + + def pop(self): + if os.path.splitdrive(self.path)[1] == '\\': + self.path = '\\' + self.at_root = 1 + else: + self.path = os.path.split(self.path)[0] + + def add(self, i): + if self.at_root: + self.path = str(self.drives[i][0] + u'\\') + self.at_root = 0 + else: + self.path = os.path.join(self.path, os.listdir(self.name())[i]) + + def name(self): + return self.path + + def list_repr(self): + if self.at_root: + return self.drives + else: + + def item_format(i): + full_name = os.path.join(str(self.name()), i) + try: + time_field = time.strftime("%d.%m.%Y %H:%M",\ + time.localtime(os.stat(full_name).st_mtime)) + info_field = time_field + " " + \ + str(os.stat(full_name).st_size) + "b" + if os.path.isdir(full_name): + name_field = "["+i+"]" + else: + name_field = i + except: + info_field = "[inaccessible]" + name_field = "["+i+"]" + return (unicode(name_field), unicode(info_field)) + try: + l = map(item_format, os.listdir(self.name())) + except: + l = [] + return l + + def entry(self, i): + return os.path.join(self.name(), os.listdir(self.name())[i])