diff --git a/discover/qml/ApplicationPage.qml b/discover/qml/ApplicationPage.qml --- a/discover/qml/ApplicationPage.qml +++ b/discover/qml/ApplicationPage.qml @@ -86,57 +86,21 @@ } } - header: QQC2.ToolBar { - anchors { - right: parent.right - left: parent.left + actions { + main: appbutton.action + right: Kirigami.Action { + visible: application.isInstalled && application.canExecute + text: application.executeLabel + icon.name: "media-playback-start" + onTriggered: application.invokeApplication() } + } - contentItem: RowLayout { - spacing: Kirigami.Units.smallSpacing - - ToolButton { - Layout.leftMargin: Kirigami.Units.smallSpacing - iconName: "draw-arrow-back" - tooltip: i18n("Back") - enabled: appInfo.sClose.enabled - onClicked: appInfo.sClose.activated() - } - Item { - Layout.fillWidth: true - } - Kirigami.Heading { - level: 3 - Layout.maximumWidth: parent.width/2 - text: appInfo.application.name - maximumLineCount: 1 - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - } - Item { - Layout.fillWidth: true - } - - Binding { - target: appInfo.actions - property: "main" - value: appbutton.action - } - - InstallApplicationButton { - id: appbutton - Layout.rightMargin: Kirigami.Units.smallSpacing - application: appInfo.application - visible: applicationWindow().wideScreen - } - - Button { - Layout.rightMargin: Kirigami.Units.smallSpacing - visible: application.isInstalled && application.canExecute - text: application.executeLabel - onClicked: application.invokeApplication() - } - } + InstallApplicationButton { + id: appbutton + Layout.rightMargin: Kirigami.Units.smallSpacing + application: appInfo.application + visible: false } leftPadding: Kirigami.Units.largeSpacing * (applicationWindow().wideScreen ? 2 : 1) @@ -146,7 +110,6 @@ spacing: 0 RowLayout { Kirigami.Icon { - Layout.topMargin: Kirigami.Units.smallSpacing * 2 Layout.preferredHeight: 80 Layout.preferredWidth: 80 source: appInfo.application.icon diff --git a/discover/qml/ApplicationsListPage.qml b/discover/qml/ApplicationsListPage.qml --- a/discover/qml/ApplicationsListPage.qml +++ b/discover/qml/ApplicationsListPage.qml @@ -43,7 +43,7 @@ property alias allBackends: appsModel.allBackends property alias count: apps.count property alias listHeader: apps.header - property Component listHeaderExtra + property alias listHeaderPositioning: apps.headerPositioning property bool compact: page.width < 500 || !applicationWindow().wideScreen property bool canNavigate: true @@ -69,13 +69,6 @@ } } - headerPositioning: ListView.OverlayHeader - header: CategoryDisplay { - id: header - category: appsModel.filteredCategory - search: appsModel.search - extra: page.listHeaderExtra - } model: ResourcesProxyModel { id: appsModel sortRole: ResourcesProxyModel.RatingCountRole diff --git a/discover/qml/BrowsingPage.qml b/discover/qml/BrowsingPage.qml --- a/discover/qml/BrowsingPage.qml +++ b/discover/qml/BrowsingPage.qml @@ -51,11 +51,6 @@ ListView { id: browsingView - headerPositioning: ListView.OverlayHeader - header: Kirigami.ItemViewHeader { - backgroundImage.source: "qrc:/banners/coffee.jpg" - title: page.title - } model: FeaturedModel {} spacing: Kirigami.Units.gridUnit currentIndex: -1 diff --git a/discover/qml/DiscoverWindow.qml b/discover/qml/DiscoverWindow.qml --- a/discover/qml/DiscoverWindow.qml +++ b/discover/qml/DiscoverWindow.qml @@ -4,7 +4,7 @@ import QtQuick.Controls 2.1 as QQC2 import org.kde.discover 2.0 import org.kde.discover.app 1.0 -import org.kde.kirigami 2.0 as Kirigami +import org.kde.kirigami 2.2 as Kirigami import "navigation.js" as Navigation Kirigami.ApplicationWindow @@ -28,7 +28,12 @@ objectName: "DiscoverMainWindow" title: leftPage ? leftPage.title : "" - header: null + header: Kirigami.ToolBarApplicationHeader {} +// header: (window.wideScreen ? desktopHeader : mobileHeader).createObject() +// +// Component { id: desktopHeader; Kirigami.ToolBarApplicationHeader {} } +// Component { id: mobileHeader; Kirigami.ApplicationHeader {} } + visible: true minimumWidth: 300 diff --git a/discover/qml/InstallApplicationButton.qml b/discover/qml/InstallApplicationButton.qml --- a/discover/qml/InstallApplicationButton.qml +++ b/discover/qml/InstallApplicationButton.qml @@ -25,7 +25,7 @@ name: application.isInstalled ? "trash-empty" : "cloud-download" color: application.isInstalled ? Kirigami.Theme.negativeTextColor : Kirigami.Theme.positiveTextColor } - visible: !listener.isActive && !applicationWindow().wideScreen + visible: !listener.isActive onTriggered: root.click() } diff --git a/discover/qml/InstalledPage.qml b/discover/qml/InstalledPage.qml --- a/discover/qml/InstalledPage.qml +++ b/discover/qml/InstalledPage.qml @@ -17,13 +17,4 @@ canNavigate: false listHeader: null - header: ToolBar { - Kirigami.Heading { - anchors { - right: parent.right - rightMargin: Kirigami.Units.largeSpacing - } - text: page.title - } - } } diff --git a/discover/qml/SearchPage.qml b/discover/qml/KirigamiActionBridge.qml copy from discover/qml/SearchPage.qml copy to discover/qml/KirigamiActionBridge.qml --- a/discover/qml/SearchPage.qml +++ b/discover/qml/KirigamiActionBridge.qml @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright © 2017 Aleix Pol Gonzalez * + * Copyright © 2015 Aleix Pol Gonzalez * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License as * @@ -18,35 +18,22 @@ * along with this program. If not, see . * ***************************************************************************/ -import QtQuick 2.5 +import QtQml 2.0 +import org.kde.kirigami 2.1 as Kirigami -ApplicationsListPage { - id: searchPage +Kirigami.Action +{ + property QtObject action: null - signal shown() - Timer { - interval: 0 - running: true - onTriggered: { - searchPage.shown() - } + function removeAmpersand(text) { + return text.replace("&", ""); } + text: action ? removeAmpersand(action.text) : "" + checked: action && action.checked + enabled: action && action.enabled + tooltip: action ? action.toolTip : "" + iconName: action ? app.iconName(action.icon) : "" + shortcut: action ? action.shortcut : undefined - listHeaderExtra: SearchField { - id: searchField - focus: true - Component.onCompleted: forceActiveFocus() - - Connections { - ignoreUnknownSignals: true - target: searchPage - onShown: { - searchField.forceActiveFocus() - } - } - - onCurrentSearchTextChanged: { - searchPage.search = currentSearchText - } - } + onTriggered: action.trigger() } diff --git a/discover/qml/SearchPage.qml b/discover/qml/SearchPage.qml --- a/discover/qml/SearchPage.qml +++ b/discover/qml/SearchPage.qml @@ -32,9 +32,12 @@ } } - listHeaderExtra: SearchField { + listHeaderPositioning: ListView.OverlayHeader + listHeader: SearchField { id: searchField + width: parent.width focus: true + z: 100 Component.onCompleted: forceActiveFocus() Connections { diff --git a/discover/qml/SourcesPage.qml b/discover/qml/SourcesPage.qml --- a/discover/qml/SourcesPage.qml +++ b/discover/qml/SourcesPage.qml @@ -21,38 +21,11 @@ color: Kirigami.Theme.backgroundColor } - header: QQC2.ToolBar { - Kirigami.Theme.inherit: false - Kirigami.Theme.colorSet: Kirigami.Theme.Window - anchors { - right: parent.right - left: parent.left - } - - contentItem: RowLayout { - anchors { - topMargin: Kirigami.Units.smallSpacing - bottomMargin: Kirigami.Units.smallSpacing - } - - Item { - Layout.fillWidth: true - } - - ToolButton { - action: refreshAction - } - - ToolButton { - text: i18n("Help...") - menu: Menu { - MenuItem { action: ActionBridge { action: app.action("help_contents") } } - MenuItem { action: ActionBridge { action: app.action("help_about_app") } } - MenuItem { action: ActionBridge { action: app.action("help_report_bug") } } - } - } - } - } + contextualActions: [ + KirigamiActionBridge { action: app.action("help_contents") }, + KirigamiActionBridge { action: app.action("help_about_app") }, + KirigamiActionBridge { action: app.action("help_report_bug") } + ] mainItem: ListView { id: sourcesView @@ -130,7 +103,7 @@ actions: backendItem.backend ? backendItem.backend.actions : undefined } delegate: MenuItem { - action: ActionBridge { action: modelData } + action: ActionBridge { action: modelData.action } } onObjectAdded: { settingsMenu.insertItem(index, object) diff --git a/discover/resources.qrc b/discover/resources.qrc --- a/discover/resources.qrc +++ b/discover/resources.qrc @@ -26,6 +26,7 @@ qml/LabelBackground.qml qml/PageHeader.qml qml/ActionBridge.qml + qml/KirigamiActionBridge.qml qml/DiscoverSystemPalette.qml qml/DiscoverPage.qml qml/DiscoverWindow.qml