| 108 | } |
| 109 | |
| 110 | void PingStorage::loadFromSettings() |
| 111 | { |
| 112 | curIterationNetworkOrSsid_.clear(); |
| 113 | pingDataDB_.clear(); |
| 114 | |
| 115 | QSettings settings; |
| 116 | if (!settings.contains(settingsKey_)) { |
| 117 | return; |
| 118 | } |
| 119 | |
| 120 | SimpleCrypt simpleCrypt(SIMPLE_CRYPT_KEY); |
| 121 | QString str = settings.value(settingsKey_).toString(); |
| 122 | QByteArray arr = simpleCrypt.decryptToByteArray(str); |
| 123 | |
| 124 | QDataStream ds(&arr, QIODevice::ReadOnly); |
| 125 | quint32 magic; |
| 126 | ds >> magic; |
| 127 | |
| 128 | if (magic == magic_) { |
| 129 | quint32 version; |
| 130 | ds >> version; |
| 131 | |
| 132 | if (version != versionForSerialization_) |
| 133 | return; |
| 134 | |
| 135 | ds >> curIterationTime_; |
| 136 | ds >> curIterationNetworkOrSsid_; |
| 137 | |
| 138 | qsizetype numDBElements; |
| 139 | ds >> numDBElements; |
| 140 | for (qsizetype i = 0; i < numDBElements; ++i) { |
| 141 | QString ip; |
| 142 | int timeMs; |
| 143 | qint64 iterationTime; |
| 144 | ds >> ip >> timeMs >> iterationTime; |
| 145 | |
| 146 | PingData pingData; |
| 147 | pingData.timeMs_ = timeMs; |
| 148 | pingData.iterationTime_ = iterationTime; |
| 149 | |
| 150 | pingDataDB_[ip] = pingData; |
| 151 | } |
| 152 | |
| 153 | if (ds.status() != QDataStream::Ok) { |
| 154 | pingDataDB_.clear(); |
| 155 | curIterationTime_ = 0; |
| 156 | curIterationNetworkOrSsid_.clear(); |
| 157 | } |
| 158 | } |
| 159 | } |
no test coverage detected