fix sorting of the world list

This commit is contained in:
Andrei Yankovich 2021-03-15 18:04:09 +03:00
parent e580340444
commit 0a004cd770
11 changed files with 104 additions and 38 deletions

View File

@ -45,6 +45,7 @@ Item {
start(-1);
}
function load () {
stateData.load();

View File

@ -21,6 +21,7 @@
#include <worldupdate.h>
#include "dataconverter.h"
#include "localuser.h"
#include "recordsproxymodel.h"
#define DEFAULT_USER_ID "DefaultUser"
#define DEFAULT_USER_NAME "User"
@ -44,6 +45,12 @@ BackEnd::BackEnd(QQmlApplicationEngine *engine):
_recordsTable = new RecordListModel(this);
_world = new RecordListModel(this);
_worldProxy = new RecordsProxyModel(this);
_worldProxy->setSourceModel(_world);
_worldProxy->setDynamicSortFilter(true);
_worldProxy->setSortRole(RecordListModel::RecordListModelRoles::Record);
_worldProxy->sort(0, Qt::SortOrder::DescendingOrder);
_imageProvider = new HanoiImageProvider(_client->getUsersCache());
_dataConverter = new DataConverter;
@ -169,7 +176,7 @@ QObject *BackEnd::selectedUser() {
return &_selectedUser;
}
void BackEnd::handleChangeName(const QString & name) {
void BackEnd::handleChangeName(const QString &) {
emit profileChanged();
}
@ -357,7 +364,7 @@ QObject* BackEnd::profileList() {
}
QObject *BackEnd::worldList() {
return _world;
return _worldProxy;
}
bool BackEnd::createProfile(const QString& userId, const QString &userName) {

View File

@ -32,6 +32,7 @@ class QQmlApplicationEngine;
class RecordListModel;
class HanoiImageProvider;
class DataConverter;
class RecordsProxyModel;
class BackEnd: public QObject
{
@ -211,6 +212,7 @@ private:
RecordListModel * _recordsTable = nullptr;
RecordListModel * _world = nullptr;
RecordsProxyModel * _worldProxy = nullptr;
LocalUser _profile;
LocalUser _bestUser;

View File

@ -366,37 +366,37 @@
<context>
<name>MainMenu</name>
<message>
<location filename="../menu/MainMenu.qml" line="52"/>
<location filename="../menu/MainMenu.qml" line="53"/>
<source>continue</source>
<translation>Continue</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="66"/>
<location filename="../menu/MainMenu.qml" line="67"/>
<source>start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="77"/>
<location filename="../menu/MainMenu.qml" line="78"/>
<source>HanoiTowers World</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="90"/>
<location filename="../menu/MainMenu.qml" line="91"/>
<source>About</source>
<translation>About</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="101"/>
<location filename="../menu/MainMenu.qml" line="102"/>
<source>Config</source>
<translation>Config</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="113"/>
<location filename="../menu/MainMenu.qml" line="114"/>
<source>Users</source>
<translation>Users</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="124"/>
<location filename="../menu/MainMenu.qml" line="125"/>
<source>exit</source>
<translation>Exit</translation>
</message>

View File

@ -401,37 +401,37 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="52"/>
<location filename="../menu/MainMenu.qml" line="53"/>
<source>continue</source>
<translation></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="66"/>
<location filename="../menu/MainMenu.qml" line="67"/>
<source>start</source>
<translation></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="77"/>
<location filename="../menu/MainMenu.qml" line="78"/>
<source>HanoiTowers World</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="90"/>
<location filename="../menu/MainMenu.qml" line="91"/>
<source>About</source>
<translation></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="101"/>
<location filename="../menu/MainMenu.qml" line="102"/>
<source>Config</source>
<translation></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="113"/>
<location filename="../menu/MainMenu.qml" line="114"/>
<source>Users</source>
<translation></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="124"/>
<location filename="../menu/MainMenu.qml" line="125"/>
<source>exit</source>
<translation></translation>
</message>

View File

@ -397,37 +397,37 @@
<translation type="vanished">Ханойские Башни</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="52"/>
<location filename="../menu/MainMenu.qml" line="53"/>
<source>continue</source>
<translation>Продолжить</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="66"/>
<location filename="../menu/MainMenu.qml" line="67"/>
<source>start</source>
<translation>Начать</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="77"/>
<location filename="../menu/MainMenu.qml" line="78"/>
<source>HanoiTowers World</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="90"/>
<location filename="../menu/MainMenu.qml" line="91"/>
<source>About</source>
<translation>Об авторах</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="101"/>
<location filename="../menu/MainMenu.qml" line="102"/>
<source>Config</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="113"/>
<location filename="../menu/MainMenu.qml" line="114"/>
<source>Users</source>
<translation>Пользователи</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="124"/>
<location filename="../menu/MainMenu.qml" line="125"/>
<source>exit</source>
<translation>Выход</translation>
</message>

View File

@ -398,37 +398,37 @@ Bu seviye için minimum adımlar: %2</translation>
<translation type="vanished">Hanoi Kuleleri</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="52"/>
<location filename="../menu/MainMenu.qml" line="53"/>
<source>continue</source>
<translation>devam et</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="66"/>
<location filename="../menu/MainMenu.qml" line="67"/>
<source>start</source>
<translation>başlamak</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="77"/>
<location filename="../menu/MainMenu.qml" line="78"/>
<source>HanoiTowers World</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="90"/>
<location filename="../menu/MainMenu.qml" line="91"/>
<source>About</source>
<translation>hakkında</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="101"/>
<location filename="../menu/MainMenu.qml" line="102"/>
<source>Config</source>
<translation>ayarlar</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="113"/>
<location filename="../menu/MainMenu.qml" line="114"/>
<source>Users</source>
<translation>Kullanıcılar</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="124"/>
<location filename="../menu/MainMenu.qml" line="125"/>
<source>exit</source>
<translation>çıkış</translation>
</message>

View File

@ -398,37 +398,37 @@
<translation type="vanished">Ханої вежі</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="52"/>
<location filename="../menu/MainMenu.qml" line="53"/>
<source>continue</source>
<translation>Продовжувати</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="66"/>
<location filename="../menu/MainMenu.qml" line="67"/>
<source>start</source>
<translation>Почати</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="77"/>
<location filename="../menu/MainMenu.qml" line="78"/>
<source>HanoiTowers World</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="90"/>
<location filename="../menu/MainMenu.qml" line="91"/>
<source>About</source>
<translation>Про автора</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="101"/>
<location filename="../menu/MainMenu.qml" line="102"/>
<source>Config</source>
<translation>Конфігурація</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="113"/>
<location filename="../menu/MainMenu.qml" line="114"/>
<source>Users</source>
<translation>Користувачі</translation>
</message>
<message>
<location filename="../menu/MainMenu.qml" line="124"/>
<location filename="../menu/MainMenu.qml" line="125"/>
<source>exit</source>
<translation>Вихід</translation>
</message>

View File

@ -9,20 +9,42 @@ Item {
id: gridLayout
rows: 2
columns: 1
columns: 3
anchors.fill: parent
Item {
Layout.fillWidth: true
Text {
text: "BEST IMG"
anchors.fill: parent
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
}
UserView {
userModel: (backEnd)? backEnd.bestUser: null
editable: false;
}
Item {
Layout.fillWidth: true
Text {
text: "BEST IMG"
anchors.fill: parent
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
}
UsersTable {
Layout.fillHeight: true
Layout.fillWidth: true
model: (backEnd)? backEnd.worldList: null
state: "World"
Layout.columnSpan: 3
onUserSelected: {
privateRoot.showUser(userId);

View File

@ -0,0 +1,14 @@
/*
* Copyright (C) 2018-2021 QuasarApp.
* Distributed under the lgplv3 software license, see the accompanying
* Everyone is permitted to copy and distribute verbatim copies
* of this license document, but changing it is not allowed.
*/
#include "recordsproxymodel.h"
RecordsProxyModel::RecordsProxyModel(QObject *parent):
QSortFilterProxyModel(parent) {
}

View File

@ -0,0 +1,20 @@
/*
* Copyright (C) 2018-2021 QuasarApp.
* Distributed under the lgplv3 software license, see the accompanying
* Everyone is permitted to copy and distribute verbatim copies
* of this license document, but changing it is not allowed.
*/
#ifndef RECORDSPROXYMODEL_H
#define RECORDSPROXYMODEL_H
#include <QSortFilterProxyModel>
class RecordsProxyModel : public QSortFilterProxyModel
{
public:
explicit RecordsProxyModel(QObject *parent = nullptr);
};
#endif // RECORDSPROXYMODEL_H