+QVariant CoreSession::state() const {
+ QVariantMap res;
+ QList<QVariant> conn;
+ foreach(Server *server, servers.values()) {
+ if(server->isConnected()) {
+ QVariantMap m;
+ m["Network"] = server->networkName();
+ m["State"] = server->state();
+ conn << m;
+ }
+ }
+ res["ConnectedServers"] = conn;
+ return res;
+}
+
+void CoreSession::restoreState(const QVariant &previousState) {
+ // Session restore
+ QVariantMap state = previousState.toMap();
+ if(state.contains("ConnectedServers")) {
+ foreach(QVariant v, state["ConnectedServers"].toList()) {
+ QVariantMap m = v.toMap();
+ QString net = m["Network"].toString();
+ if(!net.isEmpty()) connectToNetwork(net, m["State"]);
+ }
+ }
+}
+
+