| 248 | } |
| 249 | |
| 250 | bool SessionManager::loadSession(const QString &session) |
| 251 | { |
| 252 | if (session == d->currentSession && !isDefaultVirgin()) |
| 253 | return true; |
| 254 | |
| 255 | bool isEmptySession = session.isEmpty(); |
| 256 | if (!isEmptySession && !sessionList().contains(session)) |
| 257 | return false; |
| 258 | |
| 259 | const auto &cfgFile = sessionFile(isEmptySession ? kDefaultSession : session); |
| 260 | if (QFile::exists(cfgFile) && isEmptySession) { |
| 261 | d->restoreValues(kDefaultSession); |
| 262 | Q_EMIT sessionLoaded(kDefaultSession); |
| 263 | return true; |
| 264 | } else if (isEmptySession) { |
| 265 | Q_EMIT sessionLoaded(kDefaultSession); |
| 266 | return true; |
| 267 | } |
| 268 | |
| 269 | d->isSessionLoading = true; |
| 270 | if (!isDefaultVirgin()) |
| 271 | saveSession(); |
| 272 | |
| 273 | d->virginSession = false; |
| 274 | d->values.clear(); |
| 275 | d->currentSession = session; |
| 276 | if (QFile::exists(cfgFile)) |
| 277 | d->restoreValues(session); |
| 278 | d->lastActiveTimes.insert(session, QDateTime::currentDateTime()); |
| 279 | Q_EMIT sessionLoaded(session); |
| 280 | |
| 281 | d->isSessionLoading = false; |
| 282 | return true; |
| 283 | } |
| 284 | |
| 285 | void SessionManager::saveSession() |
| 286 | { |
no test coverage detected