+
+ // initiate if a reconnect if appropriate
+ CoreConnectionSettings s;
+ if(wantReconnect && s.autoReconnect()) {
+ _reconnectTimer.start();
+ //reconnectToCore();
+ }
+}
+
+void CoreConnection::reconnectTimeout() {
+ if(!_socket) {
+ 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::networkDetectionModeChanged(const QVariant &vmode) {
+ CoreConnectionSettings s;
+ CoreConnectionSettings::NetworkDetectionMode mode = (CoreConnectionSettings::NetworkDetectionMode)vmode.toInt();
+ if(mode == CoreConnectionSettings::UsePingTimeout)
+ Client::signalProxy()->setMaxHeartBeatCount(s.pingTimeoutInterval() / 30);
+ else {
+ Client::signalProxy()->setMaxHeartBeatCount(-1);
+ }
+}
+
+void CoreConnection::pingTimeoutIntervalChanged(const QVariant &interval) {
+ CoreConnectionSettings s;
+ if(s.networkDetectionMode() == CoreConnectionSettings::UsePingTimeout)
+ Client::signalProxy()->setMaxHeartBeatCount(interval.toInt() / 30); // interval is 30 seconds
+}
+
+void CoreConnection::reconnectIntervalChanged(const QVariant &interval) {
+ _reconnectTimer.setInterval(interval.toInt() * 1000);