diff --git a/client/ui/models/api/apiServicesModel.cpp b/client/ui/models/api/apiServicesModel.cpp index 1bd1f280e..d571346b7 100644 --- a/client/ui/models/api/apiServicesModel.cpp +++ b/client/ui/models/api/apiServicesModel.cpp @@ -117,6 +117,13 @@ QVariant ApiServicesModel::data(const QModelIndex &index, int role) const case EndDateRole: { return QDateTime::fromString(apiServiceData.subscription.endDate, Qt::ISODate).toLocalTime().toString("d MMM yyyy"); } + case OrderRole: { + if (serviceType == serviceType::amneziaPremium) { + return 0; + } else if (serviceType == serviceType::amneziaFree) { + return 1; + } + } } return QVariant(); @@ -216,6 +223,7 @@ QHash ApiServicesModel::roleNames() const roles[FeaturesRole] = "features"; roles[PriceRole] = "price"; roles[EndDateRole] = "endDate"; + roles[OrderRole] = "order"; return roles; } diff --git a/client/ui/models/api/apiServicesModel.h b/client/ui/models/api/apiServicesModel.h index 4bd870b32..cee405b39 100644 --- a/client/ui/models/api/apiServicesModel.h +++ b/client/ui/models/api/apiServicesModel.h @@ -20,7 +20,8 @@ public: RegionRole, FeaturesRole, PriceRole, - EndDateRole + EndDateRole, + OrderRole }; explicit ApiServicesModel(QObject *parent = nullptr); diff --git a/client/ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml b/client/ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml index 1f76c97d2..8668a1e2f 100644 --- a/client/ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml +++ b/client/ui/qml/Pages2/PageSetupWizardApiServiceInfo.qml @@ -66,6 +66,8 @@ PageType { imageSource: imagePath leftText: lText rightText: rText + + visible: isVisible } } diff --git a/client/ui/qml/Pages2/PageSetupWizardApiServicesList.qml b/client/ui/qml/Pages2/PageSetupWizardApiServicesList.qml index 51fdee363..61b5cde88 100644 --- a/client/ui/qml/Pages2/PageSetupWizardApiServicesList.qml +++ b/client/ui/qml/Pages2/PageSetupWizardApiServicesList.qml @@ -3,6 +3,8 @@ import QtQuick.Controls import QtQuick.Layouts import QtQuick.Dialogs +import SortFilterProxyModel 0.2 + import PageEnum 1.0 import Style 1.0 @@ -54,7 +56,15 @@ PageType { spacing: 0 - model: ApiServicesModel + model: SortFilterProxyModel { + id: proxyApiServicesModel + + sourceModel: ApiServicesModel + sorters: RoleSorter { + roleName: "order" + sortOrder: Qt.AscendingOrder + } + } delegate: ColumnLayout { @@ -78,7 +88,7 @@ PageType { onClicked: { if (isServiceAvailable) { - ApiServicesModel.setServiceIndex(index) + ApiServicesModel.setServiceIndex(proxyApiServicesModel.mapToSource(index)) PageController.goToPage(PageEnum.PageSetupWizardApiServiceInfo) } }