diff --git a/qmlUiKirigami/EditorView.qml b/qmlUiKirigami/EditorView.qml --- a/qmlUiKirigami/EditorView.qml +++ b/qmlUiKirigami/EditorView.qml @@ -19,7 +19,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 as Controls -import org.kde.kirigami 2.0 as Kirigami +import org.kde.kirigami 2.2 as Kirigami import org.kde.kquickcontrolsaddons 2.0 as KQA import org.kde.koko 0.1 as Koko @@ -39,12 +39,29 @@ contentItem: Flickable { width: rootEditorView.width height: rootEditorView.height + contentWidth: width + contentHeight: height KQA.QImageItem { id: editImage width: rootEditorView.width height: rootEditorView.height image: imageDoc.visualImage } } + Keys.onPressed: { + switch(event.key) { + case Qt.Key_Escape: + applicationWindow().pageStack.layers.pop() + listView.forceActiveFocus() + break; + default: + break; + } + } + + Component.onCompleted: { + rootEditorView.forceActiveFocus() + } + } diff --git a/qmlUiKirigami/ImageViewer.qml b/qmlUiKirigami/ImageViewer.qml --- a/qmlUiKirigami/ImageViewer.qml +++ b/qmlUiKirigami/ImageViewer.qml @@ -47,12 +47,6 @@ id: mimeDB } - Kirigami.ContextDrawer { - id: contextDrawer - title: i18n("Edit image") - handleVisible: true - } - actions { left: Kirigami.Action { id: backAction @@ -82,29 +76,41 @@ } } - //FIXME: HACK property bool wasDrawerOpen + states: [ + State { + name: "viewing" + PropertyChanges { + target: applicationWindow() + globalDrawer.enabled: false + controlsVisible: false + header.visible: false + } + StateChangeScript { + script: { + listView.forceActiveFocus() + wasDrawerOpen = globalDrawer.visible + globalDrawer.visible = false + } + } + } + ] + Component.onCompleted: { - applicationWindow().controlsVisible = false; - listView.forceActiveFocus(); - applicationWindow().header.visible = false; - applicationWindow().footer.visible = false; - wasDrawerOpen = applicationWindow().globalDrawer.visible; - applicationWindow().globalDrawer.visible = false; - applicationWindow().globalDrawer.enabled = false; + root.state = "viewing" } + function close() { applicationWindow().controlsVisible = true; applicationWindow().header.visible = true; if (applicationWindow().footer) { applicationWindow().footer.visible = true; } - applicationWindow().globalDrawer.visible = wasDrawerOpen; applicationWindow().globalDrawer.enabled = true; + applicationWindow().globalDrawer.visible = wasDrawerOpen; applicationWindow().visibility = Window.Windowed; applicationWindow().pageStack.layers.pop(); } - background: Rectangle { color: "black" @@ -249,7 +255,6 @@ MouseArea { anchors.fill: parent onClicked: { - contextDrawer.drawerOpen = false doubleClickTimer.restart(); } onDoubleClicked: { diff --git a/qmlUiKirigami/desktopMain.qml b/qmlUiKirigami/desktopMain.qml --- a/qmlUiKirigami/desktopMain.qml +++ b/qmlUiKirigami/desktopMain.qml @@ -24,7 +24,5 @@ import org.kde.kirigami 2.0 as Kirigami Main { - footer: Kirigami.ToolBarApplicationHeader { - backButtonEnabled: false - } + footer: Kirigami.ToolBarApplicationHeader {} } diff --git a/src/main.cpp b/src/main.cpp --- a/src/main.cpp +++ b/src/main.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include