Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package picard for openSUSE:Factory checked in at 2021-06-11 00:18:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/picard (Old) and /work/SRC/openSUSE:Factory/.picard.new.32437 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "picard" Fri Jun 11 00:18:42 2021 rev:53 rq:898921 version:2.6.3 Changes: -------- --- /work/SRC/openSUSE:Factory/picard/picard.changes 2021-05-03 22:08:47.732331021 +0200 +++ /work/SRC/openSUSE:Factory/.picard.new.32437/picard.changes 2021-06-11 00:19:15.197377336 +0200 @@ -1,0 +2,15 @@ +Wed Jun 9 09:47:37 UTC 2021 - Michael Vetter <mvet...@suse.com> + +- Update to 2.6.3: + * PICARD-2205[1] - Syntax highlighting ignores functions + starting with underscore or numbers + * PICARD-2206[2] - Fix tab order in option pages + * PICARD-2209[3] - Minimizing / maximizing Picard window + registers desktop status indicator multiple times + * PICARD-2214[4] - Backslash at end of script raises TypeError + * PICARD-2219[5] - Empty file naming script causes files + to be renamed to _ext + * PICARD-2226[6] - Some config changes are not applied + until restart + +------------------------------------------------------------------- Old: ---- picard-2.6.2.tar.gz New: ---- picard-2.6.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ picard.spec ++++++ --- /var/tmp/diff_new_pack.ylub6k/_old 2021-06-11 00:19:15.789378365 +0200 +++ /var/tmp/diff_new_pack.ylub6k/_new 2021-06-11 00:19:15.793378371 +0200 @@ -17,7 +17,7 @@ Name: picard -Version: 2.6.2 +Version: 2.6.3 Release: 0 Summary: The Next Generation MusicBrainz Tagger License: GPL-2.0-or-later ++++++ picard-2.6.2.tar.gz -> picard-2.6.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/NEWS.md new/picard-release-2.6.3/NEWS.md --- old/picard-release-2.6.2/NEWS.md 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/NEWS.md 2021-06-06 12:45:12.000000000 +0200 @@ -1,3 +1,15 @@ +# Version 2.6.3 - 2021-06-07 + +## Bugfixes + +- [PICARD-2205](https://tickets.metabrainz.org/browse/PICARD-2205) - Syntax highlighting ignores functions starting with underscore or numbers +- [PICARD-2206](https://tickets.metabrainz.org/browse/PICARD-2206) - Fix tab order in option pages +- [PICARD-2209](https://tickets.metabrainz.org/browse/PICARD-2209) - Minimizing / maximizing Picard window registers desktop status indicator multiple times +- [PICARD-2214](https://tickets.metabrainz.org/browse/PICARD-2214) - Backslash at end of script raises TypeError +- [PICARD-2219](https://tickets.metabrainz.org/browse/PICARD-2219) - Empty file naming script causes files to be renamed to _ext +- [PICARD-2226](https://tickets.metabrainz.org/browse/PICARD-2226) - Some config changes are not applied until restart + + # Version 2.6.2 - 2021-04-27 ## Bugfixes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/installer/i18n/sources/ms_MY.json new/picard-release-2.6.3/installer/i18n/sources/ms_MY.json --- old/picard-release-2.6.2/installer/i18n/sources/ms_MY.json 1970-01-01 01:00:00.000000000 +0100 +++ new/picard-release-2.6.3/installer/i18n/sources/ms_MY.json 2021-06-06 12:45:12.000000000 +0200 @@ -0,0 +1,16 @@ +{ + "MsgAlreadyInstalled": "${PRODUCT_NAME} telah pun terpasang serta harus dirombak sekiranya mahu memasang naik taraf ini ke edaran ${PRODUCT_VERSION}. \n\nMaju dengan menekan \"OK\" atau batal dengan menekan \"Batal\".", + "MsgApplicationRunning": "Perisian ${PRODUCT_NAME} sedang berjalan. Sila tutup lalu cuba lagi.", + "MsgRequires64Bit": "Edaran ${PRODUCT_NAME} ini memerlukan sistem Windows 64 bit.", + "MuiDescriptionRequired": "Pasang ${PRODUCT_NAME} bersama fail perlu untuk dijalankan.", + "MuiDescriptionLang": "Pasang terjemahan ${PRODUCT_NAME} dalam pelbagai bahasa.", + "MuiDescriptionShortcuts": "Pasang pintasan bagi melancarkan ${PRODUCT_NAME}.", + "MuiDescriptionDesktop": "Pasang pintasan di paparan utama", + "MuiDescriptionStartMenu": "Pasang pintasan di Menu Mula", + "OptionRemoveSettings": "Alih keluar tetapan dan data peribadi", + "SectionDesktop": "Atas meja", + "SectionLanguages": "Bahasa", + "SectionRequired": "Fail atur cara (wajib)", + "SectionShortcuts": "Pintasan", + "SectionStartMenu": "Menu mula" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/installer/picard-setup.nsi.in new/picard-release-2.6.3/installer/picard-setup.nsi.in --- old/picard-release-2.6.2/installer/picard-setup.nsi.in 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/installer/picard-setup.nsi.in 2021-06-06 12:45:12.000000000 +0200 @@ -100,6 +100,7 @@ !insertmacro LOAD_LANGUAGE "Italian" !insertmacro LOAD_LANGUAGE "Japanese" ; !insertmacro LOAD_LANGUAGE "Korean" +!insertmacro LOAD_LANGUAGE "Malay" ; !insertmacro LOAD_LANGUAGE "Norwegian" ; !insertmacro LOAD_LANGUAGE "Polish" ; !insertmacro LOAD_LANGUAGE "Portuguese" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/__init__.py new/picard-release-2.6.3/picard/__init__.py --- old/picard-release-2.6.2/picard/__init__.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/__init__.py 2021-06-06 12:45:12.000000000 +0200 @@ -41,7 +41,7 @@ PICARD_DISPLAY_NAME = "MusicBrainz Picard" PICARD_APP_ID = "org.musicbrainz.Picard" PICARD_DESKTOP_NAME = PICARD_APP_ID + ".desktop" -PICARD_VERSION = Version(2, 6, 2, 'final', 0) +PICARD_VERSION = Version(2, 6, 3, 'final', 0) # optional build version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/config.py new/picard-release-2.6.3/picard/config.py --- old/picard-release-2.6.2/picard/config.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/config.py 2021-06-06 12:45:12.000000000 +0200 @@ -359,9 +359,6 @@ setting = None persist = None -_thread_configs = {} -_thread_config_lock = threading.RLock() - def setup_config(app, filename=None): global config, setting, persist @@ -369,10 +366,8 @@ config = Config.from_app(app) else: config = Config.from_file(app, filename) - _thread_configs[threading.get_ident()] = config setting = config.setting persist = config.persist - _init_purge_config_timer() def get_config(): @@ -380,41 +375,4 @@ Config objects for threads are created on demand and cached for later use. """ - thread_id = threading.get_ident() - thread_config = _thread_configs.get(thread_id) - if not thread_config: - if not config: - return None # Not yet initialized - _thread_config_lock.acquire() - try: - config_file = config.fileName() - log.debug('Instantiating Config for thread %s using %s.', thread_id, config_file) - thread_config = Config.from_file(None, config_file) - _thread_configs[thread_id] = thread_config - finally: - _thread_config_lock.release() - return thread_config - - -def _init_purge_config_timer(purge_interval_milliseconds=60000): - def run_purge_config_timer(): - purge_config_instances() - start_purge_config_timer() - - def start_purge_config_timer(): - QtCore.QTimer.singleShot(purge_interval_milliseconds, run_purge_config_timer) - - start_purge_config_timer() - - -def purge_config_instances(): - """Removes cached config instances for no longer active threads.""" - _thread_config_lock.acquire() - try: - all_threads = set([thread.ident for thread in threading.enumerate()]) - threads_config = set(_thread_configs) - for thread_id in threads_config.difference(all_threads): - log.debug('Purging config instance for thread %s.', thread_id) - del _thread_configs[thread_id] - finally: - _thread_config_lock.release() + return config diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/file.py new/picard-release-2.6.3/picard/file.py --- old/picard-release-2.6.2/picard/file.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/file.py 2021-06-06 12:45:12.000000000 +0200 @@ -420,6 +420,8 @@ metadata.update(file_metadata) (filename, new_metadata) = script_to_filename_with_metadata( naming_format, metadata, file=self, settings=settings) + if not filename: + return None # NOTE: the script_to_filename strips the extension away ext = new_metadata.get('~extension', file_extension) return filename + '.' + ext.lstrip('.') @@ -443,6 +445,8 @@ naming_format = settings['file_naming_format'] if naming_format: new_filename = self._script_to_filename(naming_format, metadata, ext, settings) + if not new_filename: + new_filename = old_filename if not settings['rename_files']: new_filename = os.path.join(os.path.dirname(new_filename), old_filename) if not settings['move_files']: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/script/parser.py new/picard-release-2.6.3/picard/script/parser.py --- old/picard-release-2.6.2/picard/script/parser.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/script/parser.py 2021-06-06 12:45:12.000000000 +0200 @@ -204,8 +204,8 @@ text ::= [^$%] | '\$' | '\%' | '\(' | '\)' | '\,' argtext ::= [^$%(),] | '\$' | '\%' | '\(' | '\)' | '\,' identifier ::= [a-zA-Z0-9_] - variable ::= '%' identifier '%' - function ::= '$' identifier '(' (argument (',' argument)*)? ')' + variable ::= '%' (identifier | ':')+ '%' + function ::= '$' (identifier)+ '(' (argument (',' argument)*)? ')' expression ::= (variable | function | text)* argument ::= (variable | function | argtext)* """ @@ -293,6 +293,8 @@ text.append('\n') elif ch == 't': text.append('\t') + elif ch is None: + self.__raise_eof() elif ch not in "$%(),\\": self.__raise_char(ch) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/mainwindow.py new/picard-release-2.6.3/picard/ui/mainwindow.py --- old/picard-release-2.6.2/picard/ui/mainwindow.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/mainwindow.py 2021-06-06 12:45:12.000000000 +0200 @@ -183,6 +183,7 @@ def __init__(self, parent=None, disable_player=False): super().__init__(parent) + self._shown = False self.selected_objects = [] self.ignore_selection_changes = IgnoreSelectionContext(self.update_selection) self.toolbar = None @@ -286,8 +287,9 @@ def showEvent(self, event): super().showEvent(event) - if DesktopStatusIndicator: + if not self._shown and DesktopStatusIndicator: self.register_status_indicator(DesktopStatusIndicator(self.windowHandle())) + self._shown = True def closeEvent(self, event): config = get_config() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/options/releases.py new/picard-release-2.6.3/picard/ui/options/releases.py --- old/picard-release-2.6.2/picard/ui/options/releases.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/options/releases.py 2021-06-06 12:45:12.000000000 +0200 @@ -175,11 +175,11 @@ def add_slider(name, griditer, context): label = pgettext_attributes(context, name) - self._release_type_sliders[name] = \ - ReleaseTypeScore(self.ui.type_group, - self.ui.gridLayout, - label, - next(griditer)) + self._release_type_sliders[name] = ReleaseTypeScore( + self.ui.type_group, + self.ui.gridLayout, + label, + next(griditer)) griditer = RowColIter(len(RELEASE_PRIMARY_GROUPS) + len(RELEASE_SECONDARY_GROUPS) @@ -190,16 +190,25 @@ key=lambda v: pgettext_attributes('release_group_secondary_type', v)): add_slider(name, griditer, context='release_group_secondary_type') - self.reset_preferred_types_btn = QtWidgets.QPushButton(self.ui.type_group) - self.reset_preferred_types_btn.setText(_("Reset all")) + reset_types_btn = QtWidgets.QPushButton(self.ui.type_group) + reset_types_btn.setText(_("Reset all")) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.reset_preferred_types_btn.sizePolicy().hasHeightForWidth()) - self.reset_preferred_types_btn.setSizePolicy(sizePolicy) + sizePolicy.setHeightForWidth(reset_types_btn.sizePolicy().hasHeightForWidth()) + reset_types_btn.setSizePolicy(sizePolicy) r, c = next(griditer) - self.ui.gridLayout.addWidget(self.reset_preferred_types_btn, r, c, 1, 2) - self.reset_preferred_types_btn.clicked.connect(self.reset_preferred_types) + self.ui.gridLayout.addWidget(reset_types_btn, r, c, 1, 2) + reset_types_btn.clicked.connect(self.reset_preferred_types) + + self.setTabOrder(reset_types_btn, self.ui.country_list) + self.setTabOrder(self.ui.country_list, self.ui.preferred_country_list) + self.setTabOrder(self.ui.preferred_country_list, self.ui.add_countries) + self.setTabOrder(self.ui.add_countries, self.ui.remove_countries) + self.setTabOrder(self.ui.remove_countries, self.ui.format_list) + self.setTabOrder(self.ui.format_list, self.ui.preferred_format_list) + self.setTabOrder(self.ui.preferred_format_list, self.ui.add_formats) + self.setTabOrder(self.ui.add_formats, self.ui.remove_formats) self.ui.add_countries.clicked.connect(self.add_preferred_countries) self.ui.remove_countries.clicked.connect(self.remove_preferred_countries) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/ui_options_interface.py new/picard-release-2.6.3/picard/ui/ui_options_interface.py --- old/picard-release-2.6.2/picard/ui/ui_options_interface.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/ui_options_interface.py 2021-06-06 12:45:12.000000000 +0200 @@ -139,11 +139,13 @@ InterfaceOptionsPage.setTabOrder(self.toolbar_multiselect, self.builtin_search) InterfaceOptionsPage.setTabOrder(self.builtin_search, self.use_adv_search_syntax) InterfaceOptionsPage.setTabOrder(self.use_adv_search_syntax, self.quit_confirmation) - InterfaceOptionsPage.setTabOrder(self.quit_confirmation, self.starting_directory) + InterfaceOptionsPage.setTabOrder(self.quit_confirmation, self.filebrowser_horizontal_autoscroll) + InterfaceOptionsPage.setTabOrder(self.filebrowser_horizontal_autoscroll, self.starting_directory) InterfaceOptionsPage.setTabOrder(self.starting_directory, self.starting_directory_path) InterfaceOptionsPage.setTabOrder(self.starting_directory_path, self.starting_directory_browse) InterfaceOptionsPage.setTabOrder(self.starting_directory_browse, self.ui_language) - InterfaceOptionsPage.setTabOrder(self.ui_language, self.toolbar_layout_list) + InterfaceOptionsPage.setTabOrder(self.ui_language, self.ui_theme) + InterfaceOptionsPage.setTabOrder(self.ui_theme, self.toolbar_layout_list) InterfaceOptionsPage.setTabOrder(self.toolbar_layout_list, self.add_button) InterfaceOptionsPage.setTabOrder(self.add_button, self.insert_separator_button) InterfaceOptionsPage.setTabOrder(self.insert_separator_button, self.up_button) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/ui_options_metadata.py new/picard-release-2.6.3/picard/ui/ui_options_metadata.py --- old/picard-release-2.6.2/picard/ui/ui_options_metadata.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/ui_options_metadata.py 2021-06-06 12:45:12.000000000 +0200 @@ -3,8 +3,10 @@ # Automatically generated - don't edit. # Use `python setup.py build_ui` to update it. + from PyQt5 import QtCore, QtGui, QtWidgets + class Ui_MetadataOptionsPage(object): def setupUi(self, MetadataOptionsPage): MetadataOptionsPage.setObjectName("MetadataOptionsPage") @@ -83,7 +85,8 @@ QtCore.QMetaObject.connectSlotsByName(MetadataOptionsPage) MetadataOptionsPage.setTabOrder(self.translate_artist_names, self.artist_locale) MetadataOptionsPage.setTabOrder(self.artist_locale, self.standardize_artists) - MetadataOptionsPage.setTabOrder(self.standardize_artists, self.convert_punctuation) + MetadataOptionsPage.setTabOrder(self.standardize_artists, self.standardize_instruments) + MetadataOptionsPage.setTabOrder(self.standardize_instruments, self.convert_punctuation) MetadataOptionsPage.setTabOrder(self.convert_punctuation, self.release_ars) MetadataOptionsPage.setTabOrder(self.release_ars, self.track_ars) MetadataOptionsPage.setTabOrder(self.track_ars, self.va_name) @@ -105,4 +108,3 @@ self.label_7.setText(_("Non-album tracks:")) self.nat_name_default.setText(_("Default")) self.va_name_default.setText(_("Default")) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/ui_options_network.py new/picard-release-2.6.3/picard/ui/ui_options_network.py --- old/picard-release-2.6.2/picard/ui/ui_options_network.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/ui_options_network.py 2021-06-06 12:45:12.000000000 +0200 @@ -124,11 +124,14 @@ self.retranslateUi(NetworkOptionsPage) QtCore.QMetaObject.connectSlotsByName(NetworkOptionsPage) - NetworkOptionsPage.setTabOrder(self.web_proxy, self.server_host) + NetworkOptionsPage.setTabOrder(self.web_proxy, self.proxy_type_http) + NetworkOptionsPage.setTabOrder(self.proxy_type_http, self.proxy_type_socks) + NetworkOptionsPage.setTabOrder(self.proxy_type_socks, self.server_host) NetworkOptionsPage.setTabOrder(self.server_host, self.server_port) NetworkOptionsPage.setTabOrder(self.server_port, self.username) NetworkOptionsPage.setTabOrder(self.username, self.password) - NetworkOptionsPage.setTabOrder(self.password, self.browser_integration) + NetworkOptionsPage.setTabOrder(self.password, self.transfer_timeout) + NetworkOptionsPage.setTabOrder(self.transfer_timeout, self.browser_integration) NetworkOptionsPage.setTabOrder(self.browser_integration, self.browser_integration_port) NetworkOptionsPage.setTabOrder(self.browser_integration_port, self.browser_integration_localhost_only) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/ui_options_script.py new/picard-release-2.6.3/picard/ui/ui_options_script.py --- old/picard-release-2.6.2/picard/ui/ui_options_script.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/ui_options_script.py 2021-06-06 12:45:12.000000000 +0200 @@ -95,9 +95,13 @@ self.remove_button.clicked.connect(self.script_list.remove_selected_script) self.enable_tagger_scripts.toggled['bool'].connect(ScriptingOptionsPage.enable_tagger_scripts_toggled) QtCore.QMetaObject.connectSlotsByName(ScriptingOptionsPage) - ScriptingOptionsPage.setTabOrder(self.enable_tagger_scripts, self.add_button) - ScriptingOptionsPage.setTabOrder(self.add_button, self.script_list) + ScriptingOptionsPage.setTabOrder(self.enable_tagger_scripts, self.script_list) ScriptingOptionsPage.setTabOrder(self.script_list, self.tagger_script) + ScriptingOptionsPage.setTabOrder(self.tagger_script, self.add_button) + ScriptingOptionsPage.setTabOrder(self.add_button, self.scripting_documentation_button) + ScriptingOptionsPage.setTabOrder(self.scripting_documentation_button, self.move_up_button) + ScriptingOptionsPage.setTabOrder(self.move_up_button, self.move_down_button) + ScriptingOptionsPage.setTabOrder(self.move_down_button, self.remove_button) def retranslateUi(self, ScriptingOptionsPage): _translate = QtCore.QCoreApplication.translate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/ui_options_tags_compatibility_id3.py new/picard-release-2.6.3/picard/ui/ui_options_tags_compatibility_id3.py --- old/picard-release-2.6.2/picard/ui/ui_options_tags_compatibility_id3.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/ui_options_tags_compatibility_id3.py 2021-06-06 12:45:12.000000000 +0200 @@ -107,7 +107,8 @@ TagsCompatibilityOptionsPage.setTabOrder(self.enc_utf8, self.enc_utf16) TagsCompatibilityOptionsPage.setTabOrder(self.enc_utf16, self.enc_iso88591) TagsCompatibilityOptionsPage.setTabOrder(self.enc_iso88591, self.id3v23_join_with) - TagsCompatibilityOptionsPage.setTabOrder(self.id3v23_join_with, self.write_id3v1) + TagsCompatibilityOptionsPage.setTabOrder(self.id3v23_join_with, self.itunes_compatible_grouping) + TagsCompatibilityOptionsPage.setTabOrder(self.itunes_compatible_grouping, self.write_id3v1) def retranslateUi(self, TagsCompatibilityOptionsPage): _translate = QtCore.QCoreApplication.translate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/picard/ui/widgets/scripttextedit.py new/picard-release-2.6.3/picard/ui/widgets/scripttextedit.py --- old/picard-release-2.6.2/picard/ui/widgets/scripttextedit.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/picard/ui/widgets/scripttextedit.py 2021-06-06 12:45:12.000000000 +0200 @@ -79,7 +79,7 @@ def __init__(self, document): super().__init__(document) syntax_theme = theme.syntax_theme - self.func_re = QtCore.QRegExp(r"\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*\(") + self.func_re = QtCore.QRegExp(r"\$(?!noop)[_a-zA-Z0-9]*\(") self.func_fmt = QtGui.QTextCharFormat() self.func_fmt.setFontWeight(QtGui.QFont.Bold) self.func_fmt.setForeground(syntax_theme.func) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/test/picardtestcase.py new/picard-release-2.6.3/test/picardtestcase.py --- old/picard-release-2.6.2/test/picardtestcase.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/test/picardtestcase.py 2021-06-06 12:45:12.000000000 +0200 @@ -29,7 +29,6 @@ mkdtemp, mkstemp, ) -import threading import unittest from unittest.mock import Mock @@ -81,8 +80,6 @@ fake_config = Mock() fake_config.setting = {} fake_config.persist = {} - # Make config object available to current thread - config._thread_configs[threading.get_ident()] = fake_config # Make config object available for legacy use config.config = fake_config config.setting = fake_config.setting diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/test/test_config.py new/picard-release-2.6.3/test/test_config.py --- old/picard-release-2.6.2/test/test_config.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/test/test_config.py 2021-06-06 12:45:12.000000000 +0200 @@ -23,11 +23,9 @@ import logging import os import shutil -import threading from test.picardtestcase import PicardTestCase -import picard.config from picard.config import ( BoolOption, Config, @@ -373,14 +371,3 @@ # store invalid value in config file directly self.config.setValue('setting/var_option', object) self.assertEqual(self.config.setting["var_option"], set(["a", "b"])) - - -class TestPurgeConfigInstancesTimer(TestPicardConfigCommon): - - def test_purge_inactive_config_instances(self): - thread_id = threading.get_ident() - self.assertIn(thread_id, picard.config._thread_configs) - picard.config._thread_configs['foo'] = {} - picard.config.purge_config_instances() - self.assertIn(thread_id, picard.config._thread_configs) - self.assertNotIn('foo', picard.config._thread_configs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/test/test_file.py new/picard-release-2.6.3/test/test_file.py --- old/picard-release-2.6.2/test/test_file.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/test/test_file.py 2021-06-06 12:45:12.000000000 +0200 @@ -218,6 +218,12 @@ os.path.realpath('/somepath/subdir/somealbum/somefile.mp3'), filename) + def test_make_filename_empty_script(self): + config.setting['rename_files'] = True + config.setting['file_naming_format'] = '$noop()' + filename = self.file.make_filename(self.file.filename, self.metadata) + self.assertEqual(os.path.realpath('/somepath/somefile.mp3'), filename) + def test_make_filename_replace_trailing_dots(self): config.setting['rename_files'] = True config.setting['move_files'] = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/test/test_script.py new/picard-release-2.6.3/test/test_script.py --- old/picard-release-2.6.2/test/test_script.py 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/test/test_script.py 2021-06-06 12:45:12.000000000 +0200 @@ -992,6 +992,12 @@ def test_char_escape(self): self.assertScriptResultEquals(r"\n\t\$\%\(\)\,\\", "\n\t$%(),\\") + def test_char_escape_unexpected_char(self): + self.assertRaises(ScriptSyntaxError, self.parser.eval, r'\x') + + def test_char_escape_end_of_file(self): + self.assertRaises(ScriptEndOfFile, self.parser.eval, 'foo\\') + def test_raise_unknown_function(self): self.assertRaises(ScriptUnknownFunction, self.parser.eval, '$unknownfn()') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/ui/options_interface.ui new/picard-release-2.6.3/ui/options_interface.ui --- old/picard-release-2.6.2/ui/options_interface.ui 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/ui/options_interface.ui 2021-06-06 12:45:12.000000000 +0200 @@ -305,10 +305,12 @@ <tabstop>builtin_search</tabstop> <tabstop>use_adv_search_syntax</tabstop> <tabstop>quit_confirmation</tabstop> + <tabstop>filebrowser_horizontal_autoscroll</tabstop> <tabstop>starting_directory</tabstop> <tabstop>starting_directory_path</tabstop> <tabstop>starting_directory_browse</tabstop> <tabstop>ui_language</tabstop> + <tabstop>ui_theme</tabstop> <tabstop>toolbar_layout_list</tabstop> <tabstop>add_button</tabstop> <tabstop>insert_separator_button</tabstop> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/ui/options_metadata.ui new/picard-release-2.6.3/ui/options_metadata.ui --- old/picard-release-2.6.2/ui/options_metadata.ui 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/ui/options_metadata.ui 2021-06-06 12:45:12.000000000 +0200 @@ -166,6 +166,7 @@ <tabstop>translate_artist_names</tabstop> <tabstop>artist_locale</tabstop> <tabstop>standardize_artists</tabstop> + <tabstop>standardize_instruments</tabstop> <tabstop>convert_punctuation</tabstop> <tabstop>release_ars</tabstop> <tabstop>track_ars</tabstop> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/ui/options_network.ui new/picard-release-2.6.3/ui/options_network.ui --- old/picard-release-2.6.2/ui/options_network.ui 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/ui/options_network.ui 2021-06-06 12:45:12.000000000 +0200 @@ -272,10 +272,13 @@ </widget> <tabstops> <tabstop>web_proxy</tabstop> + <tabstop>proxy_type_http</tabstop> + <tabstop>proxy_type_socks</tabstop> <tabstop>server_host</tabstop> <tabstop>server_port</tabstop> <tabstop>username</tabstop> <tabstop>password</tabstop> + <tabstop>transfer_timeout</tabstop> <tabstop>browser_integration</tabstop> <tabstop>browser_integration_port</tabstop> <tabstop>browser_integration_localhost_only</tabstop> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/ui/options_script.ui new/picard-release-2.6.3/ui/options_script.ui --- old/picard-release-2.6.2/ui/options_script.ui 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/ui/options_script.ui 2021-06-06 12:45:12.000000000 +0200 @@ -209,9 +209,13 @@ </customwidgets> <tabstops> <tabstop>enable_tagger_scripts</tabstop> - <tabstop>add_button</tabstop> <tabstop>script_list</tabstop> <tabstop>tagger_script</tabstop> + <tabstop>add_button</tabstop> + <tabstop>scripting_documentation_button</tabstop> + <tabstop>move_up_button</tabstop> + <tabstop>move_down_button</tabstop> + <tabstop>remove_button</tabstop> </tabstops> <resources/> <connections> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/picard-release-2.6.2/ui/options_tags_compatibility_id3.ui new/picard-release-2.6.3/ui/options_tags_compatibility_id3.ui --- old/picard-release-2.6.2/ui/options_tags_compatibility_id3.ui 2021-04-27 11:13:00.000000000 +0200 +++ new/picard-release-2.6.3/ui/options_tags_compatibility_id3.ui 2021-06-06 12:45:12.000000000 +0200 @@ -236,6 +236,7 @@ <tabstop>enc_utf16</tabstop> <tabstop>enc_iso88591</tabstop> <tabstop>id3v23_join_with</tabstop> + <tabstop>itunes_compatible_grouping</tabstop> <tabstop>write_id3v1</tabstop> </tabstops> <resources/>