update: separate XRaySubscriptionConfig from NativeServerConfig and fixed some bugs

This commit is contained in:
MrMirDan
2026-05-16 12:22:26 +03:00
parent 476f16d027
commit 73e0c9b92e
15 changed files with 230 additions and 107 deletions
@@ -379,6 +379,9 @@ QString ServersUiController::getDefaultServerDescription(const ServerConfig& ser
} else if (server.isApiV1()) {
const ApiV1ServerConfig* apiV1 = server.as<ApiV1ServerConfig>();
return apiV1 ? apiV1->description : QString();
} else if (server.isXRayConfig()) {
const XRaySubscriptionConfig *xray = server.as<XRaySubscriptionConfig>();
return xray ? xray->configName.at(xray->currentConfig).toString() : server.description();
} else {
ServerCredentials credentials = m_serversController->getServerCredentials(index);
if (!credentials.userName.isEmpty() && !credentials.secretData.isEmpty()) {
@@ -461,27 +464,27 @@ QString ServersUiController::adDescription() const
void ServersUiController::setCurrentConfigIndex(const int index)
{
m_serversController->setCurrentConfigIndex(index);
m_serversController->setCurrentConfigIndex(m_processedServerIndex, index);
}
int ServersUiController::getCurrentConfigIndex() const
{
return m_serversController->getCurrentConfigIndex();
return m_serversController->getCurrentConfigIndex(m_processedServerIndex);
}
QString ServersUiController::getConfigString(const int index) const
{
return m_serversController->getConfigString(index);
return m_serversController->getConfigString(m_processedServerIndex, index);
}
QString ServersUiController::getConfigName(const int index) const
{
return m_serversController->getConfigName(index);
return m_serversController->getConfigName(m_processedServerIndex, index);
}
QJsonArray ServersUiController::getConfigNames() const
{
return m_serversController->getConfigNames();
return m_serversController->getConfigNames(m_processedServerIndex);
}
void ServersUiController::updateContainersModel()
+5 -2
View File
@@ -98,7 +98,7 @@ QVariant ServersModel::data(const QModelIndex &index, int role) const
}
case ServerDescriptionRole: {
auto description = getServerDescription(server, index.row());
return configVersion ? description : description + server.hostName();
return configVersion ? description : server.isXRayConfig() ? description : description + server.hostName();
}
case HostNameRole: return server.hostName();
case CredentialsRole: return QVariant::fromValue(serverCredentials(index.row()));
@@ -213,7 +213,7 @@ QVariant ServersModel::data(const QModelIndex &index, int role) const
}
case IsXRayConfigSelectionAvailableRole: {
if (server.isXRayConfig()) {
return server.as<NativeServerConfig>()->configString.has_value();
return !server.as<XRaySubscriptionConfig>()->configString.isEmpty();
}
}
}
@@ -257,6 +257,9 @@ QString ServersModel::getServerDescription(const ServerConfig &server, const int
} else if (server.isApiV1()) {
const ApiV1ServerConfig *apiV1 = server.as<ApiV1ServerConfig>();
return apiV1 ? apiV1->description : server.description();
} else if (server.isXRayConfig()) {
const XRaySubscriptionConfig *xray = server.as<XRaySubscriptionConfig>();
return xray ? xray->configName.at(xray->currentConfig).toString() : server.description();
} else if (data(index, HasWriteAccessRole).toBool()) {
QMap<DockerContainer, ContainerConfig> containers = server.containers();
bool isDnsInstalled = containers.contains(DockerContainer::Dns);
+1 -1
View File
@@ -68,7 +68,7 @@ ListViewType {
text: name
descriptionText: isServerFromGatewayApi && (isSubscriptionExpired || isSubscriptionExpiringSoon)
? (isSubscriptionExpired ? qsTr("Subscription expired. Please renew") : qsTr("Subscription expiring soon"))
: (isXRayConfigSelectionAvailable ? ServersUiController.getConfigName(ServersUiController.getCurrentConfigIndex()) : serverDescription)
: serverDescription
descriptionColor: isServerFromGatewayApi && (isSubscriptionExpired || isSubscriptionExpiringSoon)
? (isSubscriptionExpired ? AmneziaStyle.color.vibrantRed : AmneziaStyle.color.goldenApricot)
: AmneziaStyle.color.mutedGray