void SettingsManager::save() { QSettings settings(common::convertFromString<QString>(common::file_system::prepare_path(iniPath)), QSettings::IniFormat); DCHECK(settings.status() == QSettings::NoError); settings.setValue(STYLE, curStyle_); settings.setValue(FONT, curFontName_); settings.setValue(LANGUAGE, curLanguage_); settings.setValue(VIEW, views_); QList<QVariant> clusters; for(ClusterSettingsContainerType::const_iterator it = clusters_.begin(); it != clusters_.end(); ++it){ IClusterSettingsBaseSPtr conn = *it; if(conn){ std::string raw = conn->toString(); std::string enc = common::utils::base64::encode64(raw); QString qdata = common::convertFromString<QString>(enc); clusters.push_back(qdata); } } settings.setValue(CLUSTERS, clusters); QList<QVariant> connections; for(ConnectionSettingsContainerType::const_iterator it = connections_.begin(); it != connections_.end(); ++it){ IConnectionSettingsBaseSPtr conn = *it; if(conn){ std::string raw = conn->toString(); std::string enc = common::utils::base64::encode64(raw); QString qdata = common::convertFromString<QString>(enc); connections.push_back(qdata); } } settings.setValue(CONNECTIONS, connections); QStringList rconnections; for(QStringList::const_iterator it = recentConnections_.begin(); it != recentConnections_.end(); ++it){ QString conn = *it; if(!conn.isEmpty()){ std::string raw = common::convertToString(conn); std::string enc = common::utils::base64::encode64(raw); QString qdata = common::convertFromString<QString>(enc); rconnections.push_back(qdata); } } settings.setValue(RCONNECTIONS, rconnections); settings.setValue(SYNCTABS, syncTabs_); settings.setValue(LOGGINGDIR, loggingDir_); settings.setValue(CHECKUPDATES, autoCheckUpdate_); settings.setValue(AUTOCOMPLETION, autoCompletion_); settings.setValue(AUTOOPENCONSOLE, autoOpenConsole_); settings.setValue(FASTVIEWKEYS, fastViewKeys_); }
std::string IClusterSettingsBase::toString() const { DCHECK(type_ != DBUNKNOWN); std::stringstream str; str << IConnectionSettings::toString() << ','; for(int i = 0; i < clusters_nodes_.size(); ++i){ IConnectionSettingsBaseSPtr serv = clusters_nodes_[i]; if(serv){ str << magicNumber << serv->toString(); } } std::string res = str.str(); return res; }