From 165298e0c0ef4666ed9c29f529e35fb4a37913ce Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Fri, 6 Feb 2015 22:22:21 +0100 Subject: [PATCH] Remove support for network detection via Solid Now that we rely on Qt 4.8 and up, we can use QNCM on all platforms. Solid::Networking didn't do anything else, and is deprecated in KDE Frameworks in favor of QNCM anyway. Also improved the core connection settings dialog a bit. --- src/client/CMakeLists.txt | 9 ---- src/client/clientsettings.cpp | 10 ++-- src/client/clientsettings.h | 3 +- src/client/coreconnection.cpp | 50 ++----------------- src/client/coreconnection.h | 19 ++----- .../coreconnectionsettingspage.cpp | 17 ------- .../coreconnectionsettingspage.ui | 29 +++++------ 7 files changed, 24 insertions(+), 113 deletions(-) diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 4f0106c4..4eef7d54 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -38,11 +38,6 @@ set(SOURCES clientcoreinfo.h ) -if (KDE4_FOUND) - include_directories(${KDE4_INCLUDES}) - add_definitions(-DHAVE_KDE ${KDE4_DEFINITIONS}) -endif() - if (USE_QT5) list(APPEND qt_modules Widgets) endif() @@ -53,7 +48,3 @@ add_library(mod_client STATIC ${SOURCES}) qt_use_modules(mod_client Network Core Gui ${qt_modules}) target_link_libraries(mod_client mod_common) - -if (KDE4_FOUND) - target_link_libraries(mod_client ${KDE4_SOLID_LIBS}) -endif() diff --git a/src/client/clientsettings.cpp b/src/client/clientsettings.cpp index 1023efb0..dc8e5c18 100644 --- a/src/client/clientsettings.cpp +++ b/src/client/clientsettings.cpp @@ -249,12 +249,10 @@ void CoreConnectionSettings::setNetworkDetectionMode(NetworkDetectionMode mode) CoreConnectionSettings::NetworkDetectionMode CoreConnectionSettings::networkDetectionMode() { -#ifdef HAVE_KDE4 - NetworkDetectionMode def = UseSolid; -#else - NetworkDetectionMode def = UseQNetworkConfigurationManager; -#endif - return (NetworkDetectionMode)localValue("NetworkDetectionMode", def).toInt(); + auto mode = localValue("NetworkDetectionMode", UseQNetworkConfigurationManager).toInt(); + if (mode == 0) + mode = UseQNetworkConfigurationManager; // UseSolid is gone, map that to the new default + return static_cast(mode); } diff --git a/src/client/clientsettings.h b/src/client/clientsettings.h index ed02efd1..dd413e0d 100644 --- a/src/client/clientsettings.h +++ b/src/client/clientsettings.h @@ -124,8 +124,7 @@ class CoreConnectionSettings : public ClientSettings { public: enum NetworkDetectionMode { - UseSolid, - UseQNetworkConfigurationManager, + UseQNetworkConfigurationManager = 1, // UseSolid is gone UsePingTimeout, NoActiveDetection }; diff --git a/src/client/coreconnection.cpp b/src/client/coreconnection.cpp index 735fab46..0e4b4f94 100644 --- a/src/client/coreconnection.cpp +++ b/src/client/coreconnection.cpp @@ -43,8 +43,7 @@ CoreConnection::CoreConnection(QObject *parent) _progressMinimum(0), _progressMaximum(-1), _progressValue(-1), - _resetting(false), - _qNetworkConfigurationManager(0) + _resetting(false) { qRegisterMetaType("CoreConnection::ConnectionState"); } @@ -58,10 +57,6 @@ void CoreConnection::init() _reconnectTimer.setSingleShot(true); connect(&_reconnectTimer, SIGNAL(timeout()), SLOT(reconnectTimeout())); -#ifdef HAVE_KDE4 - connect(Solid::Networking::notifier(), SIGNAL(statusChanged(Solid::Networking::Status)), - SLOT(solidNetworkStatusChanged(Solid::Networking::Status))); -#endif _qNetworkConfigurationManager = new QNetworkConfigurationManager(this); connect(_qNetworkConfigurationManager, SIGNAL(onlineStateChanged(bool)), SLOT(onlineStateChanged(bool))); @@ -130,22 +125,12 @@ void CoreConnection::reconnectTimeout() if (!_peer) { CoreConnectionSettings s; if (_wantReconnect && s.autoReconnect()) { -#ifdef HAVE_KDE4 - // If using Solid, we don't want to reconnect if we're offline - if (s.networkDetectionMode() == CoreConnectionSettings::UseSolid) { - if (Solid::Networking::status() != Solid::Networking::Connected - && Solid::Networking::status() != Solid::Networking::Unknown) { - return; - } - } -#endif /* HAVE_KDE4 */ - // If using QNetworkConfigurationManager, ditto + // If using QNetworkConfigurationManager, we don't want to reconnect if we're offline if (s.networkDetectionMode() == CoreConnectionSettings::UseQNetworkConfigurationManager) { if (!_qNetworkConfigurationManager->isOnline()) { return; } } - reconnectToCore(); } } @@ -178,36 +163,6 @@ void CoreConnection::reconnectIntervalChanged(const QVariant &interval) } -#ifdef HAVE_KDE4 - -void CoreConnection::solidNetworkStatusChanged(Solid::Networking::Status status) -{ - CoreConnectionSettings s; - if (s.networkDetectionMode() != CoreConnectionSettings::UseSolid) - return; - - switch (status) { - case Solid::Networking::Unknown: - case Solid::Networking::Connected: - //qDebug() << "Solid: Network status changed to connected or unknown"; - if (state() == Disconnected) { - if (_wantReconnect && s.autoReconnect()) { - reconnectToCore(); - } - } - break; - case Solid::Networking::Disconnecting: - case Solid::Networking::Unconnected: - if (state() != Disconnected && !isLocalConnection()) - disconnectFromCore(tr("Network is down"), true); - break; - default: - break; - } -} - -#endif - void CoreConnection::onlineStateChanged(bool isOnline) { CoreConnectionSettings s; @@ -228,6 +183,7 @@ void CoreConnection::onlineStateChanged(bool isOnline) } } + bool CoreConnection::isEncrypted() const { return _peer && _peer->isSecure(); diff --git a/src/client/coreconnection.h b/src/client/coreconnection.h index 3c21b797..0019a534 100644 --- a/src/client/coreconnection.h +++ b/src/client/coreconnection.h @@ -18,11 +18,11 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef CORECONNECTION_H_ -#define CORECONNECTION_H_ +#pragma once -#include "QPointer" -#include "QTimer" +#include +#include +#include #ifdef HAVE_SSL # include @@ -30,12 +30,6 @@ # include #endif -#ifdef HAVE_KDE4 -# include -#endif - -#include - #include "coreaccount.h" #include "remotepeer.h" #include "types.h" @@ -150,9 +144,6 @@ private slots: void reconnectIntervalChanged(const QVariant &interval); void reconnectTimeout(); -#ifdef HAVE_KDE4 - void solidNetworkStatusChanged(Solid::Networking::Status status); -#endif void onlineStateChanged(bool isOnline); private: @@ -191,5 +182,3 @@ inline QString CoreConnection::progressText() const { return _progressText; } inline CoreConnection::ConnectionState CoreConnection::state() const { return _state; } inline bool CoreConnection::isConnected() const { return state() >= Connected; } inline CoreAccount CoreConnection::currentAccount() const { return _account; } - -#endif diff --git a/src/qtui/settingspages/coreconnectionsettingspage.cpp b/src/qtui/settingspages/coreconnectionsettingspage.cpp index aeb732e5..d73c0107 100644 --- a/src/qtui/settingspages/coreconnectionsettingspage.cpp +++ b/src/qtui/settingspages/coreconnectionsettingspage.cpp @@ -24,13 +24,9 @@ CoreConnectionSettingsPage::CoreConnectionSettingsPage(QWidget *parent) : SettingsPage(tr("Remote Cores"), tr("Connection"), parent) { ui.setupUi(this); -#ifndef HAVE_KDE4 - ui.useSolid->hide(); -#endif initAutoWidgets(); - connect(ui.useSolid, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); connect(ui.useQNetworkConfigurationManager, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); connect(ui.usePingTimeout, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); connect(ui.useNoTimeout, SIGNAL(toggled(bool)), SLOT(widgetHasChanged())); @@ -50,11 +46,7 @@ void CoreConnectionSettingsPage::widgetHasChanged() void CoreConnectionSettingsPage::defaults() { -#ifdef HAVE_KDE4 - setRadioButtons(CoreConnectionSettings::UseSolid); -#else setRadioButtons(CoreConnectionSettings::UseQNetworkConfigurationManager); -#endif SettingsPage::defaults(); } @@ -81,11 +73,6 @@ void CoreConnectionSettingsPage::save() void CoreConnectionSettingsPage::setRadioButtons(CoreConnectionSettings::NetworkDetectionMode mode) { switch (mode) { -#ifdef HAVE_KDE4 - case CoreConnectionSettings::UseSolid: - ui.useSolid->setChecked(true); - break; -#endif case CoreConnectionSettings::UseQNetworkConfigurationManager: ui.useQNetworkConfigurationManager->setChecked(true); break; @@ -100,10 +87,6 @@ void CoreConnectionSettingsPage::setRadioButtons(CoreConnectionSettings::Network CoreConnectionSettings::NetworkDetectionMode CoreConnectionSettingsPage::modeFromRadioButtons() const { -#ifdef HAVE_KDE4 - if (ui.useSolid->isChecked()) - return CoreConnectionSettings::UseSolid; -#endif if (ui.useQNetworkConfigurationManager->isChecked()) return CoreConnectionSettings::UseQNetworkConfigurationManager; if (ui.usePingTimeout->isChecked()) diff --git a/src/qtui/settingspages/coreconnectionsettingspage.ui b/src/qtui/settingspages/coreconnectionsettingspage.ui index d641bfa1..15891847 100644 --- a/src/qtui/settingspages/coreconnectionsettingspage.ui +++ b/src/qtui/settingspages/coreconnectionsettingspage.ui @@ -6,7 +6,7 @@ 0 0 - 446 + 476 465 @@ -20,26 +20,13 @@ Network Status Detection - - - - Rely on KDE's hardware layer to detect if we're online. Recommended for most KDE users - - - Use KDE's network status detection (via Solid) - - - false - - - - Rely on Qt's network configuration manager to detect if we're online. + Rely on Qt's network configuration manager to detect if we're online - Use Qt's network status detection (via QNetworkConfigurationManager) + Automatic false @@ -164,7 +151,7 @@ - Actively ping the remote core and disconnect if we didn't get a reply after a certain time + Interval between consecutive connection attempts seconds @@ -219,6 +206,14 @@ + + useQNetworkConfigurationManager + usePingTimeout + pingTimeout + useNoTimeout + autoReconnect + reconnectInterval + -- 2.20.1