void CoreConnection::init() { Client::signalProxy()->setHeartBeatInterval(30); connect(Client::signalProxy(), SIGNAL(lagUpdated(int)), SIGNAL(lagUpdated(int))); _reconnectTimer.setSingleShot(true); connect(&_reconnectTimer, SIGNAL(timeout()), SLOT(reconnectTimeout())); #ifdef HAVE_KDE connect(Solid::Networking::notifier(), SIGNAL(statusChanged(Solid::Networking::Status)), SLOT(solidNetworkStatusChanged(Solid::Networking::Status))); #endif CoreConnectionSettings s; s.initAndNotify("PingTimeoutInterval", this, SLOT(pingTimeoutIntervalChanged(QVariant)), 60); s.initAndNotify("ReconnectInterval", this, SLOT(reconnectIntervalChanged(QVariant)), 60); s.notify("NetworkDetectionMode", this, SLOT(networkDetectionModeChanged(QVariant))); networkDetectionModeChanged(s.networkDetectionMode()); }
void CoreConnection::onlineStateChanged(bool isOnline) { CoreConnectionSettings s; if (s.networkDetectionMode() != CoreConnectionSettings::UseQNetworkConfigurationManager) return; if(isOnline) { // qDebug() << "QNetworkConfigurationManager reports Online"; if (state() == Disconnected) { if (_wantReconnect && s.autoReconnect()) { reconnectToCore(); } } } else { // qDebug() << "QNetworkConfigurationManager reports Offline"; if (state() != Disconnected && !isLocalConnection()) disconnectFromCore(tr("Network is down"), true); } }
void CoreConnection::reconnectTimeout() { if (!_peer) { CoreConnectionSettings s; if (_wantReconnect && s.autoReconnect()) { #ifdef HAVE_KDE // 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_KDE */ reconnectToCore(); } } }
void CoreConnection::pingTimeoutIntervalChanged(const QVariant &interval) { CoreConnectionSettings s; if (s.networkDetectionMode() == CoreConnectionSettings::UsePingTimeout) Client::signalProxy()->setMaxHeartBeatCount(interval.toInt() / 30); // interval is 30 seconds }
void CoreConnectionSettingsPage::load() { CoreConnectionSettings s; _detectionMode = s.networkDetectionMode(); setRadioButtons(_detectionMode); SettingsPage::load(); }