mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-01 05:13:58 +00:00
Add an option to select multiple directories from the 'Add Directory' window
This commit is contained in:
@@ -460,10 +460,32 @@ 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:
|
||||
|
||||
dir_list = []
|
||||
if not self.config.setting["toolbar_multiselect"]:
|
||||
directory = QtGui.QFileDialog.getExistingDirectory(self, "", current_directory)
|
||||
if directory:
|
||||
dir_list.append(directory)
|
||||
else:
|
||||
# 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()
|
||||
|
||||
if len(dir_list) == 1:
|
||||
self.config.persist["current_directory"] = dir_list[0]
|
||||
elif len(dir_list) > 1:
|
||||
(parent, dir) = os.path.split(str(dir_list[0]))
|
||||
self.config.persist["current_directory"] = parent
|
||||
|
||||
for directory in dir_list:
|
||||
directory = unicode(directory)
|
||||
self.config.persist["current_directory"] = directory
|
||||
self.tagger.add_directory(directory)
|
||||
|
||||
def generate_playlist(self):
|
||||
|
||||
@@ -32,6 +32,7 @@ class InterfaceOptionsPage(OptionsPage):
|
||||
|
||||
options = [
|
||||
BoolOption("setting", "toolbar_show_labels", True),
|
||||
BoolOption("setting", "toolbar_multiselect", False),
|
||||
]
|
||||
|
||||
def __init__(self, parent=None):
|
||||
@@ -41,9 +42,11 @@ class InterfaceOptionsPage(OptionsPage):
|
||||
|
||||
def load(self):
|
||||
self.ui.toolbar_show_labels.setChecked(self.config.setting["toolbar_show_labels"])
|
||||
self.ui.toolbar_multiselect.setChecked(self.config.setting["toolbar_multiselect"])
|
||||
|
||||
def save(self):
|
||||
self.config.setting["toolbar_show_labels"] = self.ui.toolbar_show_labels.isChecked()
|
||||
self.config.setting["toolbar_multiselect"] = self.ui.toolbar_multiselect.isChecked()
|
||||
self.tagger.window.update_toolbar_style()
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,11 @@ class Ui_InterfaceOptionsPage(object):
|
||||
|
||||
self.toolbar_show_labels = QtGui.QCheckBox(self.groupBox_2)
|
||||
self.toolbar_show_labels.setObjectName("toolbar_show_labels")
|
||||
self.toolbar_multiselect = QtGui.QCheckBox(self.groupBox_2)
|
||||
self.toolbar_multiselect.setObjectName("toolbar_multiselect")
|
||||
|
||||
self.vboxlayout1.addWidget(self.toolbar_show_labels)
|
||||
self.vboxlayout1.addWidget(self.toolbar_multiselect)
|
||||
self.vboxlayout.addWidget(self.groupBox_2)
|
||||
|
||||
spacerItem = QtGui.QSpacerItem(181,21,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding)
|
||||
@@ -41,4 +45,5 @@ class Ui_InterfaceOptionsPage(object):
|
||||
def retranslateUi(self, InterfaceOptionsPage):
|
||||
self.groupBox_2.setTitle(_("Toolbar"))
|
||||
self.toolbar_show_labels.setText(_("Show text labels under icons"))
|
||||
self.toolbar_multiselect.setText(_("Allow selection of multiple directories"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user