forked from Shinonome/dots-hyprland
fix binding loop in Anime.qml
This commit is contained in:
@@ -119,16 +119,17 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
property real pageKeyScrollAmount: booruResponseListView.height / 2
|
||||||
Keys.onPressed: (event) => {
|
Keys.onPressed: (event) => {
|
||||||
tagInputField.forceActiveFocus()
|
tagInputField.forceActiveFocus()
|
||||||
if (event.modifiers === Qt.NoModifier) {
|
if (event.modifiers === Qt.NoModifier) {
|
||||||
if (event.key === Qt.Key_PageUp) {
|
if (event.key === Qt.Key_PageUp) {
|
||||||
if (booruResponseListView.atYBeginning) return;
|
if (booruResponseListView.atYBeginning) return;
|
||||||
booruResponseListView.contentY = Math.max(0, booruResponseListView.contentY - booruResponseListView.height / 2)
|
booruResponseListView.contentY = Math.max(0, booruResponseListView.contentY - root.pageKeyScrollAmount)
|
||||||
event.accepted = true
|
event.accepted = true
|
||||||
} else if (event.key === Qt.Key_PageDown) {
|
} else if (event.key === Qt.Key_PageDown) {
|
||||||
if (booruResponseListView.atYEnd) return;
|
if (booruResponseListView.atYEnd) return;
|
||||||
booruResponseListView.contentY = Math.min(booruResponseListView.contentHeight - booruResponseListView.height / 2, booruResponseListView.contentY + booruResponseListView.height / 2)
|
booruResponseListView.contentY = Math.min(booruResponseListView.contentHeight, booruResponseListView.contentY + root.pageKeyScrollAmount)
|
||||||
event.accepted = true
|
event.accepted = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -171,17 +172,20 @@ Item {
|
|||||||
mouseScrollFactor: Config.options.interactions.scrolling.mouseScrollFactor * 1.4
|
mouseScrollFactor: Config.options.interactions.scrolling.mouseScrollFactor * 1.4
|
||||||
|
|
||||||
property int lastResponseLength: 0
|
property int lastResponseLength: 0
|
||||||
|
Connections {
|
||||||
model: ScriptModel {
|
target: root
|
||||||
values: {
|
function onResponsesChanged() {
|
||||||
if(root.responses.length > booruResponseListView.lastResponseLength) {
|
if (root.responses.length > booruResponseListView.lastResponseLength) {
|
||||||
if (booruResponseListView.lastResponseLength > 0 && root.responses[booruResponseListView.lastResponseLength].provider != "system")
|
if (booruResponseListView.lastResponseLength > 0 && root.responses[booruResponseListView.lastResponseLength].provider != "system")
|
||||||
booruResponseListView.contentY = booruResponseListView.contentY + root.scrollOnNewResponse
|
booruResponseListView.contentY = booruResponseListView.contentY + root.scrollOnNewResponse
|
||||||
booruResponseListView.lastResponseLength = root.responses.length
|
booruResponseListView.lastResponseLength = root.responses.length
|
||||||
}
|
}
|
||||||
return root.responses
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model: ScriptModel {
|
||||||
|
values: root.responses
|
||||||
|
}
|
||||||
delegate: BooruResponse {
|
delegate: BooruResponse {
|
||||||
responseData: modelData
|
responseData: modelData
|
||||||
tagInputField: root.inputField
|
tagInputField: root.inputField
|
||||||
|
|||||||
Reference in New Issue
Block a user