From 572e0365b4750b035efea9c0b4a04ede56685286 Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 14 Jan 2008 01:55:29 -0500 Subject: [PATCH] switching to multiselect directory selection --- picard/ui/mainwindow.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/picard/ui/mainwindow.py b/picard/ui/mainwindow.py index 4fa106c18..274043042 100644 --- a/picard/ui/mainwindow.py +++ b/picard/ui/mainwindow.py @@ -460,11 +460,21 @@ class MainWindow(QtGui.QMainWindow): """Add directory to the tagger.""" current_directory = self.config.persist["current_directory"] or QtCore.QDir.homePath() current_directory = find_existing_path(unicode(current_directory)) - directory = QtGui.QFileDialog.getExistingDirectory(self, "", current_directory) - if directory: - directory = unicode(directory) - self.config.persist["current_directory"] = directory - self.tagger.add_directory(directory) + + # Use a custom file selection dialog to allow the selection of multiple directories + file_dialog = QtGui.QFileDialog(self, "", current_directory) + file_dialog.setFileMode(QtGui.QFileDialog.DirectoryOnly) + tree_view = file_dialog.findChild(QtGui.QTreeView) + tree_view.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) + list_view = file_dialog.findChild(QtGui.QListView, "listView") + list_view.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) + + if file_dialog.exec_() == QtGui.QDialog.Accepted: + dir_list = file_dialog.selectedFiles() + self.config.persist["current_directory"] = dir_list[0] + for directory in dir_list: + directory = unicode(directory) + self.tagger.add_directory(directory) def generate_playlist(self): """Generate a playlist."""