From 398053a40fbf20c1f766ab9bf2cffd0b71bf6f2d Mon Sep 17 00:00:00 2001 From: Michael Wiencek Date: Mon, 28 Nov 2011 03:02:21 -0600 Subject: [PATCH] Add option to ignore MBIDs when dragging in files (PICARD-56) --- picard/tagger.py | 19 +++-- picard/ui/options/general.py | 3 + picard/ui/ui_options_general.py | 63 +++++++--------- ui/options_general.ui | 128 +++++++++++++++----------------- 4 files changed, 100 insertions(+), 113 deletions(-) diff --git a/picard/tagger.py b/picard/tagger.py index e04b5b35d..0557cf9ec 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -301,15 +301,18 @@ class Tagger(QtGui.QApplication): if file is not None and error is None and not file.has_error(): puid = file.metadata['musicip_puid'] trackid = file.metadata['musicbrainz_trackid'] - albumid = file.metadata['musicbrainz_albumid'] self.puidmanager.add(puid, trackid) - if mbid_validate(albumid): - if mbid_validate(trackid): - self.move_file_to_track(file, albumid, trackid) - else: - self.move_file_to_album(file, albumid) - elif mbid_validate(trackid): - self.move_file_to_nat(file, trackid) + if not self.config.setting["ignore_file_mbids"]: + albumid = file.metadata['musicbrainz_albumid'] + if mbid_validate(albumid): + if mbid_validate(trackid): + self.move_file_to_track(file, albumid, trackid) + else: + self.move_file_to_album(file, albumid) + elif mbid_validate(trackid): + self.move_file_to_nat(file, trackid) + elif self.config.setting['analyze_new_files']: + self.analyze([file]) elif self.config.setting['analyze_new_files']: self.analyze([file]) diff --git a/picard/ui/options/general.py b/picard/ui/options/general.py index caa7c1822..0ebc131e0 100644 --- a/picard/ui/options/general.py +++ b/picard/ui/options/general.py @@ -37,6 +37,7 @@ class GeneralOptionsPage(OptionsPage): TextOption("setting", "username", ""), PasswordOption("setting", "password", ""), BoolOption("setting", "analyze_new_files", False), + BoolOption("setting", "ignore_file_mbids", False), ] def __init__(self, parent=None): @@ -54,6 +55,7 @@ class GeneralOptionsPage(OptionsPage): self.ui.username.setText(self.config.setting["username"]) self.ui.password.setText(self.config.setting["password"]) self.ui.analyze_new_files.setChecked(self.config.setting["analyze_new_files"]) + self.ui.ignore_file_mbids.setChecked(self.config.setting["ignore_file_mbids"]) def save(self): self.config.setting["server_host"] = unicode(self.ui.server_host.currentText()).strip() @@ -62,6 +64,7 @@ class GeneralOptionsPage(OptionsPage): # trivially encode the password, just to not make it so apparent self.config.setting["password"] = rot13(unicode(self.ui.password.text())) self.config.setting["analyze_new_files"] = self.ui.analyze_new_files.isChecked() + self.config.setting["ignore_file_mbids"] = self.ui.ignore_file_mbids.isChecked() register_options_page(GeneralOptionsPage) diff --git a/picard/ui/ui_options_general.py b/picard/ui/ui_options_general.py index def55d571..0a9258e61 100644 --- a/picard/ui/ui_options_general.py +++ b/picard/ui/ui_options_general.py @@ -2,83 +2,75 @@ # Form implementation generated from reading ui file 'ui/options_general.ui' # -# Created: Thu Sep 15 13:39:09 2011 -# by: PyQt4 UI code generator 4.8.3 +# Created: Mon Nov 28 02:35:54 2011 +# by: PyQt4 UI code generator 4.8.5 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - _fromUtf8 = lambda s: s - class Ui_GeneralOptionsPage(object): def setupUi(self, GeneralOptionsPage): - GeneralOptionsPage.setObjectName(_fromUtf8("GeneralOptionsPage")) + GeneralOptionsPage.setObjectName("GeneralOptionsPage") GeneralOptionsPage.resize(338, 369) self.vboxlayout = QtGui.QVBoxLayout(GeneralOptionsPage) - self.vboxlayout.setMargin(9) - self.vboxlayout.setSpacing(6) - self.vboxlayout.setObjectName(_fromUtf8("vboxlayout")) + self.vboxlayout.setObjectName("vboxlayout") self.groupBox = QtGui.QGroupBox(GeneralOptionsPage) - self.groupBox.setObjectName(_fromUtf8("groupBox")) + self.groupBox.setObjectName("groupBox") self.gridlayout = QtGui.QGridLayout(self.groupBox) - self.gridlayout.setMargin(9) self.gridlayout.setSpacing(2) - self.gridlayout.setObjectName(_fromUtf8("gridlayout")) + self.gridlayout.setObjectName("gridlayout") self.server_host = QtGui.QComboBox(self.groupBox) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(7), QtGui.QSizePolicy.Policy(0)) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.server_host.sizePolicy().hasHeightForWidth()) self.server_host.setSizePolicy(sizePolicy) self.server_host.setEditable(True) - self.server_host.setObjectName(_fromUtf8("server_host")) + self.server_host.setObjectName("server_host") self.gridlayout.addWidget(self.server_host, 1, 0, 1, 1) self.label_7 = QtGui.QLabel(self.groupBox) - self.label_7.setObjectName(_fromUtf8("label_7")) + self.label_7.setObjectName("label_7") self.gridlayout.addWidget(self.label_7, 0, 1, 1, 1) self.server_port = QtGui.QSpinBox(self.groupBox) - self.server_port.setMaximum(65535) self.server_port.setMinimum(1) - self.server_port.setProperty(_fromUtf8("value"), 80) - self.server_port.setObjectName(_fromUtf8("server_port")) + self.server_port.setMaximum(65535) + self.server_port.setProperty("value", 80) + self.server_port.setObjectName("server_port") self.gridlayout.addWidget(self.server_port, 1, 1, 1, 1) self.label = QtGui.QLabel(self.groupBox) - self.label.setObjectName(_fromUtf8("label")) + self.label.setObjectName("label") self.gridlayout.addWidget(self.label, 0, 0, 1, 1) self.vboxlayout.addWidget(self.groupBox) self.rename_files_2 = QtGui.QGroupBox(GeneralOptionsPage) - self.rename_files_2.setObjectName(_fromUtf8("rename_files_2")) + self.rename_files_2.setObjectName("rename_files_2") self.gridlayout1 = QtGui.QGridLayout(self.rename_files_2) - self.gridlayout1.setMargin(9) self.gridlayout1.setSpacing(2) - self.gridlayout1.setObjectName(_fromUtf8("gridlayout1")) + self.gridlayout1.setObjectName("gridlayout1") self.username = QtGui.QLineEdit(self.rename_files_2) - self.username.setObjectName(_fromUtf8("username")) + self.username.setObjectName("username") self.gridlayout1.addWidget(self.username, 1, 0, 1, 1) self.label_5 = QtGui.QLabel(self.rename_files_2) - self.label_5.setObjectName(_fromUtf8("label_5")) + self.label_5.setObjectName("label_5") self.gridlayout1.addWidget(self.label_5, 2, 0, 1, 1) self.password = QtGui.QLineEdit(self.rename_files_2) self.password.setEchoMode(QtGui.QLineEdit.Password) - self.password.setObjectName(_fromUtf8("password")) + self.password.setObjectName("password") self.gridlayout1.addWidget(self.password, 3, 0, 1, 1) self.label_6 = QtGui.QLabel(self.rename_files_2) - self.label_6.setObjectName(_fromUtf8("label_6")) + self.label_6.setObjectName("label_6") self.gridlayout1.addWidget(self.label_6, 0, 0, 1, 1) self.vboxlayout.addWidget(self.rename_files_2) self.groupBox_2 = QtGui.QGroupBox(GeneralOptionsPage) - self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) - self.vboxlayout1 = QtGui.QVBoxLayout(self.groupBox_2) - self.vboxlayout1.setMargin(9) - self.vboxlayout1.setSpacing(2) - self.vboxlayout1.setObjectName(_fromUtf8("vboxlayout1")) + self.groupBox_2.setObjectName("groupBox_2") + self.verticalLayout = QtGui.QVBoxLayout(self.groupBox_2) + self.verticalLayout.setObjectName("verticalLayout") self.analyze_new_files = QtGui.QCheckBox(self.groupBox_2) - self.analyze_new_files.setObjectName(_fromUtf8("analyze_new_files")) - self.vboxlayout1.addWidget(self.analyze_new_files) + self.analyze_new_files.setObjectName("analyze_new_files") + self.verticalLayout.addWidget(self.analyze_new_files) + self.ignore_file_mbids = QtGui.QCheckBox(self.groupBox_2) + self.ignore_file_mbids.setObjectName("ignore_file_mbids") + self.verticalLayout.addWidget(self.ignore_file_mbids) self.vboxlayout.addWidget(self.groupBox_2) spacerItem = QtGui.QSpacerItem(181, 21, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.vboxlayout.addItem(spacerItem) @@ -100,4 +92,5 @@ class Ui_GeneralOptionsPage(object): self.label_6.setText(_("Username:")) self.groupBox_2.setTitle(_("General")) self.analyze_new_files.setText(_("Automatically scan all new files")) + self.ignore_file_mbids.setText(_("Ignore MBIDs when loading new files")) diff --git a/ui/options_general.ui b/ui/options_general.ui index f9e970a66..0c3a2102a 100644 --- a/ui/options_general.ui +++ b/ui/options_general.ui @@ -1,7 +1,8 @@ - + + GeneralOptionsPage - - + + 0 0 @@ -9,63 +10,52 @@ 369 - - - 9 - - - 6 - + - - + + MusicBrainz Server - - - 9 - - + + 2 - - - - - 7 - 0 + + + + 0 0 - + true - - - + + + Port: - - - - 65535 - - + + + 1 - + + 65535 + + 80 - - - + + + Server address: @@ -74,43 +64,40 @@ - - + + Account Information - - - 9 - - + + 2 - - + + - - - + + + Password: - + password - - - + + + QLineEdit::Password - - - + + + Username: - + username @@ -119,33 +106,34 @@ - - + + General - - - 9 - - - 2 - + - - + + Automatically scan all new files + + + + Ignore MBIDs when loading new files + + + - + Qt::Vertical - + 181 21