| 222 | } |
| 223 | |
| 224 | void Configuration::parse(void) |
| 225 | { |
| 226 | mFilterIds.clear(); |
| 227 | mFavoriteIds.clear(); |
| 228 | mAdditionalSaveFolders.clear(); |
| 229 | mAdditionalDeviceSaveFolders.clear(); |
| 230 | |
| 231 | // parse filters |
| 232 | std::vector<std::string> filter = mJson["filter"]; |
| 233 | for (auto& id : filter) { |
| 234 | mFilterIds.emplace(strtoull(id.c_str(), NULL, 16)); |
| 235 | } |
| 236 | |
| 237 | // parse favorites |
| 238 | std::vector<std::string> favorites = mJson["favorites"]; |
| 239 | for (auto& id : favorites) { |
| 240 | mFavoriteIds.emplace(strtoull(id.c_str(), NULL, 16)); |
| 241 | } |
| 242 | |
| 243 | // parse additional save folders (user + device kept as separate lists) |
| 244 | auto js = mJson["additional_save_folders"]; |
| 245 | for (auto it = js.begin(); it != js.end(); ++it) { |
| 246 | std::vector<std::string> folders = it.value()["folders"]; |
| 247 | std::vector<std::string> sfolders; |
| 248 | for (auto& folder : folders) { |
| 249 | sfolders.push_back(folder); |
| 250 | } |
| 251 | mAdditionalSaveFolders.emplace(strtoull(it.key().c_str(), NULL, 16), sfolders); |
| 252 | } |
| 253 | auto jsDevice = mJson["additional_device_save_folders"]; |
| 254 | for (auto it = jsDevice.begin(); it != jsDevice.end(); ++it) { |
| 255 | std::vector<std::string> folders = it.value()["folders"]; |
| 256 | std::vector<std::string> sfolders; |
| 257 | for (auto& folder : folders) { |
| 258 | sfolders.push_back(folder); |
| 259 | } |
| 260 | mAdditionalDeviceSaveFolders.emplace(strtoull(it.key().c_str(), NULL, 16), sfolders); |
| 261 | } |
| 262 | |
| 263 | // parse FTP flag |
| 264 | FTPEnabled = mJson["ftp-enabled"]; |
| 265 | // parse wireless-transfer flag |
| 266 | mTransferEnabled = mJson.value("transfer-enabled", false); |
| 267 | // parse confirm-restore flag |
| 268 | mConfirmRestore = mJson.value("confirm-restore", true); |
| 269 | // parse quick-backup flag |
| 270 | mQuickBackup = mJson.value("quick-backup", false); |
| 271 | // parse verify-restore flag |
| 272 | mVerifyRestore = mJson.value("verify-restore", false); |
| 273 | |
| 274 | mTheme = mJson.value("theme", "dark"); |
| 275 | mLanguage = mJson.value("language", "en"); |
| 276 | mLastTransferAddress = mJson.value("last-transfer-address", std::string()); |
| 277 | mSortMode = SortMode::fromConfigKey(mJson.value("sort-mode", std::string(SortMode::of(SORT_ALPHA).configKey))); |
| 278 | } |
| 279 | |
| 280 | bool Configuration::isFTPEnabled(void) |
| 281 | { |