Changeset View
Changeset View
Standalone View
Standalone View
discover/qml/ApplicationsListPage.qml
| Show All 19 Lines | |||||
| 20 | import QtQuick 2.5 | 20 | import QtQuick 2.5 | ||
| 21 | import QtQuick.Controls 1.1 | 21 | import QtQuick.Controls 1.1 | ||
| 22 | import QtQuick.Controls 2.1 as QQC2 | 22 | import QtQuick.Controls 2.1 as QQC2 | ||
| 23 | import QtQuick.Layouts 1.1 | 23 | import QtQuick.Layouts 1.1 | ||
| 24 | import QtQuick.Window 2.2 | 24 | import QtQuick.Window 2.2 | ||
| 25 | import "navigation.js" as Navigation | 25 | import "navigation.js" as Navigation | ||
| 26 | import org.kde.discover.app 1.0 | 26 | import org.kde.discover.app 1.0 | ||
| 27 | import org.kde.discover 2.0 | 27 | import org.kde.discover 2.0 | ||
| 28 | import org.kde.kirigami 2.0 as Kirigami | 28 | import org.kde.kirigami 2.2 as Kirigami | ||
| 29 | 29 | | |||
| 30 | DiscoverPage { | 30 | DiscoverPage { | ||
| 31 | id: page | 31 | id: page | ||
| 32 | readonly property var model: appsModel | 32 | readonly property var model: appsModel | ||
| 33 | property alias category: appsModel.filteredCategory | 33 | property alias category: appsModel.filteredCategory | ||
| 34 | property alias sortRole: appsModel.sortRole | 34 | property alias sortRole: appsModel.sortRole | ||
| 35 | property alias sortOrder: appsModel.sortOrder | 35 | property alias sortOrder: appsModel.sortOrder | ||
| 36 | property alias originFilter: appsModel.originFilter | 36 | property alias originFilter: appsModel.originFilter | ||
| 37 | property alias mimeTypeFilter: appsModel.mimeTypeFilter | 37 | property alias mimeTypeFilter: appsModel.mimeTypeFilter | ||
| 38 | property alias stateFilter: appsModel.stateFilter | 38 | property alias stateFilter: appsModel.stateFilter | ||
| 39 | property alias extending: appsModel.extending | 39 | property alias extending: appsModel.extending | ||
| 40 | property alias search: appsModel.search | 40 | property alias search: appsModel.search | ||
| 41 | property alias resourcesUrl: appsModel.resourcesUrl | 41 | property alias resourcesUrl: appsModel.resourcesUrl | ||
| 42 | property alias isBusy: appsModel.isBusy | 42 | property alias isBusy: appsModel.isBusy | ||
| 43 | property alias allBackends: appsModel.allBackends | 43 | property alias allBackends: appsModel.allBackends | ||
| 44 | property alias count: apps.count | 44 | property alias count: apps.count | ||
| 45 | property alias listHeader: apps.header | | |||
| 46 | property Component listHeaderExtra | | |||
| 47 | property bool compact: page.width < 500 || !applicationWindow().wideScreen | 45 | property bool compact: page.width < 500 || !applicationWindow().wideScreen | ||
| 48 | 46 | | |||
| 49 | property bool canNavigate: true | 47 | property bool canNavigate: true | ||
| 50 | readonly property alias subcategories: appsModel.subcategories | | |||
| 51 | title: category ? category.name : "" | 48 | title: category ? category.name : "" | ||
| 52 | 49 | | |||
| 53 | onSearchChanged: { | 50 | onSearchChanged: { | ||
| 54 | appsModel.sortOrder = Qt.AscendingOrder | 51 | appsModel.sortOrder = Qt.AscendingOrder | ||
| 55 | } | 52 | } | ||
| 56 | signal clearSearch() | 53 | signal clearSearch() | ||
| 57 | 54 | | |||
| 58 | supportsRefreshing: true | 55 | supportsRefreshing: true | ||
| 59 | onRefreshingChanged: if (refreshing) { | 56 | onRefreshingChanged: if (refreshing) { | ||
| 60 | appsModel.invalidateFilter() | 57 | appsModel.invalidateFilter() | ||
| 61 | refreshing = false | 58 | refreshing = false | ||
| 62 | } | 59 | } | ||
| 60 | | ||||
| 61 | header: QQC2.ToolBar { | ||||
| 62 | bottomPadding: Kirigami.Units.largeSpacing | ||||
| 63 | height: Kirigami.Units.gridUnit * 2.3 | ||||
| 64 | Kirigami.Theme.inherit: false | ||||
| 65 | Kirigami.Theme.colorSet: Kirigami.Theme.Window | ||||
| 66 | contentItem: RowLayout { | ||||
| 67 | spacing: Kirigami.Units.smallSpacing | ||||
| 68 | | ||||
| 69 | // Category name | ||||
| 70 | Kirigami.Heading { | ||||
| 71 | level: 1 | ||||
| 72 | text: title | ||||
| 73 | maximumLineCount: 1 | ||||
| 74 | elide: Text.ElideRight | ||||
| 75 | horizontalAlignment: Text.AlignHCenter | ||||
| 76 | Layout.fillWidth: true | ||||
| 77 | } | ||||
| 78 | } | ||||
| 79 | } | ||||
| 80 | | ||||
| 63 | ListView { | 81 | ListView { | ||
| 64 | id: apps | 82 | id: apps | ||
| 65 | section.delegate: QQC2.Label { | 83 | section.delegate: QQC2.Label { | ||
| 66 | text: section | 84 | text: section | ||
| 67 | anchors { | 85 | anchors { | ||
| 68 | right: parent.right | 86 | right: parent.right | ||
| 69 | } | 87 | } | ||
| 70 | } | 88 | } | ||
| 71 | 89 | | |||
| 72 | headerPositioning: ListView.OverlayHeader | | |||
| 73 | header: CategoryDisplay { | | |||
| 74 | id: header | | |||
| 75 | category: appsModel.filteredCategory | | |||
| 76 | search: appsModel.search | | |||
| 77 | extra: page.listHeaderExtra | | |||
| 78 | } | | |||
| 79 | model: ResourcesProxyModel { | 90 | model: ResourcesProxyModel { | ||
| 80 | id: appsModel | 91 | id: appsModel | ||
| 81 | sortRole: ResourcesProxyModel.RatingCountRole | 92 | sortRole: ResourcesProxyModel.RatingCountRole | ||
| 82 | sortOrder: Qt.DescendingOrder | 93 | sortOrder: Qt.DescendingOrder | ||
| 83 | onBusyChanged: if (isBusy) { | 94 | onBusyChanged: if (isBusy) { | ||
| 84 | apps.currentIndex = -1 | 95 | apps.currentIndex = -1 | ||
| 85 | } | 96 | } | ||
| 86 | } | 97 | } | ||
| ▲ Show 20 Lines • Show All 81 Lines • Show Last 20 Lines | |||||