Commit Graph

6577 Commits

Author SHA1 Message Date
Philipp Wolfer
ebfd17574a PICARD-118: Set cache location to portable config dir 2019-10-25 20:21:27 +02:00
Philipp Wolfer
02cf4cddc0 PICARD-118: Build Picard portable for Windows on Appveyor 2019-10-25 20:21:26 +02:00
Philipp Wolfer
c55034edbf PICARD-118: Allow building a portable version of Picard
The portable version is build in the form of a PyInstaller onefile build which stores config and plugin data next to the executable location.
2019-10-25 20:21:26 +02:00
Philipp Wolfer
275f3023eb Simplified Github pull request template
Github will now automatically link PICARD-XXX correctly.
2019-10-25 16:54:42 +02:00
Philipp Wolfer
981b2460b9 PICARD-1647: Fix plugin status icon not getting repainted 2019-10-25 13:38:06 +02:00
Philipp Wolfer
e8a22de919 ASF: Improved error handling for unpack_image
Improvements to unpack_image taken from https://github.com/quodlibet/quodlibet/blob/master/quodlibet/quodlibet/formats/wma.py#L228
2019-10-17 19:02:30 +02:00
Philipp Wolfer
496898621b mutagenext.tak.TAKInfo should inherit from mutagen.StreamInfo 2019-10-17 15:26:18 +02:00
Philipp Wolfer
62a23e1512 PICARD-1644: Simplified gettext fallback by using NullTranslations() 2019-10-17 08:00:57 +02:00
Philipp Wolfer
65cf732036 PICARD-1644: Fixed gettext install with Python 3.8
The call to translation.install() provided an invalid parameter, but this had no effect in earlier Python versions.
2019-10-17 08:00:57 +02:00
Philipp Wolfer
881eb21cca travis: explicitly add builds for PyQt <= 5.10
Remove PyQt <= 5.10 from regular build matrix and instead add a couple of explicit test jobs.
2019-10-16 22:10:42 +02:00
Philipp Wolfer
c9606bb61c travis: test with Python 3.8 2019-10-16 22:10:42 +02:00
Philipp Wolfer
3352e7e86e PICARD-1643: Fixed saving performer tags to Vorbis and APEv2
Tags in the format of performer:instrument were not saved to Vorbis and APEv2 tags if instrument contained non-ASCII characters.
2019-10-16 18:43:36 +02:00
Philipp Wolfer
1604a7cac6 isort: always consider mutagen third-party, even if available locally 2019-10-16 09:41:34 +02:00
Philipp Wolfer
4fa9bb3b1c Fixed isort skip_glob not always applied. 2019-10-16 09:39:26 +02:00
Philipp Wolfer
2dcf546fc5 Move Windows AttachConsole handling to PyInstaller launch hook
For one this is only needed on Windows when running as GUI app, not when running directly from console. Also this should happen as eraly as possible before anything else gets initialized.
2019-10-15 16:00:13 +02:00
Philipp Wolfer
1180ea4826 PICARD-1642: Fixed crash on startup if CD lookup button is disabled 2019-10-15 14:43:12 +02:00
Philipp Wolfer
552051aeb9 PICARD-1260: Sort titles naturally
"Foo 10" should sort after "Foo 2"
2019-10-15 12:21:00 +02:00
Laurent Monin
ffc5ff9dfa Add circleci badge to README 2019-10-15 10:55:14 +02:00
Laurent Monin
f8ea0e6017 Merge pull request #1324 from zas/circleci
Add default circleci config
2019-10-15 10:48:14 +02:00
Philipp Wolfer
ec0282a132 PICARD-1640: Do not copy legacy settings when --config-file was specified
If the user explicitly specified a config file being used, do not attempt to migrate any old settings. This is only done when using the app default settings location.
2019-10-15 07:47:46 +02:00
Laurent Monin
85a177a010 Add default circleci config 2019-10-15 02:42:38 +02:00
Philipp Wolfer
fb20b00418 PICARD-1630: Always save FLAC picture blocks after Vorbis comments
If FLAC picture blocks are located before the Vorbis comments, Windows cannot read the tags. By ensuring the pictures are always located after the Vorbis comments the FLAC metadata will be visible and editable in Windows Explorer.
2019-10-14 11:38:03 +02:00
Laurent Monin
e16c7c4fb8 Update picard.pot 2019-10-12 11:59:01 +02:00
Philipp Wolfer
411854ea7c PICARD-1637: Fixed Picard crashing on preserve time exception
Changed to not handle PreserveTimesStatError in _save_and_rename, there is nothing useful that can be done about this here. Raise this to the caller, making this being handled as error condition in _saving_finished
2019-10-11 17:53:09 +02:00
Justin W. Flory
a07867478f travis: Condense IRC notification to one message
This commit changes how Travis sends an alert to the `#metabrainz` IRC
channel. Currently, it comes across as three lines:

```
<travis-ci> metabrainz/picard#5094 (master - 3bd4c03 : Philipp Wolfer): The build passed.
<travis-ci> Change view : e44eafc037...3bd4c031af
<travis-ci> Build details : https://travis-ci.org/metabrainz/picard/builds/595956271
```

This commit condenses them into one:

```
<travis-ci> [infrastructure:upgrade/teleirc-1.3.2@9f909cb - build #59] CI passed! (https://travis-ci.org/FOSSRIT/infrastructure/builds/581454707)
```

The important info is included. Repo name, branch, commit hash, Travis
CI build number, CI result, and a URL to get more info.

This makes it easier for someone like me to filter human noise from bot
noise in reading my client scrollback.

Signed-off-by: Justin W. Flory <git@jwf.io>
2019-10-11 05:54:44 +02:00
Philipp Wolfer
ee5a429c62 PICARD-1635: Fixed crashes on UI update for deleted files
When files are already have state = REMOVED but the itemviews UI updates Picard could crash since there are no colors defined for this state.
2019-10-10 13:06:41 +02:00
Philipp Wolfer
3bd4c031af Merge pull request #1310 from mineo/pluginmanager-info
Log more information when a plugin failed to load
2019-10-10 08:11:57 +02:00
Philipp Wolfer
e44eafc037 PICARD-1636: Fixed POSIX compliant default locale detection
On system with different locales per category (e.g. German language, but English number formats) setlocale(LC_ALL) does not return a single locale name. Query the actual locale for LC_MESSAGES.
2019-10-10 07:54:22 +02:00
Philipp Wolfer
f0c95c3a07 PICARD-1634: fix filebrowser horizontal scroll position on macOS 2019-10-09 22:19:10 +02:00
Philipp Wolfer
776f10d5a4 PICARD-1633: fix system locale detection on macOS
This failed due to:
- macOS returning language / country separated by "-" instead of "_" (en-UK instead of en_UK)
- required pyobjc modules not being packaged
2019-10-09 22:18:36 +02:00
Philipp Wolfer
16160e62a3 Bump version to 2.3.0dev1 2019-10-09 22:17:02 +02:00
Philipp Wolfer
056315debe Merge pull request #1312 from mineo/genre-ui-improvements
PICARD-1632: Genre ui improvements
2019-10-09 08:29:30 +02:00
Wieland Hoffmann
47e0b4db0e test_regexfilter: Fix the test
* only repeats the preceding regular expression, but in the old test, there was
nothing preceding it. This showed up when tests were executed via `python
setup.py test`:

> .........................................E: 20:54:38,617 /home/wieland/dev/picard/picard/track.__init__:88: Failed to compile regex /*/: nothing to repeat at position 0
> Traceback (most recent call last):
>   File "/home/wieland/dev/picard/picard/track.py", line 86, in __init__
>     regex_search = re.compile(remain, re.IGNORECASE)
>   File "/usr/lib/python3.7/re.py", line 234, in compile
>     return _compile(pattern, flags)
>   File "/usr/lib/python3.7/re.py", line 286, in _compile
>     p = sre_compile.compile(pattern, flags)
>   File "/usr/lib/python3.7/sre_compile.py", line 764, in compile
>     p = sre_parse.parse(p, flags)
>   File "/usr/lib/python3.7/sre_parse.py", line 930, in parse
>     p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
>   File "/usr/lib/python3.7/sre_parse.py", line 426, in _parse_sub
>     not nested and not items))
>   File "/usr/lib/python3.7/sre_parse.py", line 651, in _parse
>     source.tell() - here + len(this))
> re.error: nothing to repeat at position 0

This was swallowed by py.test's behaviour to swallow stdout & stderr if no tests
fail.

Remove `*` from test_regexfilter and add an additional test with `/.*/` to
ensure this works.

The genre filter UI handled this correctly by showing the re.error in the UI.
2019-10-09 08:23:08 +02:00
Philipp Wolfer
056bde87e6 travisci: fixed builds with PyQt 5.8
sip got updated, but we need to build with an older version.
2019-10-09 08:22:36 +02:00
Wieland Hoffmann
01f95430d9 Genres options: Sentences end with a period
First lines of commit messages don't :-)
2019-10-08 22:04:53 +02:00
Wieland Hoffmann
b34e6348c2 Genres options: +word* means *in*clude, not *ex*clude 2019-10-08 22:04:18 +02:00
Wieland Hoffmann
fe857ef360 Genres options: Remove tooltip durations
Both tooltips are quite long and not trivial to understand for people not
already familiar with them. Hiding them after just 5 seconds is way too soon. To
not get into bikeshedding over how long the tooltip should be shown, just don't
hide it.
2019-10-08 22:01:12 +02:00
Wieland Hoffmann
7bd1673bd9 Use log.exception to get a traceback in one more catch-all error handler 2019-10-08 20:55:32 +02:00
Wieland Hoffmann
6ad55403db Use self.plugin_error and log.exception
This changes the error message from

> E: 20:28:35,604 pluginmanager.load_plugins_from_directory:216: Unable to load plugin 'add_album_column': [Errno 13] Keine Berechtigung: '/home/wieland/.config/MusicBrainz/Picard/plugins/add_album_column.py'

to include the whole stack trace:

> E: 20:28:52,099 pluginmanager.load_plugins_from_directory:216: Unable to load plugin 'add_album_column'
> Traceback (most recent call last):
>   File "./picard/pluginmanager.py", line 214, in load_plugins_from_directory
>     self._load_plugin_from_directory(name, plugindir)
>   File "./picard/pluginmanager.py", line 237, in _load_plugin_from_directory
>     info = imp.find_module(name, [plugindir])
>   File "/usr/lib/python3.7/imp.py", line 300, in find_module
>     with open(file_path, 'rb') as file:
> PermissionError: [Errno 13] Keine Berechtigung: '/home/wieland/.config/MusicBrainz/Picard/plugins/add_album_column.py'

The catch-nearly-all codepath in _load_plugin_from_directory does the same.

This also means that the plugin_errored signal is emitted for `name`.
2019-10-08 20:50:42 +02:00
Wieland Hoffmann
ca1590f153 Include file information in error messages during plugin loading
Previously, the error messages were of the form

> E: 20:10:04,902 pluginmanager.plugin_error:175: Failed loading zipped plugin 'add_album_column'

Since Picards plugin directories are only logged at debug level, this meant that
at least a restart was required to figure out which file contains the unloadable
plugin. Now the error message includes the filename:

> E: 20:20:30,756 pluginmanager.plugin_error:174: Failed loading zipped plugin 'add_album_column' from '/home/wieland/.config/MusicBrainz/Picard/plugins/add_album_column.zip'
2019-10-08 20:50:42 +02:00
Philipp Wolfer
b12c1bb40b Release 2.2.0 2019-10-08 14:22:20 +02:00
Laurent Monin
a5d9c5aae7 Tidy up CD Lookup UI options code 2019-10-08 14:04:47 +02:00
Philipp Wolfer
416267f929 PICARD-1624: Fix saving options without AUTO_DETECT_DRIVES
Since 995281f saving options without CD auto detection available caused an error.
2019-10-08 11:59:57 +02:00
Philipp Wolfer
9ac535bf9b Updated changelog 2019-10-08 09:02:18 +02:00
Philipp Wolfer
6e9da57d75 Updated translations from Transifex 2019-10-08 08:41:36 +02:00
Philipp Wolfer
3a12744c4e Always update en_* locales on get_po_files 2019-10-08 08:23:46 +02:00
Philipp Wolfer
6534a50f61 Removed NEWS.txt -> NEWS.md symlink
No real need for this.
2019-10-04 14:23:42 +02:00
Philipp Wolfer
98d7a9ee68 Appveyor: Do not include Picard version in build numbers
This gets outdated quickly and is not necessary.
2019-10-04 11:24:10 +02:00
Philipp Wolfer
8bb3388c81 Appveyor: Avoid blank lines in scripts 2019-10-04 10:41:25 +02:00
Philipp Wolfer
36c82c673f Appveyor: Run tests with pytest and generate report 2019-10-04 10:41:25 +02:00