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/>

Reply via email to