Add role for allowed for installation containers

This commit is contained in:
aiamnezia
2025-07-13 20:11:45 +04:00
parent bd30191060
commit f6441b8b80
3 changed files with 20 additions and 6 deletions
+7 -1
View File
@@ -37,6 +37,7 @@ QVariant ContainersModel::data(const QModelIndex &index, int role) const
case EasySetupHeaderRole: return ContainerProps::easySetupHeader(container); case EasySetupHeaderRole: return ContainerProps::easySetupHeader(container);
case EasySetupDescriptionRole: return ContainerProps::easySetupDescription(container); case EasySetupDescriptionRole: return ContainerProps::easySetupDescription(container);
case EasySetupOrderRole: return ContainerProps::easySetupOrder(container); case EasySetupOrderRole: return ContainerProps::easySetupOrder(container);
case IsInstallationAllowedRole: return ContainersModel::isInstallationAllowed(container);
case IsInstalledRole: return m_containers.contains(container); case IsInstalledRole: return m_containers.contains(container);
case IsCurrentlyProcessedRole: return container == static_cast<DockerContainer>(m_processedContainerIndex); case IsCurrentlyProcessedRole: return container == static_cast<DockerContainer>(m_processedContainerIndex);
case IsSupportedRole: return ContainerProps::isSupportedByCurrentPlatform(container); case IsSupportedRole: return ContainerProps::isSupportedByCurrentPlatform(container);
@@ -114,6 +115,11 @@ bool ContainersModel::hasInstalledProtocols()
return false; return false;
} }
bool ContainersModel::isInstallationAllowed(DockerContainer container)
{
return container != DockerContainer::AwgLegacy;
}
QHash<int, QByteArray> ContainersModel::roleNames() const QHash<int, QByteArray> ContainersModel::roleNames() const
{ {
QHash<int, QByteArray> roles; QHash<int, QByteArray> roles;
@@ -133,7 +139,7 @@ QHash<int, QByteArray> ContainersModel::roleNames() const
roles[IsCurrentlyProcessedRole] = "isCurrentlyProcessed"; roles[IsCurrentlyProcessedRole] = "isCurrentlyProcessed";
roles[IsSupportedRole] = "isSupported"; roles[IsSupportedRole] = "isSupported";
roles[IsShareableRole] = "isShareable"; roles[IsShareableRole] = "isShareable";
roles[IsInstallationAllowedRole] = "isInstallationAllowed";
roles[InstallPageOrderRole] = "installPageOrder"; roles[InstallPageOrderRole] = "installPageOrder";
return roles; return roles;
} }
+3
View File
@@ -27,6 +27,7 @@ public:
EasySetupDescriptionRole, EasySetupDescriptionRole,
EasySetupOrderRole, EasySetupOrderRole,
IsInstallationAllowedRole,
IsInstalledRole, IsInstalledRole,
IsCurrentlyProcessedRole, IsCurrentlyProcessedRole,
IsDefaultRole, IsDefaultRole,
@@ -57,6 +58,8 @@ public slots:
bool hasInstalledServices(); bool hasInstalledServices();
bool hasInstalledProtocols(); bool hasInstalledProtocols();
static bool isInstallationAllowed(DockerContainer container);
protected: protected:
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;
@@ -31,14 +31,19 @@ Item {
value: true value: true
} }
ExpressionFilter { ValueFilter {
id: awgLegacyFilter id: installationAllowedFilter
// 2 - DockerContainer.AwgLegacy roleName: "isInstallationAllowed"
expression: model.dockerContainer !== 2 || model.isInstalled value: true
}
AnyOf {
id: showProtocolFilter
filters: [ installedFilter, installationAllowedFilter ]
} }
function getWriteAccessProtocolsListFilters() { function getWriteAccessProtocolsListFilters() {
return [vpnTypeFilter, awgLegacyFilter] return [ vpnTypeFilter, showProtocolFilter ]
} }
function getReadAccessProtocolsListFilters() { function getReadAccessProtocolsListFilters() {
return [vpnTypeFilter, installedFilter] return [vpnTypeFilter, installedFilter]