Fix regression that broke recursive adding on windows with non ascii file paths

This commit is contained in:
Kovid Goyal 2010-02-02 10:49:40 -07:00
parent 7178234279
commit c8ca1afe70

View File

@ -43,28 +43,34 @@ class RecursiveFind(QThread):
self.single_book_per_directory = single
self.canceled = False
def walk(self, root):
self.books = []
for dirpath in os.walk(root):
if self.canceled:
return
self.emit(SIGNAL('update(PyQt_PyObject)'),
_('Searching in')+' '+dirpath[0])
self.books += list(self.db.find_books_in_directory(dirpath[0],
self.single_book_per_directory))
def run(self):
root = os.path.abspath(self.path)
self.books = []
if isinstance(root, unicode):
root = root.encode(filesystem_encoding)
try:
for dirpath in os.walk(root):
if self.canceled:
return
self.emit(SIGNAL('update(PyQt_PyObject)'),
_('Searching in')+' '+dirpath[0])
self.books += list(self.db.find_books_in_directory(dirpath[0],
self.single_book_per_directory))
except Exception, err:
import traceback
traceback.print_exc()
self.walk(root)
except:
try:
msg = unicode(err)
except:
msg = repr(err)
self.emit(SIGNAL('found(PyQt_PyObject)'), msg)
return
if isinstance(root, unicode):
root = root.encode(filesystem_encoding)
self.walk(root)
except Exception, err:
import traceback
traceback.print_exc()
try:
msg = unicode(err)
except:
msg = repr(err)
self.emit(SIGNAL('found(PyQt_PyObject)'), msg)
return
self.books = [formats for formats in self.books if formats]