Commit Graph

6354 Commits

Author SHA1 Message Date
Lukas Prediger 14d5c25d37 Integrated cddevice back into cddadevice 2021-06-21 12:51:44 +01:00
Lukas Prediger 9ca75ae357 RipCDDialog now relies on CddaDevice to be notified about disc changes 2021-06-21 12:51:44 +01:00
Lukas Prediger d2c636ab46 Introducing CdDevice, simple wrapper for cdio that watches disc changes.
CddaDevice now relies on this to update song list. CddaDevice::Refresh is now a no-op.
2021-06-21 12:51:44 +01:00
Clementine Buildbot 11bd0db03b Automatic merge of translations from Transifex 2021-06-21 02:54:22 +00:00
Clementine Buildbot c3c77aef19 Automatic merge of translations from Transifex 2021-06-16 02:55:57 +00:00
Jim Broadus ffdaeba09f cueparser: Be more lenient when parsing indexes.
Most specs have mm:ss:ff as the index time format, but cue files have
been found with single digit minutes. e.g. 0:00:00 instead of 00:00:00

Reference: https://www.gnu.org/software/ccd2cue/manual/html_node/CUE-sheet-format.html
2021-06-15 14:14:00 +01:00
Clementine Buildbot 2bf8f1388b Automatic merge of translations from Transifex 2021-06-15 02:57:02 +00:00
Clementine Buildbot 418a366931 Automatic merge of translations from Transifex 2021-06-14 02:55:24 +00:00
Clementine Buildbot 4aa4f4fce3 Automatic merge of translations from Transifex 2021-06-13 02:54:58 +00:00
Clementine Buildbot 7fb387b967 Automatic merge of translations from Transifex 2021-06-12 02:54:18 +00:00
Jim Broadus 4e4fccc07a playlistparser: Add error mechanism for parsers.
Add a new Error signal to parser implementations. Display an error when
user tries to use the unimplemented CueParser::Save.
2021-06-11 10:17:20 +01:00
Jim Broadus f4108b5a0c playlistparser: Display errors on failures.
Add an Error signal to PlayListParser and connect that to the
PlayListManager::Error signal. This is eventually connected to the
Application::AddError. Add error messages in some cases where
PlayListParser can fail silently.
2021-06-11 10:17:20 +01:00
Clementine Buildbot 612767c878 Automatic merge of translations from Transifex 2021-06-09 03:12:09 +00:00
Clementine Buildbot b09ab3ff37 Automatic merge of translations from Transifex 2021-06-04 04:25:11 +00:00
Robin Ekman 0dbefa3064 Add a shortcut to go to next album 2021-06-03 17:06:48 +01:00
Fabio Bas 058fe6f4be fall back to url if url_resolved is empty 2021-06-02 22:40:13 +01:00
Fabio Bas 38ac0d3ccb Radiobrowser.info: use the url_resolved field for radio stations 2021-06-02 22:40:13 +01:00
Clementine Buildbot f674753758 Automatic merge of translations from Transifex 2021-05-31 05:04:40 +00:00
Clementine Buildbot f7369d2c42 Automatic merge of translations from Transifex 2021-05-28 04:26:27 +00:00
Clementine Buildbot 2132e99fbe Automatic merge of translations from Transifex 2021-05-27 03:59:34 +00:00
Clementine Buildbot 684c9d232f Automatic merge of translations from Transifex 2021-05-26 03:51:04 +00:00
Clementine Buildbot d71eba97fb Automatic merge of translations from Transifex 2021-05-25 03:20:50 +00:00
Jim Broadus 776bd3b022 settings: Add option to guess song metadata
Add "Try to guess missing metadata" option to the Song Metadata page
that controls the setting in SongPathParser.
2021-05-24 15:23:05 +01:00
Jim Broadus cf88e47206 settings: Create a new Song Metadata settings page
Move tagreader process settings to the new page.
2021-05-24 15:23:05 +01:00
Jim Broadus 01be9f196a settings: Organize page enums by category. 2021-05-24 15:23:05 +01:00
Lukas Prediger 89831f8dca MusicBrainzClient: Log message for malformed XML in reply 2021-05-18 12:13:10 +01:00
Lukas Prediger e756f2d686 CddaSongLoader: explicitly reading discid as UTF8 2021-05-18 12:12:01 +01:00
Lukas Prediger 8d69da28f3 Fixing freeing of memory in cddasongloader 2021-05-18 12:12:01 +01:00
Lukas Prediger 8668699977 CddaSongLoader: handle potential multiple tag messages correctly 2021-05-18 12:12:01 +01:00
Lukas Prediger e9945bcbc6 do NOT free toc entries in CddaSongLoader (reverting previous change) 2021-05-18 12:12:01 +01:00
Lukas Prediger 86bbd2ace6 Formatting/linting fixes. 2021-05-18 12:12:01 +01:00
Lukas Prediger 81c0661e8c MusicBrainzClient stop result parsing after reading first medium with correct discid.
Tentative fix for #7020.
2021-05-18 12:12:01 +01:00
Lukas Prediger 54a497b302 RipCDDialog rejects metadata lists if number of tracks does not match disc.
First step for addressing #7020.
2021-05-18 12:12:01 +01:00
Lukas Prediger 436c53870a Correctly freeing memory in CddaSongLoader::LoadSongsFromCdda 2021-05-18 12:12:01 +01:00
Lukas Prediger 97800e613a Fix for #7019: CddaSongLoader obtaining metadata on first try. 2021-05-18 12:12:01 +01:00
Jim Broadus 1309c76bec tagreader: Relocate artist/album/title guessing code
Move the code that attempts to fill missing song metadata out of the
tagreader worker. In the main process, it will be controllable using
settings and calling context.

The methods were moved into a new SongPathParser class that checks new
settings to determine if action should be taken.
2021-05-17 13:20:34 +01:00
Lukas Prediger 75de59703c Fix: Transcoding for CD rips not starting.
due to making Transcoder::Start a non-slot in 8d11e9ff
2021-05-15 10:14:18 +01:00
Clementine Buildbot 89155ace70 Automatic merge of translations from Transifex 2021-05-14 03:06:05 +00:00
Clementine Buildbot a7468dcd41 Automatic merge of translations from Transifex 2021-05-13 03:03:53 +00:00
Clementine Buildbot 3f614464ee Automatic merge of translations from Transifex 2021-05-12 03:01:45 +00:00
Jim Broadus 9bfd458b15 playlistparsers: Handle m3u UTF-16 playlists.
Rather than assume UTF-8, use QTextStream to read data. This checks the
byte order mark of the file to determine encoding.

As an optimization, since the playlist already needs to be searched for \r
characters, just create a string list and work from that.
2021-05-11 10:22:18 +01:00
Clementine Buildbot d16d9ba282 Automatic merge of translations from Transifex 2021-05-11 02:59:45 +00:00
Clementine Buildbot 83157100c4 Automatic merge of translations from Transifex 2021-05-09 02:56:37 +00:00
Jim Broadus 33aa8c8579 build: Add libgpod link directory. 2021-05-08 15:53:20 +01:00
Clementine Buildbot f5d3079db8 Automatic merge of translations from Transifex 2021-05-08 02:56:24 +00:00
Clementine Buildbot 783213f9c1 Automatic merge of translations from Transifex 2021-05-07 02:58:09 +00:00
Jim Broadus d798c76e06 devices: Remove obsolete DeviceKit.
DeviceKit-disks, renamed udisks, was superseded by udisks2 in 2012.
2021-05-06 20:52:33 +01:00
Jim Broadus 079384c154 build: Add libmtp link directory.
If MTP is enabled, add library directory. This will allow it to be found
in brew installations.
2021-05-03 23:27:28 +01:00
Jim Broadus f48888a430 networkremote: Fix some log noise.
In avahi, don't log empty errors.
2021-05-03 14:45:00 +01:00
Jim Broadus 708385c71f devices: Fix guessed icons in DeviceIcons
In the initial implementation, DeviceLister::DeviceIcons returned a
string list and some listers would concatenate other lists to form that
list. When DeviceIcons was changed to return a variant list, that
logic wasn't changed in many places, so instead of appending, string
list variants are being added icon list.
2021-05-01 20:37:01 +01:00
Clementine Buildbot 20647e8a98 Automatic merge of translations from Transifex 2021-04-29 02:54:42 +00:00
diracsbracket 8c1bdc1a45 Changed to const reference 2021-04-28 21:51:12 +01:00
diracsbracket 1646ab2221 Corrected comments + Added reference to Song& + use non-default
constructor for QFileInfo.

Forgot to apply clang-format so applied 2nd commit and squashed
both
2021-04-28 21:51:12 +01:00
diracsbracket 66a34a906a Removed unneeded empty arguments already provided by defaults 2021-04-28 21:51:12 +01:00
diracsbracket 444f1e2e69 clang-format correction 2021-04-28 21:51:12 +01:00
diracsbracket b7a995d223 Re-added log message for URL and mime-type. 2021-04-28 21:51:12 +01:00
diracsbracket fb391a7fbe Optimization to avoid save+delete of remote playlists to temporary file 2021-04-28 21:51:12 +01:00
Clementine Buildbot fc83e41279 Automatic merge of translations from Transifex 2021-04-27 02:57:12 +00:00
Clementine Buildbot 7e48b78c15 Automatic merge of translations from Transifex 2021-04-26 03:01:00 +00:00
Clementine Buildbot 94f4f65a60 Automatic merge of translations from Transifex 2021-04-25 03:01:19 +00:00
Clementine Buildbot b2ed9499f6 Automatic merge of translations from Transifex 2021-04-24 02:56:55 +00:00
Jim Broadus 8258c78c0b dbus: Fix signal arg annotations
An earlier change attempted to fix qdbusxml2cpp parsing errors by adding
directions to arguments. However, signal arguments are always out and it
was the annotations that were incorrect.

Fixes: f17b79a10 (dbus: Fix qdbusxml2cpp unknown type warnings., 2021-04-19)
Reference: https://dbus.freedesktop.org/doc/dbus-specification.html
2021-04-22 11:24:12 +01:00
Jim Broadus f17b79a105 dbus: Fix qdbusxml2cpp unknown type warnings.
Add direction attributes to args where qdbusxml2cpp was looking for the
incorrect annotation.
2021-04-21 10:24:09 +01:00
Clementine Buildbot c51d2f954e Automatic merge of translations from Transifex 2021-04-21 02:57:30 +00:00
Jim Broadus 280a514ebc dbus: Fix annotation deprecation warnings
The com.trolltech was renamed to org.qtproject. The code generation tool
still handles the old name, but prints a deprecation error.

Reference: https://bugreports.qt.io/browse/QTBUG-23274
2021-04-20 22:49:21 +01:00
Jim Broadus f04657e7e7 Replace qrand usage with QRandomGenerator
QRandomGenerator was introduced in 5.10 and qrand has since been
deprecated. QRandomGenerator::global() returns a global instance that
has been securely seeded. QRandomGenerator provides methods that
generate values within ranges, so taking a modulus of the result isn't
necessary.
2021-04-20 10:31:07 +01:00
Jim Broadus 6b21079fd4 dbus: Fix xml format errors. 2021-04-20 10:30:06 +01:00
Jim Broadus 3690c41cb0 build: Remove CMP0011 OLD policy
This policy allowed included files and modules to affect policy in the
parent scope. Besides the top level, 3rdparty/libprojectm is the only
place where old policy is set.

Reference: https://cmake.org/cmake/help/latest/policy/CMP0011.html
2021-04-18 13:47:10 +01:00
Clementine Buildbot 7303f72ee8 Automatic merge of translations from Transifex 2021-04-18 02:57:04 +00:00
Clementine Buildbot 47f7b307f0 Automatic merge of translations from Transifex 2021-04-15 02:55:43 +00:00
Clementine Buildbot 009642d125 Automatic merge of translations from Transifex 2021-04-13 02:59:37 +00:00
Jim Broadus 3440f90a6b playbacksettings: Don't try to load empty icons
When populating output options, don't attempt to load an icon if that
field is empty. This cuts some log noise.
2021-04-12 10:58:46 +01:00
Clementine Buildbot 32944a15de Automatic merge of translations from Transifex 2021-04-12 02:58:52 +00:00
Clementine Buildbot 2d34588b84 Automatic merge of translations from Transifex 2021-04-11 02:57:39 +00:00
Jim Broadus a86558f9a6 playlist: Fix queued item painting
QueuedItemDelegate::DrawBox leaves the painter in a state that can cause
artifacts. Specifically, there are cases where the item text is not
visible. To fix this, push the painter state before making changes and
pop it after drawing.
2021-04-10 14:58:36 +01:00
Jim Broadus db55c541b2 Revert "↑↓ for "Up" and "Down" (#5841)"
This reverts commit 566708b778.

Escape sequences are not legal key sequences.

Reference: https://doc.qt.io/qt-5/qkeysequence.html#details
2021-04-10 14:57:55 +01:00
Clementine Buildbot 144bdc2495 Automatic merge of translations from Transifex 2021-04-09 02:55:40 +00:00
Clementine Buildbot 72c1f91c00 Automatic merge of translations from Transifex 2021-04-08 03:00:17 +00:00
Jim Broadus e8875faf83 visualisations: Properly scale projectM view
In version 5.6, Qt introduced an automatic scaling feature for high DPI
displays. Since projectM is not part of the Qt framework, it's necessary
to convert coordinates when specifying view size.

Reference: https://doc.qt.io/qt-5/highdpi.html
2021-04-07 21:49:18 +01:00
Fabio Bas 354f6a23e0 snake_case for variable names; reworked url resolution signals 2021-04-07 14:22:15 +01:00
Fabio Bas 91e1e5880d Fix compilation on older Qt, use Player::SongChangeRequestProcessed() signal to handle station play count 2021-04-07 14:22:15 +01:00
Fabio Bas cd561af516 radiobrowser url handler: emit metadata for radio stations 2021-04-07 14:22:15 +01:00
Clementine Buildbot 2d6bb4abd6 Automatic merge of translations from Transifex 2021-04-07 03:00:29 +00:00
Jim Broadus 3b8519fda3 internet: Move page creation to internet category class
This consolidates most of the knowledge of internet settings pages in
the internet subdirectory. The exception is the master page enumeration
in the settings dialog.
2021-04-06 14:05:00 +01:00
Jim Broadus 1de6a46e86 internet: Add InternetSettingsCategory class 2021-04-06 14:05:00 +01:00
Clementine Buildbot 8a7120e1e8 Automatic merge of translations from Transifex 2021-04-06 02:58:50 +00:00
Clementine Buildbot e077df22d3 Automatic merge of translations from Transifex 2021-04-05 02:58:16 +00:00
Clementine Buildbot 4f86e0b2b4 Automatic merge of translations from Transifex 2021-04-04 02:58:52 +00:00
Jim Broadus 2804a4d89f gstengine: Make output format configurable
Add an output format option in playback settings. The options are
Detect, S16LE, and F32LE. Selecting Detect will use the existing
behavior and detect the native format when the pipeline starts. The
other options will set the format when the pipeline is built.
2021-04-03 13:56:22 +01:00
Clementine Buildbot 15fdad3d51 Automatic merge of translations from Transifex 2021-04-03 02:57:07 +00:00
Jim Broadus ada6752eae gstengine: Don't modify caps when pipeline is running
When the decoder bin's src pad is added, only set caps to use the native
bit depth if the the pipeline is not already running.
2021-04-02 16:42:44 +01:00
Jim Broadus 4edf77082d settings: Remove unused page enum value
Remove unused Page_SoundCloud from SettingsDialog::Page.
2021-04-02 16:41:30 +01:00
Jim Broadus ae8a420690 settings: Move AddPage to SettingsCategory
This will allow future subclasses of SettingsCategory to populate their
own pages.
2021-04-02 16:41:30 +01:00
Clementine Buildbot d13410c91d Automatic merge of translations from Transifex 2021-04-02 03:02:29 +00:00
Jim Broadus f4e70face1 library: Fix rescan in case where library directory was recreated
If a root library directory is deleted and recreated, it is not
detected since inotify would need to watch the parent directory. On
rescan, if the subdirectory list for a directory is empty, re-add the
library's root directory.

This is an edge case on Linux systems. The issue may not exist on other
operating systems.
2021-04-01 14:53:49 +01:00
Jim Broadus fd3a2a2f12 library: Add accessors to directory structures
Add const accessors to the Directory and Subdirectory structures.
2021-04-01 14:53:49 +01:00
Jim Broadus 6412790723 smartplaylists: Escape pattern characters in search term
When using the LIKE function, use \ as an escape character and prepend
that to occurrences of the pattern characters _ and % in the search
term.
2021-04-01 14:52:48 +01:00
Jim Broadus b2e3f8ea6e smartplaylists: Cast filename to TEXT in queries
In some versions/builds of sqlite, the LIKE function won't match
blobs.

Reference: https://www.sqlite.org/compile.html#like_doesnt_match_blobs
2021-04-01 14:52:48 +01:00
Jim Broadus eb1b84b281 ratingwidget: Properly bind the ratings values
RatingPainter::RatingForPos should return a value in 0-1. But if the
passed position was outside of the widget's draw rectangle, a value
outside of that range could be returned.
2021-04-01 14:32:18 +01:00
Clementine Buildbot 86d782cb6a Automatic merge of translations from Transifex 2021-04-01 03:04:42 +00:00
Adolfo Jayme Barrientos 438e8ca61b Fix a typo in a translatable string 2021-03-31 18:10:50 +01:00
Clementine Buildbot 881898f845 Automatic merge of translations from Transifex 2021-03-31 02:57:36 +00:00
Jim Broadus c12294c5ec settings: Make the internet header selectable
Make the "Internet services" tab the internet providers category header instead of a tab under "User Interface".
2021-03-30 11:51:26 +01:00
Jim Broadus e77595fba6 widgets: Add option to draw selected GroupedIconView header 2021-03-30 11:51:26 +01:00
Jim Broadus 6b34d0435f settings: Add SettingsCategory class
Add a new category class for settings. This will eventually allow
category classes to maintain their own lists of subpages.
2021-03-30 11:51:26 +01:00
Clementine Buildbot fdb3f7ac37 Automatic merge of translations from Transifex 2021-03-26 04:03:26 +00:00
Clementine Buildbot b68b12010d Automatic merge of translations from Transifex 2021-03-25 02:47:45 +00:00
Jim Broadus c394d7d2dd settings: Don't connect service-specific signals to every page
Wii and notifications signals are currently connected for every settings
page. Move the signals from the base SettingsPage class into the derived
classes and connect the signals for only those objects.
2021-03-24 10:31:52 +00:00
Clementine Buildbot d1e9ee9f95 Automatic merge of translations from Transifex 2021-03-24 02:59:29 +00:00
Jim Broadus 3244cf0837 settings: Recategorize background stream settings
Move the background streams settings page to the general category.
2021-03-23 10:36:39 +00:00
Clementine Buildbot e4f7468786 Automatic merge of translations from Transifex 2021-03-23 03:00:31 +00:00
Clementine Buildbot 8b566b2a7b Automatic merge of translations from Transifex 2021-03-22 02:58:33 +00:00
Clementine Buildbot 1154c0f54c Automatic merge of translations from Transifex 2021-03-19 02:53:35 +00:00
Jim Broadus 05e450c3c3 internet/core: Move core ShowContextMenu to base class
Move CloudFileService::ShowContextMenu to the base class so that all
services can utilize the pattern established in CloudFileService.
ShowContextMenu creates the menu if it doesn't exist then calls an
overridable method to populate the content. It then calls an update
method before showing the menu.
2021-03-18 11:16:14 +00:00
Jim Broadus 5ebd6d1e6b internet/core: Move context_menu_ to base class
Every internet service class has a context_menu_ member. Moving this to
the base class will allow the consolidation of common menu functionality.
2021-03-18 11:16:14 +00:00
Jim Broadus cd41f706af libclementine-common: Move timeconstants.h to common location
This header is used by code in /ext, so move it out of /src. This is the
last /ext dependency on /src.
2021-03-17 18:26:51 +00:00
Clementine Buildbot 3f34b332cf Automatic merge of translations from Transifex 2021-03-17 02:57:26 +00:00
Fabio Bas 89e9b20df1 Use smart pointers for menus; move static vars and most private methods to an anonymous namespace 2021-03-16 11:03:00 +00:00
Fabio Bas 3ba2c811f4 Different context menu for service and stations; "add to your radio streams" action for stations; reworked server error handling 2021-03-16 11:03:00 +00:00
Fabio Bas 6a45edaa34 Removed dirty hack in InternetModel; added "radiobrowser:" url handler; rework station play callback 2021-03-16 11:03:00 +00:00
Fabio Bas cd062f1d8b Added settings page 2021-03-16 11:03:00 +00:00
Fabio Bas cc0cedc5bd added station art 2021-03-16 11:03:00 +00:00
Fabio Bas 3e31094227 Initial RadioBrowser support: implemented search, groups by category, top 100 2021-03-16 11:03:00 +00:00
Fabio Bas e7768948e0 Initial radio-browser.info support 2021-03-16 11:03:00 +00:00
Jim Broadus 08ded2384f build: Move main config from /src to /include
Move /src/config.h to /include/clementine-config.h. The new name
prevents conflict with 3rdparty/taglib/config.h. A stub src/config.h will
remain for a transition period.  This is a first step in eliminating the
dependency of /ext components on /src.
2021-03-16 09:30:56 +00:00
Clementine Buildbot 610d87fa33 Automatic merge of translations from Transifex 2021-03-16 02:52:27 +00:00
Clementine Buildbot 681e7bea5f Automatic merge of translations from Transifex 2021-03-15 02:51:40 +00:00
Jim Broadus 3bd15aea0d library: Add option to ignore files by extension
Add a new skip option in library settings that takes a comma separated
list of file extensions. Skip files with the specified extensions when
scanning the library.
2021-03-14 14:00:03 +00:00
Clementine Buildbot cef1d7e745 Automatic merge of translations from Transifex 2021-03-14 02:51:37 +00:00
Jim Broadus 10bf5dc171 internet/core: Remove unused ItemDoubleClicked
ItemDoubleClicked became noop in 70429217c.
Usage of PlayBehaviour_DoubleClickAction was removed in b08172138.
2021-03-13 18:27:10 +00:00
Jim Broadus dfb953a78f player: Emit request URL in SongChangeRequestProcessed
Use the request URL rather than the media URL when emitting the
SongChangeRequestProcessed signal. The request URL is the URL that the
PlaylistManager, which is the only consumer of this signal, knows about.
However, in the current cases, the url is only checked by the playlist
when the two URLs should be the same.
2021-03-12 15:20:42 +00:00
Jim Broadus bde6d9cc5b player: Add original request URL to playback request 2021-03-12 15:20:42 +00:00
Jim Broadus 2339404852 player: Send request when reporting playback status
Modify the signals emitted by the engine when a url is determined to be
valid or invalid to send the entire request. This will allow additional
metadata to be added to the request, providing a mechanism to better
identify the request source.
2021-03-12 15:20:42 +00:00
Fabio Bas 651eee13e2 lint 2021-03-12 15:20:16 +00:00
Fabio Bas f56244cd8e add wayland icon 2021-03-12 15:20:16 +00:00
Clementine Buildbot 6314c8cb2d Automatic merge of translations from Transifex 2021-03-12 02:52:30 +00:00
Clementine Buildbot 7bb0c59f25 Automatic merge of translations from Transifex 2021-03-09 02:49:48 +00:00
Clementine Buildbot 3677f702ae Automatic merge of translations from Transifex 2021-03-04 02:47:06 +00:00
Clementine Buildbot 2d8a56b7c8 Automatic merge of translations from Transifex 2021-03-03 02:47:30 +00:00
Clementine Buildbot c7f5c0f401 Automatic merge of translations from Transifex 2021-03-02 02:38:18 +00:00
Clementine Buildbot 0c099ab6f6 Automatic merge of translations from Transifex 2021-03-01 02:48:09 +00:00
Clementine Buildbot 2b988ed7b4 Automatic merge of translations from Transifex 2021-02-28 02:46:39 +00:00
Jim Broadus 05f513ab6f skydrive: Add rescan option
Add menu option to drop all items from the database and rescan the cloud
drive.
2021-02-27 13:14:23 +00:00
Jim Broadus c87409c896 cloudfileservices: Refactor context menu code
Add PopulateContextMenu, called once to populate the menu items, and
UpdateContextMenu, called ever time a menu is shown, to allow
service-specific behavior.
2021-02-27 13:14:23 +00:00
Jim Broadus b57e66dd51 cloudfileservices: Common rescan confirmation dialog
Move Google Drive's rescan confirmation dialog to CloudFileService for
reuse.
2021-02-27 13:14:23 +00:00
Jim Broadus 5767317678 onedrive: Update to use graph api
The live API was deprecated in 2018. This change implements basic
onedrive access using the MS graph API.

The URL scheme was also changed from skydrive to onedrive. This is based
on the assumption that existing playlists won't have compatible item
ids.

Known issues:
- Directories with over 200 items will be truncated.
- No mechanism for discovering changes at runtime.
- No mechanism for removing deleted items or rescanning.

Reference: https://docs.microsoft.com/en-us/onedrive/developer/rest-api/concepts/migrating-from-live-sdk?view=odsp-graph-online
2021-02-26 11:18:49 +00:00
Jim Broadus 7b5d2fd79f onedrive: Fix authentication
Discontinue use of obsolete auth endpoints. Update the name of the
settings group as well since the existing skydrive settings are no
longer useful.

Reference: https://docs.microsoft.com/en-us/onedrive/developer/rest-api/concepts/migrating-from-live-sdk
2021-02-26 11:18:49 +00:00
Jim Broadus 565110e223 onedrive: Fix json response parsing
Discontinue use of incorrect and obsolete QJsonDocument::fromBinaryData
method. Utilize common InternetService::ParseJsonReply instead.
2021-02-26 11:18:49 +00:00
Joe Robinson bce55d0efc Fix cover art query for Subsonic-based Funkwhale servers 2021-02-26 11:16:55 +00:00
Jim Broadus 4e8a12f373 errordialog: Don't clear messages on sponaneous events.
Don't clear the message dialog if a hide event is sent from the window
manager. These spontaneous events are sent when a window is minimized,
moved to a different screen, etc.
2021-02-23 21:41:50 +00:00
Jim Broadus b989a674a4 application: Add splash during initialization
Since initialization on first startup or during a database schema update
can take several seconds, show a splash screen. In the initial
implementation, this is just a small Clementine logo.

The benefit of instantiating the splash in the Application class rather
than in main is that it could eventually show status messages during
startup. However, this implementation does not use the
QSplashScreen::finish mechanism that would synchronize the hiding of the
splash screen with the showing of the main window.
2021-02-21 14:18:54 +00:00
Jim Broadus 59864bf1b6 application: Add a Starting() slot to Application
Add a slot that is invoked when the main application loop starts. This
can be used to perform setup tasks after the initialization has
occurred. Initial use is to hide a splash.
2021-02-21 14:18:54 +00:00
Jim Broadus b40d9ed44b oauth: Fix redirect
Query params were not added to redirect url prior to inclusion in oauth
request. This change fixes OneDrive authentication.

Regression introduced in 8b226c2171
2021-02-21 14:18:17 +00:00
Jim Broadus 1a3828e2c1 protobuf: Fix namespace conflict
Protobuf 3.15 adds a namespace alias for "pb" that conflicts with
Clementine's. Modify Clementine to use "cpb".

Patch provided by @ahesford

Reference: 5c028d6cf4/src/google/protobuf/port.h (L44)
2021-02-21 14:17:26 +00:00
Clementine Buildbot d93bd9ca2b Automatic merge of translations from Transifex 2021-02-19 02:41:26 +00:00
Clementine Buildbot b69dd2d909 Automatic merge of translations from Transifex 2021-02-14 02:41:16 +00:00
Clementine Buildbot cde0343a68 Automatic merge of translations from Transifex 2021-02-13 02:39:31 +00:00
Clementine Buildbot f7ed4a3090 Automatic merge of translations from Transifex 2021-02-11 02:40:17 +00:00
Jim Broadus f7b6708e4f transcoder: Add options widget for voaacenc
Base GstAudioEncoder class properties are not included.
Reference: https://gstreamer.freedesktop.org/documentation/voaacenc/index.html
2021-02-07 15:05:11 +00:00
Jim Broadus 4994091f86 transcoder: Add options widget for fdkaacenc
As with the other cases, the base GstAudioEncoder class properties are
not included.
Reference: https://gstreamer.freedesktop.org/documentation/fdkaac/fdkaacenc.html
2021-02-07 15:05:11 +00:00
Jim Broadus e84f87f625 transcoder: Apply transcoder option fixes to settings page
Dynamically add tabs to the transcoder settings page. Use the same
mechanism that is used in the options dialog to select an options
page based on the best encoder element for a mime type.
2021-02-06 21:28:38 +00:00
Jim Broadus 79d81283a8 transcoder: Add an enum for known codecs
Add CodecType to enumerate codecs available for settings and a MimeType
to provide the mime string.
2021-02-06 21:28:38 +00:00
Jim Broadus 8f3772b593 transcoder: Move option error into its own widget
Create a TranscoderOptionsError class and ui that inherits from
TranscoderOptionsInterface. Use this to display options errors. Move
widget creation into a static method. These changes will allow use of
the same mechanism in the transcoder settings page.
2021-02-05 10:40:31 +00:00
Jim Broadus eb7a9bfa4c transcoder: Show options based on encode element
Instead of assuming a specific set of options based on a format,
determine which encoder element will actually be used in the pipeline.
2021-02-03 10:46:14 +00:00
Jim Broadus a98035d635 transcoder: Separate suitable element search from creation
Split best element type search from Transcoder::CreateElementForMimeType
into new FindBestElementForMimeType method. This will allow the setting
dialog to determine the encoder element type before the pipeline is
built.
2021-02-03 10:46:14 +00:00
Jim Broadus 57a6fe4f20 utilities: Add common method for bug report URL generation
Move code from PodcastParser::ParseItem for reuse.

Example:
Calling Utilities::MakeBugReportUrl("New bug") returns:
https://github.com/clementine-player/Clementine/issues/new?title=New%20bug
2021-02-03 00:32:00 +00:00
Jim Broadus 281da05325 transcoder: Provide user feedback in options error condition
Remove condition that allows no dialog to be displayed when user selects
options for transcoding. Display the dialog with an error message
instead. This also applies to the transcode options dialog in the
ripping and network remote settings.
2021-02-02 09:58:20 +00:00
Jim Broadus b735f5d1c3 transcoder: Change TranscoderOptionsDialog constructor
Take a reference to a TranscoderPreset object instead of the the type.
This will allow the dialog to provide better information and correct
options.
2021-02-02 09:58:20 +00:00
Clementine Buildbot 2725ef99d5 Automatic merge of translations from Transifex 2021-02-02 02:56:25 +00:00
Clementine Buildbot 50ee786135 Automatic merge of translations from Transifex 2021-02-01 02:55:24 +00:00
Clementine Buildbot 816fd88d48 Automatic merge of translations from Transifex 2021-01-31 02:55:13 +00:00
Clementine Buildbot 8db8b1e788 Automatic merge of translations from Transifex 2021-01-30 02:55:19 +00:00
Jim Broadus 18eef830a5 transcoder: Add ability to dump pipeline graphs
Add a "Dump Graph" menu option to the pipeline view if CLEMENTINE_DEBUG
is enabled.
2021-01-29 22:30:03 +00:00
Jim Broadus 7d061afdc3 gstengine: Add PipelineView class
Add ListView derivative class for displaying GstPipelineModel data. A
GetSelectedIds method provides the list of selected pipelie IDs.
2021-01-29 22:30:03 +00:00
Jim Broadus 8d11e9ffab transcoder: Remove unused slots
Transcoder::Start() and Transcoder::Cancel() were defined as slots but
never used as such.
2021-01-29 13:12:26 +00:00
Jim Broadus d4c9628222 transcoder: Don't show progress when nothing is selected
Previously, pressing the "Start transcoding" button with zero files selected
would show the progress group with the progress bar in the busy state.
2021-01-29 13:12:26 +00:00
Clementine Buildbot 78d4c4f3f7 Automatic merge of translations from Transifex 2021-01-29 02:56:20 +00:00
Clementine Buildbot b9a8442632 Automatic merge of translations from Transifex 2021-01-28 02:54:59 +00:00
Jim Broadus 7ba322b10b debug: Generalize debug feature check
Move the debug console variable check to a static method in the
Application class and use environment variable CLEMENTINE_DEBUG instead
of CLEMENTINE_DEBUG_CONSOLE. This will allow debug features to be
enabled elsewhere in the code.

Example:
CLEMENTINE_DEBUG=1 clementine
2021-01-27 15:14:40 +00:00
Clementine Buildbot 79ca9147e9 Automatic merge of translations from Transifex 2021-01-27 02:54:57 +00:00
Maarten Jacobs cb88954a3b Changed usage of boolean to enumeration
Changed the NextInternal() and NextItem() methods to use a enumerated value to track whether "next track" or "next album" is desired
2021-01-26 23:35:10 +00:00
Maarten Jacobs 8fcdbd5114 Adding a "play next album" function, in addition to "play next
track".

Changed shortcut key for Next Album from "space" to F9

Fixed indentation in player.cpp

Fixed spacing in player.cpp.

Updated player.cpp to ensure while loop takes into consideration the last
song on the playlist.

Fixed lint formatting error in player.cpp

Additional changes to player.cpp to make sure next album search reacts properly to the given repeat mode.

Updated player.cpp to address cpplint issues.

Fixing formatting issues.

Fixing formatting errors.

Finished formatting updates.

Final formatting...

Final formatting

Really final formatting...

Addressed issues from code review.

Added functionality to disable Next Album option when repeat mode is "repeat track".

Added commentary to recent changes.

Disable Next Album action also when Repeat Mode is Repeat_Album

In addition to disabling this action for the Next_Track repeat mode, the same applies to the Next_Album repeat mode.
2021-01-26 23:35:10 +00:00
Jim Broadus 8c2ab8fa05 transcoder: Add pipeline list to details dialog
List current running transcode pipelines when the details dialog is displayed.
This will be allow the addition of cancel and debug options.
2021-01-26 10:31:25 +00:00
Jim Broadus befaacebf9 gstengine: Add a model for pipelines
Provide GstPipelineModel for displaying lists of GstPipelineBase instances.
2021-01-26 10:31:25 +00:00
Clementine Buildbot a7a32b08b6 Automatic merge of translations from Transifex 2021-01-22 03:38:11 +00:00
Clementine Buildbot 76c87146dd Automatic merge of translations from Transifex 2021-01-21 03:38:44 +00:00
Clementine Buildbot 447e91a68e Automatic merge of translations from Transifex 2021-01-20 03:37:48 +00:00
Clementine Buildbot a9e193234e Automatic merge of translations from Transifex 2021-01-19 03:35:37 +00:00
Clementine Buildbot 7854aefdd6 Automatic merge of translations from Transifex 2021-01-18 03:34:38 +00:00
Clementine Buildbot f1678fd33c Automatic merge of translations from Transifex 2021-01-17 03:35:38 +00:00
Clementine Buildbot 81a3c0f83c Automatic merge of translations from Transifex 2021-01-15 03:33:21 +00:00
Jim Broadus cf842a8c5a gstengine: Use existing stream id to track background streams
New ids were being created for background stream mapping, but streams already
have unique IDs that can be used for this.
2021-01-14 11:29:43 +00:00
Clementine Buildbot 72e2e62eb1 Automatic merge of translations from Transifex 2021-01-14 03:36:26 +00:00
Jim Broadus 4f5bf1cc6f gstengine: Give pipelines unique names
Currently, most pipelines are named "pipeline". Use a type string in combination
with the stream id to give each pipeline a unique name.
2021-01-13 22:59:49 +00:00
Jim Broadus 5ffdb7d98c gstengine: Move pipeline id handling to base class
Move the id and the global counter from GstEnginePipeline to GstPipelineBase.
Make counter atomic.
2021-01-13 22:59:49 +00:00
Clementine Buildbot 2dd424a195 Automatic merge of translations from Transifex 2021-01-13 03:27:02 +00:00
Jim Broadus ace5234e62 transcoder: Fix flacenc "insane" level encoding
The gstreamer flacenc element defines a set of quality levels that is different
from the standard flac library. Its highest level, labeled "insane", uses
settings that are outside of the streamable subset. Set the streamable-subset
property to false for this level.

Reference: https://xiph.org/flac/format.html#subset
2021-01-12 11:47:12 +00:00
Clementine Buildbot e1e559732b Automatic merge of translations from Transifex 2021-01-12 03:20:36 +00:00
Clementine Buildbot b3aed042eb Automatic merge of translations from Transifex 2021-01-11 03:16:59 +00:00
Jim Broadus f779652aa2 Localize song count in playlist
Use %Lx to localize number formatting.

Reference: https://doc.qt.io/qt-5/qtquick-internationalization.html#5-use-lx-so-numbers-are-localized
2021-01-10 21:58:54 +00:00
Jim Broadus 7b94309827 transcoder: Use GstPipelineBase class for pipeline
This allows the use of the DumpGraph method in transcoding pipelines. The call
can be added to Transcoder::StartJob for debugging. In the future, a trigger
may be added to the debug console ui.
2021-01-10 18:14:57 +00:00
Jim Broadus f9e9dae73d gstengine: Add a base class for pipelines
This allows debug functionality to be shared.
2021-01-10 18:14:57 +00:00
Clementine Buildbot 8c774e3880 Automatic merge of translations from Transifex 2021-01-10 03:17:22 +00:00
Jim Broadus 25d3fca079 gstengine: Fix output audio depth
When the decoder bin's src pad becomes available, check its caps
for a format. If the format is not S16LE, then apply F32LE caps
before the tee. This prevents the pipeline from negotiating
S16LE when the decoder produces other formats.
2021-01-06 20:39:33 +00:00
Jim Broadus 06066dfba4 gstengine: Add a caps filter in pipeline before tee 2021-01-06 20:39:33 +00:00
Jim Broadus 2b17170bf8 gstengine: Move the probe capsfilter to the correct side of the converter
The pipeline currently constructs a caps filter between the tee and the
probe audio converter. This requires that S16LE data is fed to the tee.
2021-01-06 20:39:33 +00:00
Clementine Buildbot 479f1d4de9 Automatic merge of translations from Transifex 2021-01-04 03:05:13 +00:00
Clementine Buildbot 8201c10355 Automatic merge of translations from Transifex 2021-01-03 03:03:01 +00:00
Clementine Buildbot 8f863bc969 Automatic merge of translations from Transifex 2021-01-02 02:58:52 +00:00
Benjamin Valentin 3efa68f07d internet/soma.fm: use high quality AAC stream
Prefer the high quality 130 kbit/s AAC stream over the 'fast' 128 kbit/s
mp3 stream.
2021-01-01 18:00:59 +00:00
Jim Broadus 409c6b89d1 gstengine: Add a gstreamer debug console page
New page initially provides a button that triggers a dump of a graph of the main
pipeline.
2021-01-01 16:26:29 +00:00
Jim Broadus c353deba0c gstengine: Add a DumpGraph method to GstEnginePipeline
This will write a .dot graph and can be integrated with the debug console.
2021-01-01 16:26:29 +00:00
Jim Broadus 0ee64a32f6 console: Add a mechanism to allow components to add pages
Add a MainWindow signal that is emitted when a debug console is created. Relay
that signal to the Application. Add an AddPage method to the Console class that
allows components to populate pages when they receive the signal.
2021-01-01 16:26:29 +00:00
Clementine Buildbot 2b99d32bee Automatic merge of translations from Transifex 2021-01-01 03:01:46 +00:00
Jim Broadus 63a73a4a55 Fix debug console instance leak
Each time the debug console is launched, a new instance is created, but never
deleted. To fix, create one instance, if the option is enabled, and show that
one each time the menu option is selected.
2020-12-31 21:07:58 +00:00
Clementine Buildbot dc2c1e1117 Automatic merge of translations from Transifex 2020-12-29 02:57:55 +00:00
Clementine Buildbot 87cd3d2aba Automatic merge of translations from Transifex 2020-12-28 02:56:46 +00:00
Jim Broadus a012e7e273 gstengine: Fix InitFromString return value
GstEnginePipeline::InitFromString was attempting to link the decoder and audio
bins twice and returning the result of the failed second attempt as it's own
status. The return value was also being ignored by the caller.
2020-12-27 21:50:06 +00:00
Clementine Buildbot 0393d865ca Automatic merge of translations from Transifex 2020-12-27 02:55:57 +00:00
Jim Broadus 616ccc6fde gstengine: Remove extra unref on element creation failure
GstEngine::CreateElement unrefs the supplied bin if an error
occurs. In all current cases, that bin is referenced by a
pipeline.
2020-12-26 22:14:23 +00:00
Clementine Buildbot 5495445175 Automatic merge of translations from Transifex 2020-12-26 02:55:52 +00:00
Clementine Buildbot faab7fa6c5 Automatic merge of translations from Transifex 2020-12-25 02:56:29 +00:00
Clementine Buildbot 870969ef42 Automatic merge of translations from Transifex 2020-12-23 02:57:28 +00:00
Jim Broadus c999fc70e2 Fix hang during internet model reset
An old hack was notifying MergedProxyModel users that max int rows had been
removed when a submodel was reset. This caused the code that invalidates
selected items to spin for a very long time. A modelAboutToBeReset signal,
introduced in Qt 4.6, allows notification before the submodel information is
lost.

Note: there is one other case, in RemoveSubModel, where this hack is used.
This is only called when a device is removed and doesn't trigger this
condition, but it should probably be addressed in the future.
2020-12-22 20:40:05 +00:00
Clementine Buildbot 9f8093a22b Automatic merge of translations from Transifex 2020-12-22 02:56:44 +00:00
Clementine Buildbot 863a668240 Automatic merge of translations from Transifex 2020-12-21 02:54:48 +00:00
Clementine Buildbot af4810a581 Automatic merge of translations from Transifex 2020-12-20 02:51:13 +00:00
Clementine Buildbot 51c600a537 Automatic merge of translations from Transifex 2020-12-19 02:51:12 +00:00
Clementine Buildbot 6a6ef729ef Automatic merge of translations from Transifex 2020-12-18 02:52:23 +00:00
Matthieu Bruel 41513527cd hatstand code review update 1 2020-12-17 12:23:30 +00:00
Matthieu Bruel 114802a0ca Adding links to new remote in network remote settings 2020-12-17 12:23:30 +00:00
Matthieu Bruel 7d038c7354 Missing filechooserwidget files... 2020-12-17 12:23:30 +00:00
Matthieu Bruel 9714b0632d All changes for ClemRemote v1.0 (in one go) 2020-12-17 12:23:30 +00:00
Robert-André Mauchin cfcd0a956e Drop -std=c++0x and -U__STRICT_ANSI__
This was causing compilation failures, static assertion failed, with GCC 11.

Fix #6865

Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
2020-12-17 11:28:09 +00:00
Jim Broadus ccba649f62 Clear cached indexes in InternetModel when rows are removed
When opening a context menu on an internet item, the selected items are stored
in the InternetModel instance. In cases when the items are removed, certain menu
options can cause a crash. A specific case is downloading a podcast when the
user has chosen to limit the number of visible episodes. The subtree for the
podcast is rebuilt after the download completes, so if a context menu was opened
during the download time, selecting the append to playlist option will attempt
to operate on bad indexes.

This fix uses the rowsAboutToBeRemoved signal to remove these stored indexes.

There are likely another rare cases where the indexes can become invalid. For
example, sibling items within a subtree may be removed, causing the stored
indexes to become incorrect or out of range.
2020-12-15 22:36:30 +00:00
Clementine Buildbot c1c43e9a67 Automatic merge of translations from Transifex 2020-12-13 02:43:47 +00:00
Clementine Buildbot 91bad31f68 Automatic merge of translations from Transifex 2020-12-09 02:41:23 +00:00
Clementine Buildbot ba8fc09a65 Automatic merge of translations from Transifex 2020-12-07 02:38:38 +00:00
Jim Broadus 01f0727649 giolister: Don't include invalid mountpoint url
If the gvfs mountpoint property for a volume is empty, we add an empty URL to
the devices URL list. This causes errors in duplicate entry detection.
2020-12-06 12:59:50 +00:00
Clementine Buildbot df262c5c7e Automatic merge of translations from Transifex 2020-12-06 02:37:13 +00:00
Jim Broadus cca48b1ebf giolister: Ignore mountpoints
Read the G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT attribute (unix::is-mountpoint) to
determine if a volume is a mount that udisks2 has detected. Ignoring these
prevents network mounts from showing up as devices.
2020-12-05 13:24:54 +00:00
Clementine Buildbot f5c904b267 Automatic merge of translations from Transifex 2020-12-05 02:35:11 +00:00
Jim Broadus 1a0b288a8f giolister: Remove extra g_object_unref
GioLister::UnmountDevice calls g_object_unref on the GVolume object held by a
DeviceInfo. This appears to be left over from a time before DeviceInfo held
onto the volume.
2020-12-04 22:07:01 +00:00
Jim Broadus abc70554f3 giolister: Append _ to some DeviceInfo class members
Rename drive, mount, and volume to drive_, mount_, and volume_ to
avoid confusion with method arguments.
2020-12-04 22:07:01 +00:00
Clementine Buildbot 20f49c4454 Automatic merge of translations from Transifex 2020-12-03 02:34:21 +00:00
Clementine Buildbot 41b1ba8ffc Automatic merge of translations from Transifex 2020-12-02 02:33:31 +00:00
Clementine Buildbot c4d22d4414 Automatic merge of translations from Transifex 2020-12-01 02:33:42 +00:00
Clementine Buildbot f60c422242 Automatic merge of translations from Transifex 2020-11-30 02:33:52 +00:00
NicolasToussaint 7b3e2dfd8c PlayPlaylist: set current and not active playlist to selection 2020-11-30 01:50:58 +00:00
Clementine Buildbot f17e29f41d Automatic merge of translations from Transifex 2020-11-29 02:32:32 +00:00