Commit Graph

8058 Commits

Author SHA1 Message Date
Jim Broadus b3ec030ae4 Fix songkicks queries.
- When parsing a response, use fromJson instead of fromBinaryData.
  fromBinaryData expects a serialized binary format.
- Calling toString on a non-string JSON value will return an empty
  string. Call toVariant().toString() to do the conversion.
- Add checks for network reply errors.
2020-02-13 19:20:01 +00:00
Jim Broadus 61de3c6e93 Convert remaining QJsonValue::isUndefined usage.
Noted previously, using the [] operator on a non-const QJsonObject causes the
creation of the key and does not work for checking existence. Convert the
remaining isUndefined call sites to use QJsonObect::contains.
2020-02-13 11:12:52 +00:00
Jim Broadus 52fd6ffadc Add a logging category to log all network requests.
New logging class NetworkRequests disabled by default, but can be enabled with
the command line option.
2020-02-13 11:09:51 +00:00
Jim Broadus a5db937d23 Fix itunes search.
Using the [] operator on a non-const QJsonObject inserts an item. The test
for an error message was always positive. Use the contains method instead.
2020-02-12 09:53:45 +00:00
Jim Broadus 415e4aa2ec Don't attempt to resolve URL if not relative. 2020-02-12 09:53:12 +00:00
Jim Broadus e7b0667196 Fix loading songs on portable setup.
QUrl considers a URL relative if it does not include a scheme and QUrl::resolve
will fail if passed a non-relative url. Strip the scheme for the portable cases.

https://doc.qt.io/qt-5/qurl.html#relative-urls-vs-relative-paths
2020-02-12 09:53:12 +00:00
Jim Broadus b9f57c574f Add QString version of GetRelativePathToClementineBin.
Avoid converting paths to and from URLs when calling this function.
2020-02-12 09:53:12 +00:00
Jim Broadus ba4320859d Change LibraryDirectoryModel to take shared backend pointer.
This is mainly for parity amongst the library model classes.
2020-02-11 08:09:22 +00:00
Jim Broadus bc99ff80a9 Move LibraryDirectoryModel out of LibraryModel.
There are several instances of the LibraryModel class used in the system. Each
of these creates a LibraryDirectoryModel instance, but only the instance held
by the main library is every used. Move this out of the LibraryModel class and
into the Library class.
2020-02-11 08:09:22 +00:00
Jim Broadus 18a08e87c2 Add a directory_model accessor to Application class. 2020-02-11 08:09:22 +00:00
Clementine Buildbot 057343f4a3 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2020-02-07 10:08:21 +00:00
Jim Broadus efb4f8a15a Handle errors from icecast directory requests.
When a request fails, show an error dialog and don't attempt to parse results.
2020-02-07 10:06:14 +00:00
Jim Broadus 2132310873 Display message to user when IntergalacticFM channel list fails.
At the time of this commit, the channel list from intergalactic.fm is
unavailable. To the user, this is failing silently. Add an error message for
this failure. If this issue persists, then the service should be removed or a
hardcoded station list should be used.
2020-02-07 10:05:39 +00:00
Clementine Buildbot 7e915648eb Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2020-02-04 00:25:34 +00:00
Jim Broadus d45a9f5c53 Enable debug logging for GstEnginePipeline by default.
Use qLogCat to put verbose GStreamer callback messages into a new
GstEnginePipelineCallbacks category. Filter that category instead of
the entire class by default.
2020-01-31 10:24:53 +00:00
Jim Broadus 66f354f815 Remove executable flags from source files. 2020-01-31 10:24:29 +00:00
John Maguire 237a2fe8e5
Merge pull request #6557 from clementine-player/remove-unsupported-ubuntus
Remove unsupported distros
2020-01-30 20:31:43 +00:00
John Maguire c34f9339ae
Merge pull request #6556 from jbroadus/category-for-glog-messages
Category for glog messages
2020-01-30 20:10:36 +00:00
John Maguire 011b36b64b Remove unsupported distros 2020-01-30 19:33:55 +00:00
Jim Broadus 4b37e0c577 Use qLogCat for GLog handler.
Provide the domain string from the GLog callback as the category.
2020-01-30 11:20:03 -08:00
Jim Broadus a2d2850884 Add a new qLogCat macro to specify category.
In some cases, such as message handling callback functions, the line and function
macros don't provide a lot of useful information. In other cases, we may want more
granularity of control withing a class. For these cases, add a qLogCat that takes
a category string. Print this string in the message and use it as the filter
category.
2020-01-30 11:19:58 -08:00
John Maguire aae7b01ea6
Merge pull request #6555 from jbroadus/logging-cleanup-1
Fix nomenclature in logging functions.
2020-01-30 17:29:22 +00:00
Jim Broadus 203d6425fd Fix nomenclature in logging functions.
The qLog macro passes the result of the __PRETTY_FUNCTION__ macro to the
CreateLogger* functions, but these all take an argument called class_name.
2020-01-30 08:50:06 -08:00
John Maguire 0598b81c42
Merge pull request #6554 from jbroadus/fix-unc-paths
Fix UNC paths.
2020-01-29 11:20:01 +00:00
Jim Broadus d3d6c1ff3c Fix UNC paths.
The fix-up for URLs for files that that begin with // no longer works since the
QUrl class determines that these modifications are invalid, resulting in an
empty string when converted. Instead of attempting to modify the QUrl, add a
utility function that makes the correction on the encoded byte array at time of
usage.
2020-01-29 00:38:43 -08:00
John Maguire e575a1da9f
Merge pull request #6552 from jonaski/https
Use HTTPS
2020-01-27 22:58:28 +00:00
Jonas Kvinge f674847431 Use HTTPS 2020-01-27 22:46:38 +01:00
John Maguire a207501e35
Merge pull request #6550 from jbroadus/remove-dir-by-id
Remove directory by id.
2020-01-27 09:29:33 +00:00
Jim Broadus feaca363a7 Remove directory by id.
Eliminate need to create temporary Directory object when removing a directory.
2020-01-25 18:22:16 -08:00
John Maguire 03f2395739
Merge pull request #6546 from jbroadus/cancel-scan-on-remove
Cancel scan when directory is removed.
2020-01-25 15:35:24 +00:00
Jim Broadus 1c6e43509c Cancel scan when directory is removed.
When a directory is removed from the library during a scan, the scan continues
until complete. This change cancels the scan immediately, unblocking the watcher
thread, then signals the watcher to remove the directory.

A second issue occurs when a previously scanned device is removed during a
scan. All remaining files will be marked as deleted. This change mitigates
this issue, but a timing hole still remains here.
2020-01-24 10:28:51 -08:00
Clementine Buildbot fcd147b574 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2020-01-24 10:41:42 +00:00
John Maguire 865c4b4358
Merge pull request #6543 from jbroadus/cancel-transaction
Add ability to cancel scan per directory.
2020-01-24 10:39:30 +00:00
Jim Broadus c40a1f7738 Pass album_art map to ImageForSong as pointer instead of reference.
Requested as part of PR 6543.
2020-01-23 09:15:39 -08:00
Jim Broadus 4ebd3c8c0a Add ability to cancel scan per directory.
Store a boolean along with watched directories to indicate active. Use this flag
to provide a mechanism to halt scans on a per-directory basis.
2020-01-23 09:15:36 -08:00
John Maguire 97ffae2e70
Merge pull request #6541 from jbroadus/cleanup-lister-thread
Delete DeviceLister worker thread.
2020-01-22 11:05:51 +00:00
John Maguire 960c61ef14
Merge pull request #6540 from jbroadus/scan-transaction-takes-directory
Pass a Directory reference to ScanTransaction instead of a directory id.
2020-01-22 11:05:20 +00:00
Jim Broadus 83d756356c Delete DeviceLister worker thread.
This isn't a serious leak since the lister is only destroyed when Clementine
exits.
2020-01-21 21:26:59 -08:00
Jim Broadus 52c3ce70ea Pass a Directory reference to ScanTransaction instead of a directory id.
This is can be done without protecting the directory reference since the method
that removes directories from the watch list is only called on the same thread
as the scan, and never during the life of the ScanTransaction object.
2020-01-21 17:27:01 -08:00
John Maguire d15777ea15
Merge pull request #6537 from jbroadus/scan-sanity-check
Prevent runaway cover art searches.
2020-01-19 17:12:13 +00:00
John Maguire 1723fba173
Merge pull request #6536 from jbroadus/fix-canceled-scan
Fix hung progress indicator on device disconnect.
2020-01-19 17:10:07 +00:00
Jim Broadus 1484afb038 Prevent runaway cover art searches.
When scanning a device such as a mobile phone, it's likely that a directory
containing both image and audio files will be found. Besides the appearance of a
hung scan, it's unlikely that a relevant image will be found.

In the case where filters for relevant filenames don't yield results, set a
sanity limit on the number of images. If the list size is beyond than that
threshold, return an empty path.
2020-01-18 22:46:24 -08:00
Jim Broadus 9e40c5e1a9 Fix hung progress indicator on device disconnect.
When a device is removed during a scan, the scan is cancelled, but the task is
not set to finished.
2020-01-18 20:32:41 -08:00
John Maguire 969c158cee
Merge pull request #6533 from jbroadus/inotify-errors
Inotify errors
2020-01-18 13:04:55 +00:00
Jim Broadus 34a2e86b4b Handle FileSystemWatcherInterface::AddPath errors.
On Linux systems, failure to watch a path may be caused by the limit set in
/proc/sys/fs/inotify/max_user_watches. This can be demonstrated by creating
a directory with a large number of empty subdirectories and adding that test
directory as a library.

Check that a file is readable before adding a watch. If adding the watch fails,
report the error to the user only once. Only add the path to subdir_mapping_
if watch succeeds.
2020-01-17 16:26:09 -08:00
Jim Broadus 26e12f5006 Support newlines in error dialog.
Translate "\n" to "<br>" in error dialog HTML.
2020-01-16 21:06:11 -08:00
Jim Broadus fe84ad4e66 Return boolean from FileSystemWatcherInterface::AddPath to indicate success.
QFileSystemWatcher::addPath returns a boolean to indicate success. Modify
QtFSListener::AddPath to reflect that. For now, the MacFSListener version will
always return true.
2020-01-16 21:06:11 -08:00
John Maguire 0d1a976b62
Merge pull request #6532 from jbroadus/broken-mtp
Broken mtp
2020-01-16 23:06:38 +00:00
Jim Broadus 4bb7d41ec9 Fix mtp and gphoto2 device mounts from gvfs.
Using libmtp or libgphoto2 to access a device that gvfs has mounted causes the
connection to fail. libmtp is calling libusb_claim_interface which, according to
libusb documentation, will return LIBUSB_ERROR_BUSY if claimed by a different
program. For mtp and gphoto2 devices discovered by the GioLister, use the file
scheme and access the device through the gvfs mount.
2020-01-16 13:11:49 -08:00
Jim Broadus 5efba58f02 Decode gvfs uris.
The uri returned from g_file_get_uri is percent encoded. This causes the regex
in GioLister::MakeDeviceUrls to fail and causes the URL to be invalid. In this
case, it falls back to the file scheme. Newer versions of gvfs obtain the serial
id from udev instead of using the bus and device IDs.

Note that this bug covers a different issue where mtp is failing to connect. The
result is actually desired behavior. The follow-up change will address this.
2020-01-16 13:11:44 -08:00