- setProgressMaximum(-1); // disable
- setState(Disconnected);
- emit connectionMsg(tr("Disconnected from core."));
+void CoreConnection::reconnectIntervalChanged(const QVariant &interval) {
+ _reconnectTimer.setInterval(interval.toInt() * 1000);
+}
+
+#ifdef HAVE_KDE
+
+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::Unconnected:
+ qDebug() << "Solid: Disconnected";
+ if(!isLocalConnection())
+ disconnectFromCore(tr("Network is down"), true);
+ break;
+ default:
+ break;
+ }
+}
+
+#endif
+
+bool CoreConnection::isEncrypted() const {
+#ifndef HAVE_SSL
+ return false;
+#else
+ QSslSocket *sock = qobject_cast<QSslSocket *>(_socket);
+ return isConnected() && sock && sock->isEncrypted();
+#endif
+}
+
+bool CoreConnection::isLocalConnection() const {
+ if(!isConnected())
+ return false;
+ if(currentAccount().isInternal())
+ return true;
+ if(_socket->peerAddress().isInSubnet(QHostAddress::LocalHost, 0x00ffffff))
+ return true;
+
+ return false;