diff --git a/src/MediaBrowser.qml b/src/MediaBrowser.qml --- a/src/MediaBrowser.qml +++ b/src/MediaBrowser.qml @@ -25,11 +25,17 @@ import org.kde.elisa 1.0 FocusScope { + id: contentDirectoryRoot + property MediaPlayList playListModel property var firstPage property alias stackView: listingView - id: contentDirectoryRoot + function goBack() { + if (listingView.depth > 1) { + listingView.pop() + } + } ColumnLayout { anchors.fill: parent @@ -66,12 +72,12 @@ } initialItem: firstPage - - // Implements back key navigation - Keys.onReleased: if (event.key === Qt.Key_Back && listingView.depth > 1) { - listingView.pop(); - event.accepted = true; - } } } + + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.BackButton + onClicked: goBack() + } } diff --git a/src/MediaServer.qml b/src/MediaServer.qml --- a/src/MediaServer.qml +++ b/src/MediaServer.qml @@ -49,6 +49,7 @@ property var aboutAppAction: elisa.action("help_about_app") property var configureShortcutsAction: elisa.action("options_configure_keybinding") property var configureAction: elisa.action("options_configure") + property var goBackAction: elisa.action("go_back") SystemPalette { id: myPalette @@ -77,6 +78,17 @@ property bool playControlItemMuted : false } + + Action { + text: goBackAction.text + shortcut: goBackAction.shortcut + iconName: elisa.iconName(goBackAction.icon) + onTriggered: { + localAlbums.goBack() + localArtists.goBack() + } + } + Action { id: qmlQuitAction text: quitApplication.text diff --git a/src/elisaapplication.h b/src/elisaapplication.h --- a/src/elisaapplication.h +++ b/src/elisaapplication.h @@ -61,6 +61,10 @@ void configureElisa(); +private Q_SLOTS: + + void goBack(); + private: std::unique_ptr d; diff --git a/src/elisaapplication.cpp b/src/elisaapplication.cpp --- a/src/elisaapplication.cpp +++ b/src/elisaapplication.cpp @@ -113,8 +113,13 @@ } if (KAuthorized::authorizeAction(QStringLiteral("options_configure_keybinding"))) { - auto keyBindignsAction = KStandardAction::keyBindings(this, &ElisaApplication::configureShortcuts, this); - d->mCollection.addAction(keyBindignsAction->objectName(), keyBindignsAction); + auto keyBindingsAction = KStandardAction::keyBindings(this, &ElisaApplication::configureShortcuts, this); + d->mCollection.addAction(keyBindingsAction->objectName(), keyBindingsAction); + } + + if (KAuthorized::authorizeAction(QStringLiteral("go_back"))) { + auto goBackAction = KStandardAction::back(this, &ElisaApplication::goBack, this); + d->mCollection.addAction(goBackAction->objectName(), goBackAction); } d->mCollection.readSettings(); @@ -168,6 +173,8 @@ #endif } +void ElisaApplication::goBack() {} + QAction * ElisaApplication::action(const QString& name) { #if defined KF5XmlGui_FOUND && KF5XmlGui_FOUND