From 4fb7d302dea77ce5171eff638d835b32f470fe62 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Sun, 8 Apr 2018 16:15:46 +0200 Subject: [PATCH 01/16] Bump version --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d5d0229b..72c2f4c5b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,8 @@ cmake_minimum_required(VERSION 3.0) project(kdeconnect) set(KDECONNECT_VERSION_MAJOR 1) -set(KDECONNECT_VERSION_MINOR 2) -set(KDECONNECT_VERSION_PATCH 1) +set(KDECONNECT_VERSION_MINOR 3) +set(KDECONNECT_VERSION_PATCH 0) set(KDECONNECT_VERSION "${KDECONNECT_VERSION_MAJOR}.${KDECONNECT_VERSION_MINOR}.${KDECONNECT_VERSION_PATCH}") set(QT_MIN_VERSION "5.7.0") From 13830c601a94dbec46f5e2922df9e4ec8d226562 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Mon, 9 Apr 2018 18:30:14 +0200 Subject: [PATCH 02/16] Added -o reconnect to sshfs It has been reported to fix some errors --- plugins/sftp/mounter.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/sftp/mounter.cpp b/plugins/sftp/mounter.cpp index 4352af3bf..2832c3fe2 100644 --- a/plugins/sftp/mounter.cpp +++ b/plugins/sftp/mounter.cpp @@ -137,6 +137,7 @@ void Mounter::onPakcageReceived(const NetworkPacket& np) << QStringLiteral("-o") << QStringLiteral("HostKeyAlgorithms=ssh-dss") //https://bugs.kde.org/show_bug.cgi?id=351725 << QStringLiteral("-o") << QStringLiteral("uid=") + QString::number(getuid()) << QStringLiteral("-o") << QStringLiteral("gid=") + QString::number(getgid()) + << QStringLiteral("-o") << QStringLiteral("reconnect") << QStringLiteral("-o") << QStringLiteral("ServerAliveInterval=30") << QStringLiteral("-o") << QStringLiteral("password_stdin") ; From 36b55fd80471fa260d1eacf684b643a8f2af3cfb Mon Sep 17 00:00:00 2001 From: Wojciech Stachurski Date: Mon, 23 Apr 2018 22:30:56 +0200 Subject: [PATCH 03/16] Assign notification area category Summary: This is a supplement for D11352. Reviewers: #plasma, #kde_connect, nicolasfella Reviewed By: #kde_connect, nicolasfella Tags: #kde_connect Differential Revision: https://phabricator.kde.org/D11751 --- plasmoid/package/metadata.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/plasmoid/package/metadata.desktop b/plasmoid/package/metadata.desktop index d79ca1719..d8fe358d4 100644 --- a/plasmoid/package/metadata.desktop +++ b/plasmoid/package/metadata.desktop @@ -86,6 +86,7 @@ X-KDE-ServiceTypes=Plasma/Applet X-Plasma-API=declarativeappletscript X-Plasma-MainScript=ui/main.qml X-Plasma-NotificationArea=true +X-Plasma-NotificationAreaCategory=Hardware X-Plasma-ConfigPlugins=kcm_kdeconnect X-KDE-PluginInfo-Author=Albert Vaca Cintora From 2b502eb055bf3074e03d0e50c8535b63c22a3d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20=C4=8Cuki=C4=87?= Date: Sat, 26 May 2018 23:06:56 +0200 Subject: [PATCH 04/16] Qt Network is used by the KIO module Reviewers: albertvaka, ngraham, #plasma, #kde_connect, nicolasfella Reviewed By: #kde_connect, nicolasfella Subscribers: kdeconnect Tags: #kde_connect Differential Revision: https://phabricator.kde.org/D11251 --- CMakeLists.txt | 2 +- kio/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 72c2f4c5b..adcd1cc75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ set(KF5_MIN_VERSION "5.42.0") find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_SOURCE_DIR}/cmake) -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Quick) +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Quick Network) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS I18n ConfigWidgets DBusAddons IconThemes Notifications KIO KCMUtils) find_package(KF5 ${KF5_MIN_VERSION} COMPONENTS DocTools) diff --git a/kio/CMakeLists.txt b/kio/CMakeLists.txt index fc81f4a20..024140262 100644 --- a/kio/CMakeLists.txt +++ b/kio/CMakeLists.txt @@ -11,6 +11,7 @@ target_link_libraries(kio_kdeconnect kdeconnectinterfaces Qt5::Core Qt5::Gui + Qt5::Network KF5::KIOCore KF5::I18n ) From 3c82c358abc3c3155dcc91f2f0d18ea603848758 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Tue, 29 May 2018 20:51:35 +0200 Subject: [PATCH 05/16] Add a generic "something changed" signal --- core/daemon.cpp | 4 ++++ core/daemon.h | 1 + 2 files changed, 5 insertions(+) diff --git a/core/daemon.cpp b/core/daemon.cpp index 1f5d76c60..de98076c0 100644 --- a/core/daemon.cpp +++ b/core/daemon.cpp @@ -125,6 +125,7 @@ void Daemon::removeDevice(Device* device) d->m_devices.remove(device->id()); device->deleteLater(); Q_EMIT deviceRemoved(device->id()); + Q_EMIT deviceListChanged(); } void Daemon::cleanDevices() @@ -194,6 +195,7 @@ void Daemon::onNewDeviceLink(const NetworkPacket& identityPacket, DeviceLink* dl device->addLink(identityPacket, dl); if (!wasReachable) { Q_EMIT deviceVisibilityChanged(id, true); + Q_EMIT deviceListChanged(); } } else { qCDebug(KDECONNECT_CORE) << "It is a new device" << identityPacket.get(QStringLiteral("deviceName")); @@ -219,6 +221,7 @@ void Daemon::onDeviceStatusChanged() removeDevice(device); } else { Q_EMIT deviceVisibilityChanged(device->id(), device->isReachable()); + Q_EMIT deviceListChanged(); } } @@ -277,6 +280,7 @@ void Daemon::addDevice(Device* device) d->m_devices[id] = device; Q_EMIT deviceAdded(id); + Q_EMIT deviceListChanged(); } QStringList Daemon::pairingRequests() const diff --git a/core/daemon.h b/core/daemon.h index aa147fadb..41995701e 100644 --- a/core/daemon.h +++ b/core/daemon.h @@ -81,6 +81,7 @@ Q_SIGNALS: Q_SCRIPTABLE void deviceAdded(const QString& id); Q_SCRIPTABLE void deviceRemoved(const QString& id); //Note that paired devices will never be removed Q_SCRIPTABLE void deviceVisibilityChanged(const QString& id, bool isVisible); + Q_SCRIPTABLE void deviceListChanged(); //Emitted when any of deviceAdded, deviceRemoved or deviceVisibilityChanged is emitted Q_SCRIPTABLE void announcedNameChanged(const QString& announcedName); Q_SCRIPTABLE void pairingRequestsChanged(); From 9dd7f015af860458b872c6fd79419b5e182f80bc Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Tue, 29 May 2018 20:52:16 +0200 Subject: [PATCH 06/16] Do not do a dbus call every time get_file_items is called --- nautilus-extension/kdeconnect-share.py | 40 ++++++++++++++++++++------ 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/nautilus-extension/kdeconnect-share.py b/nautilus-extension/kdeconnect-share.py index c88222621..ba9685341 100644 --- a/nautilus-extension/kdeconnect-share.py +++ b/nautilus-extension/kdeconnect-share.py @@ -30,6 +30,7 @@ __website__ = "https://community.kde.org/KDEConnect" import gettext import locale +from functools import partial from gi.repository import Nautilus, Gio, GLib, GObject @@ -38,9 +39,22 @@ _ = gettext.gettext class KdeConnectShareExtension(GObject.GObject, Nautilus.MenuProvider): """A context menu for sending files via KDE Connect.""" + def refresh_devices_list(self, *args, **kwargs): + try: + onlyReachable = True + onlyPaired = True + variant = GLib.Variant('(bb)', (onlyReachable, onlyPaired)) + devices = self.dbus.call_sync('deviceNames', variant, 0, -1, None) + self.devices = devices.unpack()[0] + except Exception as e: + raise Exception('Error while getting reachable devices') + + def __init__(self): GObject.GObject.__init__(self) + self.devices = {} + try: locale.setlocale(locale.LC_ALL, '') gettext.bindtextdomain('kdeconnect-nautilus-extension') @@ -57,6 +71,21 @@ class KdeConnectShareExtension(GObject.GObject, Nautilus.MenuProvider): 'org.kde.kdeconnect.daemon', None) + connection = Gio.bus_get_sync( + Gio.BusType.SESSION, + None) + connection.signal_subscribe( + None, + 'org.kde.kdeconnect.daemon', + 'deviceListChanged', + "/modules/kdeconnect", + None, + Gio.DBusSignalFlags.NONE, + partial(self.refresh_devices_list, self), + ) + + self.refresh_devices_list() + def send_files(self, menu, files, deviceId): device_proxy = Gio.DBusProxy.new_for_bus_sync( Gio.BusType.SESSION, @@ -78,20 +107,13 @@ class KdeConnectShareExtension(GObject.GObject, Nautilus.MenuProvider): if uri.get_uri_scheme() != 'file' or uri.is_directory(): return - try: - onlyReachable = True - onlyPaired = True - variant = GLib.Variant('(bb)', (onlyReachable, onlyPaired)) - devices = self.dbus.call_sync('deviceNames', variant, 0, -1, None) - devices = devices.unpack()[0] - except Exception as e: - raise Exception('Error while getting reachable devices') + devices = self.devices if len(devices) == 0: return if len(devices) == 1: - deviceId, deviceName = devices.items()[0] + deviceId, deviceName = devices[0], devices[0] item = Nautilus.MenuItem( name='KdeConnectShareExtension::Devices::' + deviceId, label=_("Send to %s via KDE Connect") % deviceName, From 03573490c82051427070e46e84c0725f6577fbe9 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Tue, 29 May 2018 21:03:02 +0200 Subject: [PATCH 07/16] Compat with python3 --- nautilus-extension/kdeconnect-share.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nautilus-extension/kdeconnect-share.py b/nautilus-extension/kdeconnect-share.py index ba9685341..c17aec631 100644 --- a/nautilus-extension/kdeconnect-share.py +++ b/nautilus-extension/kdeconnect-share.py @@ -113,7 +113,7 @@ class KdeConnectShareExtension(GObject.GObject, Nautilus.MenuProvider): return if len(devices) == 1: - deviceId, deviceName = devices[0], devices[0] + deviceId, deviceName = list(devices.items())[0] item = Nautilus.MenuItem( name='KdeConnectShareExtension::Devices::' + deviceId, label=_("Send to %s via KDE Connect") % deviceName, From 26e79cadd53eee9cbc8e22353abd6830b4ec5656 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Wed, 30 May 2018 20:52:09 +0200 Subject: [PATCH 08/16] Bump minor version to release --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index adcd1cc75..a85e3fd19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(kdeconnect) set(KDECONNECT_VERSION_MAJOR 1) set(KDECONNECT_VERSION_MINOR 3) -set(KDECONNECT_VERSION_PATCH 0) +set(KDECONNECT_VERSION_PATCH 1) set(KDECONNECT_VERSION "${KDECONNECT_VERSION_MAJOR}.${KDECONNECT_VERSION_MINOR}.${KDECONNECT_VERSION_PATCH}") set(QT_MIN_VERSION "5.7.0") From 2a0b700adae0bf7cda63523fb776128acf48cdfd Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Wed, 30 May 2018 21:00:28 +0200 Subject: [PATCH 09/16] Full version string --- kdeconnect-version.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kdeconnect-version.h.in b/kdeconnect-version.h.in index e90e7c550..07c9f08d9 100644 --- a/kdeconnect-version.h.in +++ b/kdeconnect-version.h.in @@ -1,2 +1,2 @@ -#define KDECONNECT_VERSION_STRING "${KDECONNECT_VERSION_MAJOR}.${KDECONNECT_VERSION_MINOR}" \ No newline at end of file +#define KDECONNECT_VERSION_STRING "${KDECONNECT_VERSION}" From ff29ad592f9d727d81e6c64b11676e059101088f Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Sun, 10 Jun 2018 01:07:29 +0200 Subject: [PATCH 10/16] Fix DBus signals in Mprisremote Summary: This seems to fix the issue I mentioned on Telegram/Mail Test Plan: Before: Use Mprisremote plugin with App. View did not update when e.g. next is pressed. Now: View correctly represents the DBus data Reviewers: #kde_connect Subscribers: #kde_connect Tags: #kde_connect Differential Revision: https://phabricator.kde.org/D12528 --- plugins/mprisremote/mprisremoteplugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/mprisremote/mprisremoteplugin.h b/plugins/mprisremote/mprisremoteplugin.h index 00a16f215..4832d5218 100644 --- a/plugins/mprisremote/mprisremoteplugin.h +++ b/plugins/mprisremote/mprisremoteplugin.h @@ -66,7 +66,7 @@ public: Q_SCRIPTABLE void sendAction(const QString& action); Q_SIGNALS: - void propertiesChanged(); + Q_SCRIPTABLE void propertiesChanged(); private: void requestPlayerStatus(); From b28fa998ed71496f4a9573b99aa04f0eec623579 Mon Sep 17 00:00:00 2001 From: Thomas Surrel Date: Thu, 14 Jun 2018 17:44:37 +0200 Subject: [PATCH 11/16] Change the 'Dismiss all notifications' icon Summary: This matches the KDE notification icon. Reviewers: apol Reviewed By: apol Subscribers: abetts, Fuchs, apol, kdeconnect Tags: #kde_connect Differential Revision: https://phabricator.kde.org/D13534 --- plasmoid/package/contents/ui/DeviceDelegate.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plasmoid/package/contents/ui/DeviceDelegate.qml b/plasmoid/package/contents/ui/DeviceDelegate.qml index d710892d4..8b15d81b3 100644 --- a/plasmoid/package/contents/ui/DeviceDelegate.qml +++ b/plasmoid/package/contents/ui/DeviceDelegate.qml @@ -205,7 +205,7 @@ PlasmaComponents.ListItem enabled: true visible: notificationsModel.isAnyDimissable; anchors.right: parent.right - iconSource: "window-close" + iconSource: "edit-delete" tooltip: i18n("Dismiss all notifications") onClicked: notificationsModel.dismissAll(); } From 3ce487a14f833301be14c897d117e275900b5777 Mon Sep 17 00:00:00 2001 From: Thomas Surrel Date: Thu, 12 Jul 2018 16:16:52 +0200 Subject: [PATCH 12/16] Add new notifications at the top of the list Summary: This will show a list with the most recent notifications at the top, in the plasmoid. This is more consistent with the KDE notification plasmoid that stack them like this too. Reviewers: apol, #kde_connect Reviewed By: apol, #kde_connect Subscribers: kdeconnect Tags: #kde_connect Differential Revision: https://phabricator.kde.org/D13540 --- interfaces/notificationsmodel.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/interfaces/notificationsmodel.cpp b/interfaces/notificationsmodel.cpp index fb75ef2b7..5b884c562 100644 --- a/interfaces/notificationsmodel.cpp +++ b/interfaces/notificationsmodel.cpp @@ -102,10 +102,9 @@ void NotificationsModel::setDeviceId(const QString& deviceId) void NotificationsModel::notificationAdded(const QString& id) { - int currentSize = m_notificationList.size(); - beginInsertRows(QModelIndex(), currentSize, currentSize); + beginInsertRows(QModelIndex(), 0, 0); NotificationDbusInterface* dbusInterface = new NotificationDbusInterface(m_deviceId, id, this); - m_notificationList.append(dbusInterface); + m_notificationList.prepend(dbusInterface); endInsertRows(); } From 0fc98240c0c5addec6d4201b1a085d232e702602 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Wed, 1 Aug 2018 11:10:14 +0200 Subject: [PATCH 13/16] Remove characters from UUID that aren't legal in URLs --- core/dbushelper.h | 4 +++- plugins/runcommand/CMakeLists.txt | 1 + plugins/runcommand/runcommand_config.cpp | 5 +++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/dbushelper.h b/core/dbushelper.h index b287a9f65..5f7e85791 100644 --- a/core/dbushelper.h +++ b/core/dbushelper.h @@ -22,8 +22,10 @@ #define KDECONNECT_DBUSHELPER_H #include +#include "kdeconnectcore_export.h" + namespace DbusHelper { - void filterNonExportableCharacters(QString& s); + void KDECONNECTCORE_EXPORT filterNonExportableCharacters(QString& s); } #endif diff --git a/plugins/runcommand/CMakeLists.txt b/plugins/runcommand/CMakeLists.txt index 4a244cc2b..6c0a08a1e 100644 --- a/plugins/runcommand/CMakeLists.txt +++ b/plugins/runcommand/CMakeLists.txt @@ -15,6 +15,7 @@ set( kdeconnect_runcommand_config_SRCS runcommand_config.cpp ) add_library(kdeconnect_runcommand_config MODULE ${kdeconnect_runcommand_config_SRCS} ) target_link_libraries( kdeconnect_runcommand_config + kdeconnectcore kdeconnectpluginkcm KF5::I18n KF5::CoreAddons diff --git a/plugins/runcommand/runcommand_config.cpp b/plugins/runcommand/runcommand_config.cpp index eaabb09d2..8a3c7f175 100644 --- a/plugins/runcommand/runcommand_config.cpp +++ b/plugins/runcommand/runcommand_config.cpp @@ -20,7 +20,6 @@ #include "runcommand_config.h" -#include #include #include #include @@ -32,9 +31,10 @@ #include #include - #include +#include + K_PLUGIN_FACTORY(ShareConfigFactory, registerPlugin();) @@ -128,6 +128,7 @@ void RunCommandConfig::save() if (key.isEmpty()) { key = QUuid::createUuid().toString(); + DbusHelper::filterNonExportableCharacters(key); } QJsonObject entry; entry[QStringLiteral("name")] = name; From 0a58978cb8e1c1d3913aff858481867ee0590fa2 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Fri, 31 Aug 2018 10:47:22 +0200 Subject: [PATCH 14/16] Also allow modern algorithms, for compat with future apps --- plugins/sftp/mounter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sftp/mounter.cpp b/plugins/sftp/mounter.cpp index 2832c3fe2..caa7b6341 100644 --- a/plugins/sftp/mounter.cpp +++ b/plugins/sftp/mounter.cpp @@ -134,7 +134,7 @@ void Mounter::onPakcageReceived(const NetworkPacket& np) << QStringLiteral("-o") << "IdentityFile=" + KdeConnectConfig::instance()->privateKeyPath() << QStringLiteral("-o") << QStringLiteral("StrictHostKeyChecking=no") //Do not ask for confirmation because it is not a known host << QStringLiteral("-o") << QStringLiteral("UserKnownHostsFile=/dev/null") //Prevent storing as a known host - << QStringLiteral("-o") << QStringLiteral("HostKeyAlgorithms=ssh-dss") //https://bugs.kde.org/show_bug.cgi?id=351725 + << QStringLiteral("-o") << QStringLiteral("HostKeyAlgorithms=+ssh-rsa") //https://bugs.kde.org/show_bug.cgi?id=351725 << QStringLiteral("-o") << QStringLiteral("uid=") + QString::number(getuid()) << QStringLiteral("-o") << QStringLiteral("gid=") + QString::number(getgid()) << QStringLiteral("-o") << QStringLiteral("reconnect") From 8603592b590db3dd6571d2a9374b0d647d29f1fa Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Tue, 4 Sep 2018 14:40:42 +0200 Subject: [PATCH 15/16] It's DSS we want to enable My previous commit changed it to RSA by mistake --- plugins/sftp/mounter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sftp/mounter.cpp b/plugins/sftp/mounter.cpp index caa7b6341..34910de9d 100644 --- a/plugins/sftp/mounter.cpp +++ b/plugins/sftp/mounter.cpp @@ -134,7 +134,7 @@ void Mounter::onPakcageReceived(const NetworkPacket& np) << QStringLiteral("-o") << "IdentityFile=" + KdeConnectConfig::instance()->privateKeyPath() << QStringLiteral("-o") << QStringLiteral("StrictHostKeyChecking=no") //Do not ask for confirmation because it is not a known host << QStringLiteral("-o") << QStringLiteral("UserKnownHostsFile=/dev/null") //Prevent storing as a known host - << QStringLiteral("-o") << QStringLiteral("HostKeyAlgorithms=+ssh-rsa") //https://bugs.kde.org/show_bug.cgi?id=351725 + << QStringLiteral("-o") << QStringLiteral("HostKeyAlgorithms=+ssh-dss") //https://bugs.kde.org/show_bug.cgi?id=351725 << QStringLiteral("-o") << QStringLiteral("uid=") + QString::number(getuid()) << QStringLiteral("-o") << QStringLiteral("gid=") + QString::number(getgid()) << QStringLiteral("-o") << QStringLiteral("reconnect") From a1505a8f696081bf537760e6725f68ceeabbe593 Mon Sep 17 00:00:00 2001 From: Albert Vaca Date: Thu, 6 Sep 2018 18:20:35 +0200 Subject: [PATCH 16/16] Bump minor version to release --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a85e3fd19..180d2c423 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(kdeconnect) set(KDECONNECT_VERSION_MAJOR 1) set(KDECONNECT_VERSION_MINOR 3) -set(KDECONNECT_VERSION_PATCH 1) +set(KDECONNECT_VERSION_PATCH 2) set(KDECONNECT_VERSION "${KDECONNECT_VERSION_MAJOR}.${KDECONNECT_VERSION_MINOR}.${KDECONNECT_VERSION_PATCH}") set(QT_MIN_VERSION "5.7.0")