A little more efficient directory reading.

This commit is contained in:
Lukáš Lalinský
2006-11-23 18:00:47 +01:00
parent 7e0d6e3f55
commit c02a0bd23d
2 changed files with 22 additions and 17 deletions

View File

@@ -202,6 +202,9 @@ class Tagger(QtGui.QApplication, ComponentManager, Component):
def __set_status_bar_message(self, message, args=()):
self.window.set_status_bar_message(_(message) % args)
def __clear_status_bar_message(self):
self.window.clear_status_bar_message()
def __load_plugins(self, plugin_dir):
"""Load plugins from the specified directory."""
if not os.path.isdir(plugin_dir):
@@ -283,26 +286,24 @@ class Tagger(QtGui.QApplication, ComponentManager, Component):
"""Add all files from the directory ``directory`` to the tagger."""
directory = os.path.normpath(directory)
self.log.debug(u"Adding directory %r", directory)
self.thread_assist.spawn(self.__read_directory_thread, directory)
self.thread_assist.spawn(self.__read_directory_thread, directory, thread=self.load_thread)
def __read_directory_thread(self, directory):
directories = [encode_filename(directory)]
while directories:
directory = directories.pop()
self.log.debug(u"Reading directory %r", directory)
self.thread_assist.proxy_to_main(
self.__set_status_bar_message,
N_("Reading directory %s ..."), decode_filename(directory))
filenames = []
for name in os.listdir(directory):
name = os.path.join(directory, name)
if os.path.isdir(name):
directories.append(name)
else:
filenames.append(decode_filename(name))
if filenames:
self.thread_assist.proxy_to_main(self.add_files, filenames)
self.log.debug(u"Reading directory %r", directory)
self.thread_assist.proxy_to_main(
self.__set_status_bar_message,
N_("Reading directory %s ..."), directory)
directory = encode_filename(directory)
filenames = []
for name in os.listdir(directory):
name = os.path.join(directory, name)
if os.path.isdir(name):
self.thread_assist.proxy_to_main(self.add_directory, decode_filename(name))
else:
filenames.append(decode_filename(name))
self.thread_assist.proxy_to_main(self.__clear_status_bar_message)
if filenames:
self.thread_assist.proxy_to_main(self.add_files, filenames)
def get_file_by_id(self, id):
"""Get file by a file ID."""

View File

@@ -371,6 +371,10 @@ class MainWindow(QtGui.QMainWindow):
"""Set the status bar message."""
self.statusBar().showMessage(message, timeout)
def clear_status_bar_message(self):
"""Set the status bar message."""
self.statusBar().clearMessage()
def search(self):
"""Search for album, artist or track on the MusicBrainz website."""
text = unicode(self.searchEdit.text())