Simplify AcousticBrainz options

This commit is contained in:
Philipp Wolfer
2021-10-21 17:53:53 +02:00
parent 52cc63e61f
commit 69e086a233
3 changed files with 27 additions and 77 deletions

View File

@@ -68,8 +68,7 @@ class AcousticBrainzOptionsPage(OptionsPage):
self._extractor_valid = True
self.ui = Ui_AcousticBrainzOptionsPage()
self.ui.setupUi(self)
self.ui.disable_acoustic_features.clicked.connect(self.update_groupboxes)
self.ui.use_acoustic_features.clicked.connect(self.update_groupboxes)
self.ui.use_acousticbrainz.toggled.connect(lambda on: self._acousticbrainz_extractor_check())
self.ui.acousticbrainz_extractor.textEdited.connect(self._acousticbrainz_extractor_check)
self.ui.acousticbrainz_extractor_browse.clicked.connect(self.acousticbrainz_extractor_browse)
self.ui.acousticbrainz_extractor_download.clicked.connect(self.acousticbrainz_extractor_download)
@@ -79,21 +78,16 @@ class AcousticBrainzOptionsPage(OptionsPage):
self._config = get_config()
def load(self):
if self._config.setting["use_acousticbrainz"]:
self.ui.use_acoustic_features.setChecked(True)
else:
self.ui.disable_acoustic_features.setChecked(True)
self.ui.use_acousticbrainz.setChecked(self._config.setting["use_acousticbrainz"])
extractor_path = self._config.setting["acousticbrainz_extractor"]
if not extractor_path or not ab_check_version(extractor_path):
self.ui.acousticbrainz_extractor.clear()
else:
self.ui.acousticbrainz_extractor.setText(extractor_path)
self.update_groupboxes()
self._acousticbrainz_extractor_check()
def save(self):
enabled = self.ui.acousticbrainz_settings.isEnabled()
enabled = self.ui.use_acousticbrainz.isChecked()
changed = self._config.setting["use_acousticbrainz"] != enabled
if changed:
self._config.setting["use_acousticbrainz"] = enabled
@@ -102,11 +96,6 @@ class AcousticBrainzOptionsPage(OptionsPage):
self._config.setting["acousticbrainz_extractor"] = self.ui.acousticbrainz_extractor.text()
ab_setup_extractor()
def update_groupboxes(self):
enabled = self.ui.use_acoustic_features.isChecked()
self.ui.acousticbrainz_settings.setEnabled(enabled)
self._acousticbrainz_extractor_check()
def acousticbrainz_extractor_browse(self):
path, _filter = QtWidgets.QFileDialog.getOpenFileName(self, "", self.ui.acousticbrainz_extractor.text())
if path:
@@ -118,7 +107,7 @@ class AcousticBrainzOptionsPage(OptionsPage):
webbrowser2.open(ACOUSTICBRAINZ_DOWNLOAD_URL)
def _acousticbrainz_extractor_check(self):
enabled = self.ui.acousticbrainz_settings.isEnabled()
enabled = self.ui.use_acousticbrainz.isChecked()
self.ui.acousticbrainz_extractor.setPlaceholderText(_("Path to streaming_extractor_music(.exe)"))
if not enabled:

View File

@@ -10,48 +10,35 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_AcousticBrainzOptionsPage(object):
def setupUi(self, AcousticBrainzOptionsPage):
AcousticBrainzOptionsPage.setObjectName("AcousticBrainzOptionsPage")
AcousticBrainzOptionsPage.resize(371, 408)
AcousticBrainzOptionsPage.resize(515, 503)
self.verticalLayout = QtWidgets.QVBoxLayout(AcousticBrainzOptionsPage)
self.verticalLayout.setObjectName("verticalLayout")
self.acoustic_features = QtWidgets.QGroupBox(AcousticBrainzOptionsPage)
self.acoustic_features.setCheckable(False)
self.acoustic_features.setObjectName("acoustic_features")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.acoustic_features)
self.use_acousticbrainz = QtWidgets.QGroupBox(AcousticBrainzOptionsPage)
self.use_acousticbrainz.setCheckable(True)
self.use_acousticbrainz.setChecked(False)
self.use_acousticbrainz.setObjectName("use_acousticbrainz")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.use_acousticbrainz)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.disable_acoustic_features = QtWidgets.QRadioButton(self.acoustic_features)
self.disable_acoustic_features.setObjectName("disable_acoustic_features")
self.verticalLayout_3.addWidget(self.disable_acoustic_features)
self.use_acoustic_features = QtWidgets.QRadioButton(self.acoustic_features)
self.use_acoustic_features.setObjectName("use_acoustic_features")
self.verticalLayout_3.addWidget(self.use_acoustic_features)
self.verticalLayout.addWidget(self.acoustic_features)
self.acousticbrainz_settings = QtWidgets.QGroupBox(AcousticBrainzOptionsPage)
self.acousticbrainz_settings.setObjectName("acousticbrainz_settings")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.acousticbrainz_settings)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.label = QtWidgets.QLabel(self.acousticbrainz_settings)
self.label = QtWidgets.QLabel(self.use_acousticbrainz)
self.label.setObjectName("label")
self.verticalLayout_2.addWidget(self.label)
self.verticalLayout_3.addWidget(self.label)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.acousticbrainz_extractor = QtWidgets.QLineEdit(self.acousticbrainz_settings)
self.acousticbrainz_extractor = QtWidgets.QLineEdit(self.use_acousticbrainz)
self.acousticbrainz_extractor.setObjectName("acousticbrainz_extractor")
self.horizontalLayout_2.addWidget(self.acousticbrainz_extractor)
self.acousticbrainz_extractor_browse = QtWidgets.QPushButton(self.acousticbrainz_settings)
self.acousticbrainz_extractor_browse = QtWidgets.QPushButton(self.use_acousticbrainz)
self.acousticbrainz_extractor_browse.setObjectName("acousticbrainz_extractor_browse")
self.horizontalLayout_2.addWidget(self.acousticbrainz_extractor_browse)
self.acousticbrainz_extractor_download = QtWidgets.QPushButton(self.acousticbrainz_settings)
self.acousticbrainz_extractor_download = QtWidgets.QPushButton(self.use_acousticbrainz)
self.acousticbrainz_extractor_download.setObjectName("acousticbrainz_extractor_download")
self.horizontalLayout_2.addWidget(self.acousticbrainz_extractor_download)
self.verticalLayout_2.addLayout(self.horizontalLayout_2)
self.acousticbrainz_extractor_info = QtWidgets.QLabel(self.acousticbrainz_settings)
self.verticalLayout_3.addLayout(self.horizontalLayout_2)
self.acousticbrainz_extractor_info = QtWidgets.QLabel(self.use_acousticbrainz)
self.acousticbrainz_extractor_info.setText("")
self.acousticbrainz_extractor_info.setObjectName("acousticbrainz_extractor_info")
self.verticalLayout_2.addWidget(self.acousticbrainz_extractor_info)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout_2.addLayout(self.horizontalLayout)
self.verticalLayout.addWidget(self.acousticbrainz_settings)
self.verticalLayout_3.addWidget(self.acousticbrainz_extractor_info)
self.verticalLayout.addWidget(self.use_acousticbrainz)
spacerItem = QtWidgets.QSpacerItem(181, 21, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
@@ -60,10 +47,7 @@ class Ui_AcousticBrainzOptionsPage(object):
def retranslateUi(self, AcousticBrainzOptionsPage):
_translate = QtCore.QCoreApplication.translate
self.acoustic_features.setTitle(_("AcousticBrainz features extraction"))
self.disable_acoustic_features.setText(_("Do not use acoustic feature extraction"))
self.use_acoustic_features.setText(_("Use acoustic feature extraction"))
self.acousticbrainz_settings.setTitle(_("AcousticBrainz Settings"))
self.use_acousticbrainz.setTitle(_("AcousticBrainz features extraction"))
self.label.setText(_("AcousticBrainz/Essentia feature extractor:"))
self.acousticbrainz_extractor_browse.setText(_("Browse..."))
self.acousticbrainz_extractor_download.setText(_("Download..."))

View File

@@ -6,43 +6,23 @@
<rect>
<x>0</x>
<y>0</y>
<width>371</width>
<height>408</height>
<width>515</width>
<height>503</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="acoustic_features">
<widget class="QGroupBox" name="use_acousticbrainz">
<property name="title">
<string>AcousticBrainz features extraction</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QRadioButton" name="disable_acoustic_features">
<property name="text">
<string>Do not use acoustic feature extraction</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="use_acoustic_features">
<property name="text">
<string>Use acoustic feature extraction</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="acousticbrainz_settings">
<property name="title">
<string>AcousticBrainz Settings</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
@@ -78,9 +58,6 @@
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout"/>
</item>
</layout>
</widget>
</item>