336 Commits

Author SHA1 Message Date
Jonas Kvinge
d09c27f719 Remove extra ';' 2019-11-10 00:30:18 +01:00
John Maguire
cb6cd7c485 Merge remote-tracking branch 'origin/master' into qt5 2019-10-04 16:51:43 +01:00
luz.paz
fb93ae4b02 Fix misc. source comment typos
Typos found via `codespell`
2019-08-21 23:43:16 -04:00
Jonas Kvinge
1a2274bd2b Merge branch 'master' into qt5-update 2019-07-21 14:20:59 +02:00
John Maguire
e3609b27cd
Merge pull request #6296 from ShFil119/impr/simplify
Simplify some statements
2019-04-10 11:12:09 +01:00
Jim Broadus
d041da18cc Handle case where a lister adds a device before loaded from database.
There is a small chance that a device lister is able to discover and add a
previously known device before it is added by the database loader thread.
In this case, copy the data that is user-settable to the existing DeviceInfo
object and destroy the object created from the database query.

This adds and utilizes a new FindEquivalentDevice method that compares the
device unique IDs. This could probably be made more robust as the unique
IDs for some listers may change. However, this is a problem with the database
storage implementation in general.
2019-02-24 00:05:18 -08:00
Jim Broadus
a62062127e Fix thread-safety issues when initially loading devices from the database.
When DeviceManager initializes, it creates a thread to load device information
from the database. Part of this process includes use of QPixMap for icons which
produced a warning message:

22:32:53.763 WARN  unknown                          QPixmap: It is not safe to use pixmaps outside the GUI thread

In addition, the device is added to the view using beginInsertRows and
endInsertRows. This could contend with a device added by a lister signaling
PhysicalDeviceAdded.

To solve these problems, this change moves the icon loading and insertion to the
main thread. LoadAllDevices reads the data from the database and creates the
DeviceInfo object, then sends a signal to the main thread. In the signal
handler, the icon is loaded and the device is added to the master list and view.
2019-02-24 00:03:45 -08:00
Filip Gawin
be827f4f7f Simplify some statements 2019-02-22 18:49:48 +01:00
Jim Broadus
248f1d8596 Prevent UI hang during device scan. (#6291)
When unmounting a device, the ConnectedDevice object is destroyed. The
FileSystemDevice destructor waits on its worker thread. If a scan is in
progress, this will block until completion.

There is an existing Stop method in the LibraryWatcher class that is intended to
stop long running operations. To fix, or at least significantly shorten this
hang, we'll call this before waiting for the thread to exit. Also add a
stop_requested check in the cover art scan.

In addition, add a call to Stop in the Library destructor, which has a similar
usage.
2019-02-20 19:03:44 +11:00
Jonas Kvinge
d8788d6a0d Update qt5 branch 2019-01-27 01:00:36 +01:00
Jonas Kvinge
ed3d462674 Fix memory leak and use ItemToIndex / IndexToItem (#6262) 2019-01-21 21:38:46 +00:00
Jonas Kvinge
7e25a7c7e4 Convert devices manager(model) to QAbstractItemModel (#6260) 2019-01-21 09:06:48 +00:00
Jonas Kvinge
d772c8078d Fix formatting 2019-01-18 01:49:17 +01:00
Jonas Kvinge
89f40ee88f Use QUrlQuery 2019-01-18 01:47:26 +01:00
Jonas Kvinge
1d17bee44a Merge with master and fix conflicts 2019-01-18 01:38:12 +01:00
Jim Broadus
6c159481ed Handle MTP connection failures more gracefully. (#6256)
Currently, the failure to connect to an MTP device results in the UI displaying
an open device that appears empty. This change introduces a method
ConnectedDevice::ConnectAsync() that is expected to handle any connecting tasks
that could block asynchronously. Upon completion, this emits a ConnectFinished
signal that indicates success or failure. The row in the UI is only updated
after the successful response is received. Upon failure, DeviceManager will
clean up and the row in UI is left in the pre-connect state.

Currently, only the MtpDevice utilizes this mechanism. All other devices use a
default implementation that immediately reports success.
2019-01-15 21:10:05 +00:00
Jonas Kvinge
8d78dae9b6 Quit thread before deleting the loader (#6254) 2019-01-15 17:57:00 +00:00
Jim Broadus
74fa386c90 Try to obtain USB bus and device number from device name if unavailable in URI. (#6243)
In 1.37.2, gvfs switched to URIs that remain consistent across USB device
re-enumerations. This removed the usb bus and device numbers from the URI. In
the case that these values aren't found in the URI, try to parse Unix device
name property and pass results as query params on the URL. Pay attention to
these params in MtpConnection.

See gvfs commits 3a7bb06b and efc76d0c for reference.
2019-01-02 15:06:22 +00:00
Jim Broadus
95187ed0a1 Fix encoding of GError messages when logging. (#6228)
GError messages contain non-ascii characters. This normally just produces some garbage when we use the default QString contructor that assumes ASCII for logging. However, when a message includes the right double quote, UTF-8 sequence 0xE2 0x80 0x9D, the final byte is OSC. VT100 expects a command sequence to follow and stops echoing output until it sees ST or BEL character, which may never come. Thus, the console output is halted.

This change uses QString::fromLocal8Bit instead of depending on the default constructor. About half of the sites in the codebase had already been converted.

One side effect is that log messages are quoted. There are additional options to control this, but those were only introduced in Qt 5.4.
2018-12-02 09:51:19 +00:00
Jonas Kvinge
16bdd39c03 Merge remote-tracking branch 'upstream/master' into qt5-update 2018-11-29 23:21:54 +01:00
Jim Broadus
122d28eab9 Fix device loader error messages. (#6215)
GPodLoader and MtpLoader Error signals were connected to Error signals in their repective device classes, but the actual signal definition in ConnectedDevice was removed in a refactor several years ago. This change adds LoaderError slots to these device classes and reports the error in the manner of the refactored code.
2018-11-28 10:23:31 +00:00
Jonas Kvinge
8c198a99a5 Qt 5 fixes 2018-11-21 10:31:17 +00:00
Jonas Kvinge
c29c2e95cc Fixed merge conflicts 2018-09-30 15:11:06 +02:00
Mattias Andersson
3e53e23bb8 Fix formatting 2018-07-06 17:09:21 +01:00
Mattias Andersson
84f1b7bae0 Load the audio cd in a separate thread 2018-07-06 17:09:21 +01:00
Mattias Andersson
4458d45200 Give the cd device some more time to spin up 2018-07-06 17:09:21 +01:00
Jonas Kvinge
335bc89c97 Workaround for broken CD playback in Qt5 (#6021)
* Workaround for cdda URL in qUrl()

* Workaround for cdda URL in qUrl()

* Fix code formatting

* Fix code style
2018-03-09 23:09:55 +00:00
Chocobozzz
70f68b1926
Merge remote-tracking branch 'upstream/master' into qt5 2018-02-01 09:50:42 +01:00
Allan Nordhøy
b89ccb04f2 Spelling: D-Bus (#5838) 2017-08-28 23:37:47 +02:00
Allan Nordhøy
050813bf9c Spelling: D-Bus (#5837) 2017-08-28 23:37:25 +02:00
Chocobozzz
fc517ce7a5 Merge remote-tracking branch 'upstream/master' into qt5 2017-06-05 21:28:05 +02:00
Morris Hafner
8a6cc8b506 Add missing <functional> includes (#5630) 2017-02-13 16:46:46 +00:00
Chocobozzz
2ede85bdcd Merge branch 'master' into qt5 2016-12-18 17:04:08 +01:00
John Maguire
6f356592a5 Fixes for cross compiling for mac. 2016-12-15 11:36:05 +00:00
Chocobozzz
18a89f78a9 Merge remote-tracking branch 'upstream/master' into qt5 2016-10-07 14:30:09 +02:00
John Maguire
1f95a23fd4 Remove non-static data member initializers 2016-07-06 14:26:45 +01:00
John Maguire
6b90f69894 Fix typo 2016-06-01 11:46:52 +01:00
John Maguire
b90fb73480 Merge pull request #5394 from Chemrat/udisks2
Udisks2 support
2016-06-01 00:10:26 +01:00
Valeriy
ecaa9de788 fix variable names 2016-05-31 20:31:39 +03:00
Valeriy
1812f089b0 feed udisks2lister.* through format.py
add copyright headers
2016-05-31 18:31:00 +03:00
Valeriy
0172f7265b fix code style 2016-05-31 18:19:46 +03:00
Valeriy
cc6a99ef92 handle our unmount responses because those unmount jobs expire too fast
for jobs use dbus interface when possible
clean up the code a bit
2016-05-30 18:24:02 +03:00
Valeriy
ed986d3863 UDisks2.Job interface support 2016-05-22 23:44:22 +03:00
Valeriy
68001ff7e8 udisks2: handle unmount jobs too, more verbose logging 2016-05-21 23:29:18 +03:00
Valeriy
d4e932db9a udisks2 support for devicemanager (refs #3264) 2016-05-17 22:56:16 +03:00
Valeriy
cbc7092ed9 fix code style 2016-05-17 14:47:02 +03:00
Valeriy
806e689d1d replace foreach with range-based for 2016-05-11 19:00:30 +03:00
Valeriy
948140fab5 disconnect GVolumeMonitor signals from GioLister before destroying it
fixes #5369
2016-05-11 17:58:12 +03:00
Chocobozzz
ff7026c9fe Merge remote-tracking branch 'upstream/master' into qt5 2015-12-13 20:05:12 +01:00
John Maguire
f300946c81 Remove most usages of QFutureWatcher 2015-11-27 14:28:12 +00:00