kdeconnect-kde/core
Simon Redman 8eff1dcca7 Bluetooth provider workaround for BlueZ/DBus timeouts
Context: https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/600#note_884500

When bluetooth doesn't exist on the machine at all, QTConnectivity
tries to communicate with Bluez via dbus and introduces a 30 odd second
pause. That's not necessarily a problem in concept, however this blocks
the main thread of KDEConnect, which also then blocks the main thread
of Plasma on logon and causes tremendous delays and very broken
behaviour.

For the life of me, I cannot find a way to do "is bluetooth ok" without
QTConnect kicking off the dbus call so I think the only option is to
thread off the startup of the providers so that pauses don't block
the whole process.

I've just tested this here and my logon with bluetooth missing went
from approx 35 seconds down to about 2.

Ready for input/feedback whenever people have time; in my testing at the moment it seems to completely break the behaviour of KDEConnect (i.e. things can't connect), I'm guessing this is something to do with the effect of wrapping everything in the QThread. I'll dig into that next and see if I can figure it out.

BUG: 481870


(cherry picked from commit bb146a76d0)

4beb8c65 Fixing hanging startup/logon when bluetooth is unavailable

Co-authored-by: Rob Emery <kde@mintsoft.net>
2024-07-31 21:25:49 +00:00
..
backends Correct reference to NetworkPacket in isValidIdentityPacket calls 2024-06-10 20:59:03 +00:00
CMakeLists.txt Disable Bluetooth backend due to https://bugs.kde.org/show_bug.cgi?id=482192 2024-03-02 14:46:29 +00:00
compositefiletransferjob.cpp Add a parent to KCompositeJob 2024-06-04 14:15:23 +00:00
compositefiletransferjob.h Add a parent to KCompositeJob 2024-06-04 14:15:23 +00:00
core_debug.cpp Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00:00
core_debug.h Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00:00
daemon.cpp Bluetooth provider workaround for BlueZ/DBus timeouts 2024-07-31 21:25:49 +00:00
daemon.h Use std::unique_ptr for pimpl classes 2023-08-28 17:20:46 +00:00
dbushelper.cpp Reformat project with clang-format 2023-12-02 14:56:20 +01:00
dbushelper.h.in Improve D-Bus implementation on macOS 2022-04-12 05:40:03 +00:00
device.cpp Show pairing keys everywhere and always shorten to 8 chars 2024-05-18 20:26:48 +00:00
device.h Show pairing keys everywhere and always shorten to 8 chars 2024-05-18 20:26:48 +00:00
deviceinfo.h Validate and filter device names 2024-05-19 16:24:54 +02:00
filetransferjob.cpp [filetransferjob] Simplify error handling 2024-04-17 10:15:03 +00:00
filetransferjob.h [filetransferjob] Simplify error handling 2024-04-17 10:15:03 +00:00
kdeconnectconfig.cpp Use EC keys instead of RSA 2024-05-19 10:04:43 +00:00
kdeconnectconfig.h Use EC keys instead of RSA 2024-05-19 10:04:43 +00:00
kdeconnectplugin.cpp plugins: Add context-aware logging in case of errors 2023-08-03 20:54:38 +02:00
kdeconnectplugin.h Use std::unique_ptr for pimpl classes 2023-08-28 17:20:46 +00:00
kdeconnectpluginconfig.cpp kcmplugin: Do not use d-ptr for trivial members that are fully qualified 2023-08-28 17:20:46 +00:00
kdeconnectpluginconfig.h Use std::unique_ptr for pimpl classes 2023-08-28 17:20:46 +00:00
Messages.sh Do not extract messages from the non-existent .ui and .rc files 2019-12-21 10:04:31 +02:00
networkpacket.cpp Add explicit moc includes to cpp files 2023-07-30 07:27:45 +00:00
networkpacket.h Networkpacket: Let Qt generate property setters 2023-08-28 17:20:46 +00:00
networkpackettypes.h Convert license headers to SPDX expressions 2020-08-17 09:48:10 +00:00
notificationserverinfo.cpp Add explicit moc includes to cpp files 2023-07-30 07:27:45 +00:00
notificationserverinfo.h Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00:00
openconfig.cpp Add explicit moc includes to cpp files 2023-07-30 07:27:45 +00:00
openconfig.h Ensure openconfig.h is only included once 2023-02-17 07:48:45 +00:00
pairstate.h clang-format pass 2023-07-16 16:20:34 +02:00
pluginloader.cpp PluginLoader: Improve const corretness, remove unneeded qAsConst 2023-08-28 17:20:46 +00:00
pluginloader.h PluginLoader: Improve const corretness, remove unneeded qAsConst 2023-08-28 17:20:46 +00:00
sslhelper.cpp Use EC keys instead of RSA 2024-05-19 10:04:43 +00:00
sslhelper.h Use EC keys instead of RSA 2024-05-19 10:04:43 +00:00