From 912ebc57cea3b46a63e588575b14bfb80db75973 Mon Sep 17 00:00:00 2001 From: restitux Date: Sat, 3 Sep 2022 03:24:02 -0400 Subject: [PATCH] Consolidate input logic into BrowserView --- layouts/components/BrowserView.qml | 36 +++-- .../components/BrowserView/ContentView.qml | 123 +++++++++--------- layouts/components/BrowserView/Sidebar.qml | 19 +-- layouts/ikinuki-default.qml | 8 +- 4 files changed, 85 insertions(+), 101 deletions(-) diff --git a/layouts/components/BrowserView.qml b/layouts/components/BrowserView.qml index 2a966dc..9e1926e 100644 --- a/layouts/components/BrowserView.qml +++ b/layouts/components/BrowserView.qml @@ -3,16 +3,20 @@ import QtQuick 2.12 import "./BrowserView" Row { - anchors.fill: parent property int selectedView: 0 + property int selectedProvider: 0 + property var db Sidebar { id: sidebar - maximized: parent.selectedView == 0 - providers: database.Providers + maximized: selectedView == 0 + selectedElement: selectedProvider + providers: db.Providers } ContentView { id: view - providers: database.Providers + viewSelected: selectedView == 1 + selectedElement: selectedProvider + providers: db.Providers } function mod(n, m) { return ((n % m) + m) % m; @@ -21,24 +25,18 @@ Row { if (selectedView == 0) { if (event.key == Qt.Key_Right) { selectedView = 1; - view.viewSelected = true - } - sidebar.Keys.pressed(event); - - if (event.key == Qt.Key_Down) { - view.currentIndex = mod(view.currentIndex + 1, view.providers.length) + //view.viewSelected = true + } else if (event.key == Qt.Key_Down) { + selectedProvider = mod(selectedProvider + 1, db.Providers.length) } else if (event.key == Qt.Key_Up) { - view.currentIndex = mod(view.currentIndex - 1, view.providers.length) + selectedProvider = mod(selectedProvider - 1, db.Providers.length) + } else { + return } - - if (event.key == Qt.Key_Return) { - console.log("Enter pressed") - mainTabView.currentIndex = 1 - parent.children[1].children[0].play("./test1.mkv") - } - } else { + event.accepted = true; + } + else if (selectedView == 1) { view.Keys.pressed(event); } - event.accepted = true; } } diff --git a/layouts/components/BrowserView/ContentView.qml b/layouts/components/BrowserView/ContentView.qml index e88397f..453e2dd 100644 --- a/layouts/components/BrowserView/ContentView.qml +++ b/layouts/components/BrowserView/ContentView.qml @@ -1,88 +1,84 @@ import QtQuick 2.12 +import QtQuick.Layouts 1.12 import QtQuick.Controls 1.4 import Ikinuki.Client 1.0 import "./ContentView" -TabView { +StackLayout { id: tabView property var providers - property bool viewSelected: false + property bool viewSelected + property int selectedElement state: viewSelected ? "selected" : "deselected" property int xSelect: 0 property int ySelect: 0 - //width: viewSelected ? parent.width * 0.95 : parent.width * 0.8 width: parent.width * viewSelected ? 0.95 : 0.8 height: parent.height - property var maxElements: providers.length - - tabsVisible: false Repeater { model: providers - Tab { - Rectangle { - color: "#22282A" - Row { - Item { - height: 10 - width: 40 - } - Column { - Row { - Item { - height: parent.height - width: 16 - } - Column { - spacing: 20 - Item { - height: 20 - width: parent.width - } - Text { - text: elementColumn.children[ySelect].provider.getShow(xSelect).title - font.pointSize: 30 - color: "#cdd7d9" - } - Text { - text: elementColumn.children[ySelect].provider.getShow(xSelect).year - font.pointSize: 15 - color: "#99afb4" - } - Text { - text: elementColumn.children[ySelect].provider.getShow(xSelect).description - font.pointSize: 13 - color: "#cdd7d9" - width: tabView.parent.width * 0.6 - wrapMode: Text.WordWrap - maximumLineCount: 4 - elide: Text.ElideRight - } - } - } + Rectangle { + color: "#22282A" + Row { + Item { + height: 10 + width: 40 + } + Column { + Row { Item { - height: 40 - width: parent.width + height: parent.height + width: 16 } Column { - id: elementColumn spacing: 20 - Element { - title: "In Progress" - provider: modelData - repeaterModel: modelData.inProgress - elemSelected: viewSelected && (0 == ySelect) - xIndex: xSelect + Item { + height: 20 + width: parent.width } - Element { - title: "Recently Added" - provider: modelData - repeaterModel: modelData.recentlyAdded - elemSelected: viewSelected && (1 == ySelect) - xIndex: xSelect + Text { + text: elementColumn.children[ySelect].provider.getShow(xSelect).title + font.pointSize: 30 + color: "#cdd7d9" } + Text { + text: elementColumn.children[ySelect].provider.getShow(xSelect).year + font.pointSize: 15 + color: "#99afb4" + } + Text { + text: elementColumn.children[ySelect].provider.getShow(xSelect).description + font.pointSize: 13 + color: "#cdd7d9" + width: tabView.parent.width * 0.6 + wrapMode: Text.WordWrap + maximumLineCount: 4 + elide: Text.ElideRight + } + } + } + Item { + height: 40 + width: parent.width + } + Column { + id: elementColumn + spacing: 20 + Element { + title: "In Progress" + provider: modelData + repeaterModel: modelData.inProgress + elemSelected: viewSelected && (0 == ySelect) + xIndex: xSelect + } + Element { + title: "Recently Added" + provider: modelData + repeaterModel: modelData.recentlyAdded + elemSelected: viewSelected && (1 == ySelect) + xIndex: xSelect } } } @@ -116,10 +112,8 @@ TabView { ] Keys.onPressed: (event)=> { - console.log(Qt.Key_Left); if (event.key == Qt.Key_Left) { if (xSelect == 0) { - viewSelected = false; parent.selectedView = 0; } else { xSelect--; @@ -131,5 +125,6 @@ TabView { } else if (event.key == Qt.Key_Up) { ySelect--; } + event.accepted = true; } } diff --git a/layouts/components/BrowserView/Sidebar.qml b/layouts/components/BrowserView/Sidebar.qml index aefa1e8..822b74c 100644 --- a/layouts/components/BrowserView/Sidebar.qml +++ b/layouts/components/BrowserView/Sidebar.qml @@ -7,14 +7,12 @@ import "./Sidebar" Rectangle { id: rect property var providers - property bool maximized: true - property int selectedElement: 0 - property var max_elements: providers.length + property bool maximized + property int selectedElement width: parent.width * 0.2 height: parent.height color: "#22282A" state: maximized ? "maximized" : "minimized" - //color: "#0a3d4a" Column { anchors.fill: parent Header {} @@ -53,17 +51,4 @@ Rectangle { } } ] - function mod(n, m) { - return ((n % m) + m) % m; - } - Keys.onPressed: (event)=> { - // Handle scrolling - if (event.key == Qt.Key_Down) { - selectedElement = mod(selectedElement + 1, max_elements); - } - else if (event.key == Qt.Key_Up) { - selectedElement = mod(selectedElement - 1, max_elements); - } - event.accepted = true; - } } diff --git a/layouts/ikinuki-default.qml b/layouts/ikinuki-default.qml index 118ede1..d72d1ec 100644 --- a/layouts/ikinuki-default.qml +++ b/layouts/ikinuki-default.qml @@ -24,10 +24,16 @@ ApplicationWindow { BrowserView { id: browserView focus: true + db: database } PlayerView { id: playerView - anchors.fill: parent + } + Keys.onPressed: (event)=> { + if (event.key == Qt.Key_Return) { + currentIndex = 1 + playerView.children[0].play("./test1.mkv") + } } } }