MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / OnSave

Method OnSave

Src/ParameterCompone/ParameterUser.cpp:123–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

121}
122
123int CParameterUser::OnSave(QSettings &set)
124{
125 set.beginGroup("User");
126 set.setValue("Name", GetUser());
127
128 set.beginGroup("Authentication");
129 QStringList type;
130 foreach(auto t, GetType()) {
131 type.push_back(QString::number((int)t));
132 }
133 set.setValue("Type", type);
134 set.setValue("Type/Used", (int)GetUsedType());
135
136 set.setValue("SavePassword", GetSavePassword());
137 if(GetSavePassword() && !GetPassword().isEmpty()) {
138#if HAVE_QTKEYCHAIN
139 auto para = GetPluginParameters();
140 if(para && para->GetUseSystemCredential()) {
141 QString key("Password");
142 auto net = qobject_cast<CParameterNet*>(parent());
143 if(net) {
144 key = ServiceName() + "/" + GetUser() + "@" + net->GetHost() + ":" + QString::number(net->GetPort()) + "/" + key;
145 }
146 auto pWriteJob = new QKeychain::WritePasswordJob(ServiceName());
147 connect(pWriteJob, &QKeychain::WritePasswordJob::finished, [this, pWriteJob, key]() {
148 if (pWriteJob->error()) {
149 qCritical(log) << "Fail: write key" << key << ";" << pWriteJob->errorString();
150 return;
151 }
152 qDebug(log) << "Write key" << key << "succeeded.";
153 });
154 pWriteJob->setKey(key);
155 pWriteJob->setTextData(GetPassword());
156 pWriteJob->start();
157 } else
158#endif
159 {
160 SavePassword("Password", GetPassword(), set, GetSavePassword());
161 }
162 }
163
164 set.beginGroup("PublicKey");
165 set.beginGroup("File");
166 set.setValue("UseSystemFile", GetUseSystemFile());
167 set.setValue("PublicKey", GetPublicKeyFile());
168 set.setValue("PrivateKey", GetPrivateKeyFile());
169 set.setValue("SavePassphrase", GetSavePassphrase());
170 if(GetSavePassphrase() && !GetPassphrase().isEmpty()) {
171#if HAVE_QTKEYCHAIN
172 auto para = GetPluginParameters();
173 if(para && para->GetUseSystemCredential()) {
174 QString key("Passphrase");
175 auto net = qobject_cast<CParameterNet*>(parent());
176 if(net) {
177 key = ServiceName() + "/" + GetUser() + "@" + net->GetHost() + ":" + QString::number(net->GetPort()) + "/" + key;
178 }
179 auto pWriteJob = new QKeychain::WritePasswordJob(ServiceName());
180 connect(pWriteJob, &QKeychain::WritePasswordJob::finished, [this, pWriteJob, key]() {

Callers

nothing calls this directly

Calls 7

GetHostMethod · 0.80
errorStringMethod · 0.80
startMethod · 0.80
ServiceNameFunction · 0.70
isEmptyMethod · 0.45
GetPortMethod · 0.45

Tested by

no test coverage detected