#include "registrymanager.h" #include #include RegistryManager::RegistryManager(QObject *parent) : QObject(parent) { } RegistryManager::~RegistryManager() { } bool RegistryManager::saveUserInfo(const QString &userId, const QString &username, const QString &password,const QString &identity) { QSettings settings(organizationName, applicationName); settings.beginGroup(userId); settings.setValue("Username", username); settings.setValue("Password", password); settings.setValue("Identity", identity); settings.endGroup(); if (settings.status() == QSettings::NoError) { return true; } else { return false; } } bool RegistryManager::readUserInfo(const QString &userId, QString &username, QString &password) { QSettings settings(organizationName, applicationName); settings.beginGroup(userId); if (settings.contains("Username") && settings.contains("Password")) { username = settings.value("Username").toString(); password = settings.value("Password").toString(); settings.endGroup(); return true; } else { settings.endGroup(); return false; } } QStringList RegistryManager::getAllUserIds() { QSettings settings(organizationName, applicationName); return settings.childGroups(); } QStringList RegistryManager::getAllUsernames() { QStringList usernames; QMap> allUserInfos = getAllUserInfos(); for (const auto& userInfo : allUserInfos) { usernames.append(userInfo.first); } return usernames; } QString RegistryManager::getPasswordByUsername(const QString &username) { QMap> allUserInfos = getAllUserInfos(); for (const auto& userInfo : allUserInfos) { if (userInfo.first == username) { return userInfo.second; } } return ""; // 如果未找到匹配的用户名,返回空字符串 } QMap> RegistryManager::getAllUserInfos() { QMap> allUserInfos; QStringList userIds = getAllUserIds(); for (const QString &userId : userIds) { QString username, password; if (readUserInfo(userId, username, password)) { allUserInfos.insert(userId, qMakePair(username, password)); } } return allUserInfos; }