Add keyboard shortcuts to flick the events list

This commit is contained in:
miruka 2019-07-20 18:08:58 -04:00
parent d033ea84e8
commit 41eea44fff
5 changed files with 43 additions and 5 deletions

View File

@ -12,12 +12,14 @@
- When qml syntax highlighting supports string interpolation, use them - When qml syntax highlighting supports string interpolation, use them
- Fixes - Fixes
- Don't strip user spacing in html
- Past events loading (limit 100) freezes the GUI - need to move upsert func - Past events loading (limit 100) freezes the GUI - need to move upsert func
to a WorkerScript to a WorkerScript
- `MessageDelegate.qml:63: TypeError: 'reloadPreviousItem' not a function` - `MessageDelegate.qml:63: TypeError: 'reloadPreviousItem' not a function`
- Horrible performance for big rooms - Horrible performance for big rooms
- UI - UI
- Adapt shortcuts flicking speed to font size and DPI
- Show error box if uploading avatar fails - Show error box if uploading avatar fails
- EditAccount page: - EditAccount page:
- Device settings - Device settings

View File

@ -14,6 +14,7 @@ HRectangle {
HListView { HListView {
id: eventList id: eventList
clip: true clip: true
Component.onCompleted: shortcuts.flickTarget = eventList
function canCombine(item, itemAfter) { function canCombine(item, itemAfter) {
if (! item || ! itemAfter) { return false } if (! item || ! itemAfter) { return false }

37
src/qml/Shortcuts.qml Normal file
View File

@ -0,0 +1,37 @@
// Copyright 2019 miruka
// This file is part of harmonyqml, licensed under LGPLv3.
import QtQuick 2.12
Item {
property Item flickTarget: Item {}
function smartVerticalFlick(baseVelocity, fastMultiply=3) {
let vel = flickTarget.verticalVelocity
if (flickTarget.verticalLayoutDirection == ListView.BottomToTop) {
baseVelocity = -baseVelocity
vel = -vel
}
let fast = (baseVelocity < 0 && vel < baseVelocity / 2) ||
(baseVelocity > 0 && vel > baseVelocity / 2)
flickTarget.flick(0, baseVelocity * (fast ? fastMultiply : 1))
}
Shortcut {
sequences: ["Alt+Up", "Alt+K"]
onActivated: smartVerticalFlick(-335)
}
Shortcut {
sequences: ["Alt+Down", "Alt+J"]
onActivated: smartVerticalFlick(335)
}
Shortcut {
sequence: "Alt+Shift+D"
onActivated: if (window.debug) { py.call("APP.pdb") }
}
}

View File

@ -98,7 +98,5 @@ Item {
popExit: null popExit: null
pushExit: null pushExit: null
} }
Keys.onEscapePressed: if (window.debug) { py.call("APP.pdb") }
} }
} }

View File

@ -31,9 +31,9 @@ ApplicationWindow {
property var settings: ({}) property var settings: ({})
onSettingsChanged: py.saveSettings() onSettingsChanged: py.saveSettings()
Theme { id: theme } Theme { id: theme }
Shortcuts { id: shortcuts}
Python { id: py } Python { id: py }
// Models // Models
Accounts { id: accounts } Accounts { id: accounts }