Limit browser integration to localhost by default.
It can be changed in Advanced > Network > Browser Integration options.
Browser Integration options changes are now applied only after user validation.
Fix compilation flag incorrectly set by Picard, track featured artists don't indicate compilation.
Sophist explained:
Ideally the MB database would show a secondary type of Compilation accurately, but since it (presumably) doesn't, Picard tries to determine whether it is a compilation by seeing if all the tracks are by the same artist, the implication being that it is a compilation album if there are tracks with different artists.
There are a few problems with this:
1. Picard was comparing both primary and secondary track artists, so if all tracks have the same main artist but some also have featured artists (which is NOT a compilation), then Picard was flagging this (incorrectly) as a compilation.
2. Picard was not checking the release-group secondary-type field for Compilation - so e.g. a Greatest Hits album is a compilation, but since often all tracks have the same artist, Picard was flagging this (incorrectly) as NOT a compilation.
The functions _insert_bytes_no_mmap and _delete_bytes_no_mmap call
mutagen.util.lock, which in turn uses the fnctl module which isn't
available on Windows.
In some cases, mostly after maximizing/restoring window a few times,
metadata table columns were smaller and smaller due to wrong calculations.
Also when window was resized, weird things were appearing with those columns.
This patch is handling those events much better (but still not perfect).
Horizontal scroll was changed to be per pixel instead of per column.
It tries to handle scrollbar appeareance/disappearance, maximize/minimize cycles, restart cycles, elegantly.
It was "Open this directory when starting:" which is not what's
happening: the selected directory would only be visible if the user is
using the file browser, but not if he's only using the "Add folder"
button.
By default, Picard remembers last directory used and restores it on start,
but this isn't not always desirable, one may prefer to start on the same directory
each time.
This patch allows one to change default behavior and set a starting directory.
Fixes the case where the user disables the browser integration checkbox but does not save the settings. This lead to the browser integration being disabled while the option was still enabled.
This will make Picard's browser integration to listen on localhost only, as listening on the public interface is a possible security and privacy concern. There is still an option to enable listening on the external interface to allow for special requirements such as using the Picard Barcode Scanner android app.
As reported in PICARD-444, the following error is received when
installing over an existing plugin:
Traceback (most recent call last):
File ".\picard\ui\options\plugins.py", line 134, in open_plugins
self.install_plugin(path)
File ".\picard\ui\options\plugins.py", line 148, in install_plugin
self.tagger.pluginmanager.install_plugin(path, dest)
File ".\picard\plugin.py", line 198, in install_plugin
same_file = os.path.samefile(path, dest) if dest_exists else False
AttributeError: 'module' object has no attribute 'samefile'
Fix following errors:
1. On plugin install:
Traceback (most recent call last):
File ".\picard\ui\options\plugins.py", line 133, in open_plugins
self.install_plugin(path)
File ".\picard\ui\options\plugins.py", line 138, in install_plugin
dest = os.path.join(self.tagger.user_plugin_dir, file)
AttributeError: 'Tagger' object has no attribute 'user_plugin_dir'
2. On Open Plugin Folder:
Traceback (most recent call last):
File ".\picard\ui\options\plugins.py", line 151, in open_plugin_dir
QtGui.QDesktopServices.openUrl(QtCore.QUrl(self.loader %
self.tagger.user_plugin_dir, QtCore.QUrl.TolerantMode))
AttributeError: 'Tagger' object has no attribute 'user_plugin_dir'.
Code missed from commit 7c4fdf765c on
2013-06-08.
MB sometimes gives dates in form yyyy-mm. Mutagen cannot save id3v23
dates in this format and truncates them to yyyy. Then they don't match
when the file is reloaded.
This fix detects New metadata dates in this format and truncates them.