refactoring: replaced part of the code to work with new config classes

This commit is contained in:
vladimir.kuznetsov 2025-06-26 09:57:29 +08:00
parent 2d22a74b22
commit 65f60ab922
22 changed files with 637 additions and 595 deletions

View file

@ -2,8 +2,7 @@
#include <QJsonArray>
ContainersModel::ContainersModel(QObject *parent)
: QAbstractListModel(parent)
ContainersModel::ContainersModel(QObject *parent) : QAbstractListModel(parent)
{
}
@ -37,7 +36,7 @@ QVariant ContainersModel::data(const QModelIndex &index, int role) const
case EasySetupHeaderRole: return ContainerProps::easySetupHeader(container);
case EasySetupDescriptionRole: return ContainerProps::easySetupDescription(container);
case EasySetupOrderRole: return ContainerProps::easySetupOrder(container);
case IsInstalledRole: return m_containers.contains(container);
case IsInstalledRole: return m_containerConfigs.contains(ContainerProps::containerToString(container));
case IsCurrentlyProcessedRole: return container == static_cast<DockerContainer>(m_processedContainerIndex);
case IsSupportedRole: return ContainerProps::isSupportedByCurrentPlatform(container);
case IsShareableRole: return ContainerProps::isShareable(container);
@ -53,14 +52,10 @@ QVariant ContainersModel::data(const int index, int role) const
return data(modelIndex, role);
}
void ContainersModel::updateModel(const QJsonArray &containers)
void ContainersModel::updateModel(const QMap<QString, ContainerConfig> &containerConfigs)
{
beginResetModel();
m_containers.clear();
for (const QJsonValue &val : containers) {
m_containers.insert(ContainerProps::containerFromString(val.toObject().value(config_key::container).toString()),
val.toObject());
}
m_containerConfigs = containerConfigs;
endResetModel();
}
@ -96,8 +91,8 @@ bool ContainersModel::isServiceContainer(const int containerIndex)
bool ContainersModel::hasInstalledServices()
{
for (const auto &container : m_containers.keys()) {
if (ContainerProps::containerService(container) == ServiceType::Other) {
for (const auto &containerName : m_containerConfigs.keys()) {
if (ContainerProps::containerService(ContainerProps::containerFromString(containerName)) == ServiceType::Other) {
return true;
}
}
@ -106,8 +101,8 @@ bool ContainersModel::hasInstalledServices()
bool ContainersModel::hasInstalledProtocols()
{
for (const auto &container : m_containers.keys()) {
if (ContainerProps::containerService(container) == ServiceType::Vpn) {
for (const auto &containerName : m_containerConfigs.keys()) {
if (ContainerProps::containerService(ContainerProps::containerFromString(containerName)) == ServiceType::Vpn) {
return true;
}
}