// gameOS theme // Copyright (C) 2018-2020 Seth Powell // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . import QtQuick 2.0 import SortFilterProxyModel 0.2 Item { id: root readonly property var games: gamesFiltered function currentGame(index) { return api.allGames.get(gamesFiltered.mapToSource(index)) } property int max: gamesFiltered.count property var randomIndices: []; onGamesChanged: { randomIndices = []; for (var i = 0; i < max; ++i) { var randomIndex = Math.floor(Math.random() * api.allGames.count); randomIndices[randomIndex.toString()] = true; } } SortFilterProxyModel { id: gamesFiltered sourceModel: api.allGames sorters: RoleSorter { roleName: "rating"; sortOrder: Qt.DescendingOrder; } filters: ExpressionFilter { expression: { return !!randomIndices[model.index.toString()]; } } } property var collection: { return { name: "Recommended Games", shortName: "recommended", games: gamesFiltered } } }