/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file DriveWatcher.cpp * \author (last) Behrouz NematiPour * \date (last) 16-Oct-2020 * \author (original) Behrouz NematiPour * \date (original) 17-Jul-2020 * */ // Qt #include #include #include // Project #include "StorageGlobals.h" #include "FileHandler.h" #include "MSettings.h" #include "Logger.h" // namespace using namespace Storage; #include "Settings.h" bool Settings::isValid(const QString &vSettingFile) { if (! QFileInfo::exists(vSettingFile)) { LOG_DEBUG("Setting file " + vSettingFile + " does not exist."); return false; } return true; } /*! * \brief Settings::doRead - reads all the configuration files in the home folder * \details */ int Settings::read() { PRINT_THREAD_NAME QStringList fileFilter = QStringList() << QString("*.%1").arg(_settingsExt); QFileInfoList settingFiles = FileHandler::find (Storage::Settings_Path_Name, fileFilter); QStringList settingFolders = FileHandler::subFolders(Storage::Settings_Path_Name); for ( QString &settingFolder : settingFolders ) { QString folder = settingFolder.prepend(Storage::Settings_Path_Name); settingFiles += FileHandler::find(folder, fileFilter); } for (const auto &settingFile: settingFiles) { if (! isValid(settingFile.absoluteFilePath())) continue; QFile file(settingFile.absoluteFilePath()); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QString group = ""; while (!file.atEnd()) { QString line = file.readLine().replace('\n',""); if (line.contains("[")) { line.replace("[","").replace("]", ""); group = line.trimmed(); } else { if (group.isEmpty()) { continue; } else { if (line.contains('=')) { QStringList keyValue = line.split('='); QString key = keyValue[0].trimmed(); QString value = keyValue[1].trimmed(); QString location= settingFile.absolutePath().prepend("/") + "/"; qDebug() << group << key << location + value; _SettingModel.add(group, key, QVariant(value), location); } } } } } // QSettings settings(settingFile.absoluteFilePath(), QSettings::IniFormat); // for (const auto &group : settings.childGroups()) { // settings.beginGroup(group); // for (const auto &key: settings.allKeys()) { // qDebug() << group << key << settingFile.absolutePath().prepend("/") + "/" + settings.value(key).toString(); // _SettingModel.add(group, key, settings.value(key).toString(), settingFile.absolutePath().prepend("/") + "/"); // } // settings.endGroup(); // } } qDebug() << " ----- " << "DONE"; return 0; }