PICARD-2848: Rename option "toolbar_multiselect" to "allow_multi_dirs_selection"

- the old name isn't explicit enough, and it isn't related to toolbar anymore at all
This commit is contained in:
Laurent Monin
2024-03-27 13:56:58 +01:00
parent 8af19d40cd
commit db05675957
8 changed files with 36 additions and 19 deletions

View File

@@ -40,7 +40,7 @@ PICARD_APP_NAME = "Picard"
PICARD_DISPLAY_NAME = "MusicBrainz Picard" PICARD_DISPLAY_NAME = "MusicBrainz Picard"
PICARD_APP_ID = "org.musicbrainz.Picard" PICARD_APP_ID = "org.musicbrainz.Picard"
PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop" PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop"
PICARD_VERSION = Version(3, 0, 0, 'dev', 2) PICARD_VERSION = Version(3, 0, 0, 'dev', 3)
# optional build version # optional build version

View File

@@ -511,6 +511,13 @@ def upgrade_to_v3_0_0_dev_2(config):
config.persist['splitters_OptionsDialog'] = b'' config.persist['splitters_OptionsDialog'] = b''
def upgrade_to_v3_0_0_dev_3(config):
"""Option "toolbar_multiselect" was renamed to "allow_multi_dirs_selection"."""
old_opt = 'toolbar_multiselect'
new_opt = 'allow_multi_dirs_selection'
rename_option(config, old_opt, new_opt, BoolOption, False)
def rename_option(config, old_opt, new_opt, option_type, default): def rename_option(config, old_opt, new_opt, option_type, default):
_s = config.setting _s = config.setting
if old_opt in _s: if old_opt in _s:
@@ -558,4 +565,5 @@ def upgrade_config(config):
cfg.register_upgrade_hook(upgrade_to_v2_9_0_alpha_2) cfg.register_upgrade_hook(upgrade_to_v2_9_0_alpha_2)
cfg.register_upgrade_hook(upgrade_to_v3_0_0_dev_1) cfg.register_upgrade_hook(upgrade_to_v3_0_0_dev_1)
cfg.register_upgrade_hook(upgrade_to_v3_0_0_dev_2) cfg.register_upgrade_hook(upgrade_to_v3_0_0_dev_2)
cfg.register_upgrade_hook(upgrade_to_v3_0_0_dev_3)
cfg.run_upgrade_hooks(log.debug) cfg.run_upgrade_hooks(log.debug)

View File

@@ -187,7 +187,7 @@ class UserProfileGroups():
SettingDesc('show_menu_icons', N_("Show icons in menus"), ['show_menu_icons']), SettingDesc('show_menu_icons', N_("Show icons in menus"), ['show_menu_icons']),
SettingDesc('ui_language', N_("User interface language"), ['ui_language', 'label']), SettingDesc('ui_language', N_("User interface language"), ['ui_language', 'label']),
SettingDesc('ui_theme', N_("User interface color theme"), ['ui_theme', 'label_theme']), SettingDesc('ui_theme', N_("User interface color theme"), ['ui_theme', 'label_theme']),
SettingDesc('toolbar_multiselect', N_("Allow selection of multiple directories"), ['toolbar_multiselect']), SettingDesc('allow_multi_dirs_selection', N_("Allow selection of multiple directories"), ['allow_multi_dirs_selection']),
SettingDesc('builtin_search', N_("Use builtin search rather than looking in browser"), ['builtin_search']), SettingDesc('builtin_search', N_("Use builtin search rather than looking in browser"), ['builtin_search']),
SettingDesc('use_adv_search_syntax', N_("Use advanced search syntax"), ['use_adv_search_syntax']), SettingDesc('use_adv_search_syntax', N_("Use advanced search syntax"), ['use_adv_search_syntax']),
SettingDesc('show_new_user_dialog', N_("Show a usage warning dialog when Picard starts"), ['new_user_dialog']), SettingDesc('show_new_user_dialog', N_("Show a usage warning dialog when Picard starts"), ['new_user_dialog']),

View File

@@ -1280,7 +1280,7 @@ class MainWindow(QtWidgets.QMainWindow, PreserveGeometry):
dir_list = [] dir_list = []
config = get_config() config = get_config()
if not config.setting['toolbar_multiselect']: if not config.setting['allow_multi_dirs_selection']:
directory = QtWidgets.QFileDialog.getExistingDirectory(self, "", current_directory) directory = QtWidgets.QFileDialog.getExistingDirectory(self, "", current_directory)
if directory: if directory:
dir_list.append(directory) dir_list.append(directory)

View File

@@ -72,7 +72,7 @@ class InterfaceOptionsPage(OptionsPage):
options = [ options = [
BoolOption('setting', 'toolbar_show_labels', True), BoolOption('setting', 'toolbar_show_labels', True),
BoolOption('setting', 'toolbar_multiselect', False), BoolOption('setting', 'allow_multi_dirs_selection', False),
BoolOption('setting', 'show_menu_icons', True if not IS_MACOS else False), # On macOS it is not common that the global menu shows icons BoolOption('setting', 'show_menu_icons', True if not IS_MACOS else False), # On macOS it is not common that the global menu shows icons
BoolOption('setting', 'builtin_search', True), BoolOption('setting', 'builtin_search', True),
BoolOption('setting', 'use_adv_search_syntax', False), BoolOption('setting', 'use_adv_search_syntax', False),
@@ -143,16 +143,16 @@ class InterfaceOptionsPage(OptionsPage):
if not OS_SUPPORTS_THEMES: if not OS_SUPPORTS_THEMES:
self.ui.ui_theme_container.hide() self.ui.ui_theme_container.hide()
self.ui.toolbar_multiselect.stateChanged.connect(self.multi_selection_warning) self.ui.allow_multi_dirs_selection.stateChanged.connect(self.multi_selection_warning)
def load(self): def load(self):
# Don't display the multi-selection warning when loading values. # Don't display the multi-selection warning when loading values.
# This is required because loading a different option profile could trigger the warning. # This is required because loading a different option profile could trigger the warning.
self.ui.toolbar_multiselect.blockSignals(True) self.ui.allow_multi_dirs_selection.blockSignals(True)
config = get_config() config = get_config()
self.ui.toolbar_show_labels.setChecked(config.setting['toolbar_show_labels']) self.ui.toolbar_show_labels.setChecked(config.setting['toolbar_show_labels'])
self.ui.toolbar_multiselect.setChecked(config.setting['toolbar_multiselect']) self.ui.allow_multi_dirs_selection.setChecked(config.setting['allow_multi_dirs_selection'])
self.ui.show_menu_icons.setChecked(config.setting['show_menu_icons']) self.ui.show_menu_icons.setChecked(config.setting['show_menu_icons'])
self.ui.builtin_search.setChecked(config.setting['builtin_search']) self.ui.builtin_search.setChecked(config.setting['builtin_search'])
self.ui.use_adv_search_syntax.setChecked(config.setting['use_adv_search_syntax']) self.ui.use_adv_search_syntax.setChecked(config.setting['use_adv_search_syntax'])
@@ -168,12 +168,12 @@ class InterfaceOptionsPage(OptionsPage):
self.ui.ui_theme.setCurrentIndex(self.ui.ui_theme.findData(current_theme)) self.ui.ui_theme.setCurrentIndex(self.ui.ui_theme.findData(current_theme))
# re-enable the multi-selection warning # re-enable the multi-selection warning
self.ui.toolbar_multiselect.blockSignals(False) self.ui.allow_multi_dirs_selection.blockSignals(False)
def save(self): def save(self):
config = get_config() config = get_config()
config.setting['toolbar_show_labels'] = self.ui.toolbar_show_labels.isChecked() config.setting['toolbar_show_labels'] = self.ui.toolbar_show_labels.isChecked()
config.setting['toolbar_multiselect'] = self.ui.toolbar_multiselect.isChecked() config.setting['allow_multi_dirs_selection'] = self.ui.allow_multi_dirs_selection.isChecked()
config.setting['show_menu_icons'] = self.ui.show_menu_icons.isChecked() config.setting['show_menu_icons'] = self.ui.show_menu_icons.isChecked()
self.tagger.enable_menu_icons(config.setting['show_menu_icons']) self.tagger.enable_menu_icons(config.setting['show_menu_icons'])
config.setting['builtin_search'] = self.ui.builtin_search.isChecked() config.setting['builtin_search'] = self.ui.builtin_search.isChecked()
@@ -218,7 +218,7 @@ class InterfaceOptionsPage(OptionsPage):
item.setText(path) item.setText(path)
def multi_selection_warning(self): def multi_selection_warning(self):
if not self.ui.toolbar_multiselect.isChecked(): if not self.ui.allow_multi_dirs_selection.isChecked():
return return
dialog = QtWidgets.QMessageBox( dialog = QtWidgets.QMessageBox(
@@ -232,7 +232,7 @@ class InterfaceOptionsPage(OptionsPage):
QtWidgets.QMessageBox.StandardButton.Yes | QtWidgets.QMessageBox.StandardButton.No, QtWidgets.QMessageBox.StandardButton.Yes | QtWidgets.QMessageBox.StandardButton.No,
self) self)
if dialog.exec() == QtWidgets.QMessageBox.StandardButton.No: if dialog.exec() == QtWidgets.QMessageBox.StandardButton.No:
self.ui.toolbar_multiselect.setCheckState(QtCore.Qt.CheckState.Unchecked) self.ui.allow_multi_dirs_selection.setCheckState(QtCore.Qt.CheckState.Unchecked)
register_options_page(InterfaceOptionsPage) register_options_page(InterfaceOptionsPage)

View File

@@ -52,9 +52,9 @@ class Ui_InterfaceOptionsPage(object):
self.miscellaneous_box.setObjectName("miscellaneous_box") self.miscellaneous_box.setObjectName("miscellaneous_box")
self.vboxlayout1 = QtWidgets.QVBoxLayout(self.miscellaneous_box) self.vboxlayout1 = QtWidgets.QVBoxLayout(self.miscellaneous_box)
self.vboxlayout1.setObjectName("vboxlayout1") self.vboxlayout1.setObjectName("vboxlayout1")
self.toolbar_multiselect = QtWidgets.QCheckBox(self.miscellaneous_box) self.allow_multi_dirs_selection = QtWidgets.QCheckBox(self.miscellaneous_box)
self.toolbar_multiselect.setObjectName("toolbar_multiselect") self.allow_multi_dirs_selection.setObjectName("allow_multi_dirs_selection")
self.vboxlayout1.addWidget(self.toolbar_multiselect) self.vboxlayout1.addWidget(self.allow_multi_dirs_selection)
self.builtin_search = QtWidgets.QCheckBox(self.miscellaneous_box) self.builtin_search = QtWidgets.QCheckBox(self.miscellaneous_box)
self.builtin_search.setObjectName("builtin_search") self.builtin_search.setObjectName("builtin_search")
self.vboxlayout1.addWidget(self.builtin_search) self.vboxlayout1.addWidget(self.builtin_search)
@@ -104,8 +104,8 @@ class Ui_InterfaceOptionsPage(object):
InterfaceOptionsPage.setTabOrder(self.toolbar_show_labels, self.show_menu_icons) InterfaceOptionsPage.setTabOrder(self.toolbar_show_labels, self.show_menu_icons)
InterfaceOptionsPage.setTabOrder(self.show_menu_icons, self.ui_language) InterfaceOptionsPage.setTabOrder(self.show_menu_icons, self.ui_language)
InterfaceOptionsPage.setTabOrder(self.ui_language, self.ui_theme) InterfaceOptionsPage.setTabOrder(self.ui_language, self.ui_theme)
InterfaceOptionsPage.setTabOrder(self.ui_theme, self.toolbar_multiselect) InterfaceOptionsPage.setTabOrder(self.ui_theme, self.allow_multi_dirs_selection)
InterfaceOptionsPage.setTabOrder(self.toolbar_multiselect, self.builtin_search) InterfaceOptionsPage.setTabOrder(self.allow_multi_dirs_selection, self.builtin_search)
InterfaceOptionsPage.setTabOrder(self.builtin_search, self.use_adv_search_syntax) InterfaceOptionsPage.setTabOrder(self.builtin_search, self.use_adv_search_syntax)
InterfaceOptionsPage.setTabOrder(self.use_adv_search_syntax, self.new_user_dialog) InterfaceOptionsPage.setTabOrder(self.use_adv_search_syntax, self.new_user_dialog)
InterfaceOptionsPage.setTabOrder(self.new_user_dialog, self.quit_confirmation) InterfaceOptionsPage.setTabOrder(self.new_user_dialog, self.quit_confirmation)
@@ -123,7 +123,7 @@ class Ui_InterfaceOptionsPage(object):
self.label.setText(_("User interface language:")) self.label.setText(_("User interface language:"))
self.label_theme.setText(_("User interface color theme:")) self.label_theme.setText(_("User interface color theme:"))
self.miscellaneous_box.setTitle(_("Miscellaneous")) self.miscellaneous_box.setTitle(_("Miscellaneous"))
self.toolbar_multiselect.setText(_("Allow selection of multiple directories")) self.allow_multi_dirs_selection.setText(_("Allow selection of multiple directories"))
self.builtin_search.setText(_("Use builtin search rather than looking in browser")) self.builtin_search.setText(_("Use builtin search rather than looking in browser"))
self.use_adv_search_syntax.setText(_("Use advanced query syntax")) self.use_adv_search_syntax.setText(_("Use advanced query syntax"))
self.new_user_dialog.setText(_("Show the new user dialog when starting Picard")) self.new_user_dialog.setText(_("Show the new user dialog when starting Picard"))

View File

@@ -58,6 +58,7 @@ from picard.config_upgrade import (
upgrade_to_v2_6_0_beta_3, upgrade_to_v2_6_0_beta_3,
upgrade_to_v2_6_0_dev_1, upgrade_to_v2_6_0_dev_1,
upgrade_to_v2_8_0_dev_2, upgrade_to_v2_8_0_dev_2,
upgrade_to_v3_0_0_dev_3,
) )
from picard.const import ( from picard.const import (
DEFAULT_FILE_NAMING_FORMAT, DEFAULT_FILE_NAMING_FORMAT,
@@ -364,3 +365,11 @@ class TestPicardConfigUpgrades(TestPicardConfigCommon):
self.assertEqual(expected, self.config.setting['toolbar_layout']) self.assertEqual(expected, self.config.setting['toolbar_layout'])
upgrade_to_v2_8_0_dev_2(self.config) upgrade_to_v2_8_0_dev_2(self.config)
self.assertEqual(expected, self.config.setting['toolbar_layout']) self.assertEqual(expected, self.config.setting['toolbar_layout'])
def test_upgrade_to_v3_0_0_dev_3(self):
BoolOption('setting', 'allow_multi_dirs_selection', False)
self.config.setting['toolbar_multiselect'] = True
upgrade_to_v3_0_0_dev_3(self.config)
self.assertNotIn('toolbar_multiselect', self.config.setting)
self.assertTrue(self.config.setting['allow_multi_dirs_selection'])

View File

@@ -95,7 +95,7 @@
</property> </property>
<layout class="QVBoxLayout"> <layout class="QVBoxLayout">
<item> <item>
<widget class="QCheckBox" name="toolbar_multiselect"> <widget class="QCheckBox" name="allow_multi_dirs_selection">
<property name="text"> <property name="text">
<string>Allow selection of multiple directories</string> <string>Allow selection of multiple directories</string>
</property> </property>
@@ -218,7 +218,7 @@
<tabstop>show_menu_icons</tabstop> <tabstop>show_menu_icons</tabstop>
<tabstop>ui_language</tabstop> <tabstop>ui_language</tabstop>
<tabstop>ui_theme</tabstop> <tabstop>ui_theme</tabstop>
<tabstop>toolbar_multiselect</tabstop> <tabstop>allow_multi_dirs_selection</tabstop>
<tabstop>builtin_search</tabstop> <tabstop>builtin_search</tabstop>
<tabstop>use_adv_search_syntax</tabstop> <tabstop>use_adv_search_syntax</tabstop>
<tabstop>new_user_dialog</tabstop> <tabstop>new_user_dialog</tabstop>