Remove HInteractiveRectangle and HRateLimiter
This commit is contained in:
parent
b1e1ea30d2
commit
3a5d8bff9e
|
@ -1,37 +0,0 @@
|
||||||
import QtQuick 2.12
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: rectangle
|
|
||||||
|
|
||||||
property bool checkable: false // TODO
|
|
||||||
property bool checked: false
|
|
||||||
property bool hovered: false
|
|
||||||
readonly property alias pressed: tap.pressed
|
|
||||||
|
|
||||||
readonly property QtObject _ir: theme.controls.interactiveRectangle
|
|
||||||
color: _ir.background
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
visible: opacity > 0
|
|
||||||
Behavior on opacity { HNumberAnimation { factor: 0.5 } }
|
|
||||||
|
|
||||||
opacity: pressed ? _ir.pressedOpacity :
|
|
||||||
checked ? _ir.checkedOpacity :
|
|
||||||
hovered ? _ir.hoveredOpacity :
|
|
||||||
0
|
|
||||||
|
|
||||||
color: pressed ? _ir.pressedOverlay :
|
|
||||||
checked ? _ir.checkedOverlay :
|
|
||||||
hovered ? _ir.hoveredOverlay :
|
|
||||||
"transparent"
|
|
||||||
}
|
|
||||||
|
|
||||||
HoverHandler {
|
|
||||||
id: hover
|
|
||||||
onHoveredChanged: rectangle.hovered = hovered
|
|
||||||
}
|
|
||||||
|
|
||||||
TapHandler { id: tap }
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
import QtQuick 2.12
|
|
||||||
|
|
||||||
QtObject {
|
|
||||||
property int cooldown: 250
|
|
||||||
property bool extendOnRequestWhileCooldownActive: false
|
|
||||||
|
|
||||||
property bool firePending: false
|
|
||||||
|
|
||||||
readonly property Timer timer: Timer {
|
|
||||||
property bool extended: false
|
|
||||||
|
|
||||||
interval: cooldown
|
|
||||||
onTriggered: {
|
|
||||||
if (firePending) {
|
|
||||||
if (extendOnRequestWhileCooldownActive && ! extended) {
|
|
||||||
firePending = false
|
|
||||||
extended = true
|
|
||||||
running = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fired()
|
|
||||||
firePending = false
|
|
||||||
extended = false
|
|
||||||
} else if (extended) {
|
|
||||||
fired()
|
|
||||||
extended = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
signal requestFire()
|
|
||||||
signal fired()
|
|
||||||
|
|
||||||
onRequestFire: {
|
|
||||||
if (timer.running) {
|
|
||||||
firePending = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fired()
|
|
||||||
firePending = false
|
|
||||||
timer.running = true
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,7 +15,7 @@ HColumnLayout {
|
||||||
modelSources[["Member", chatPage.roomId]] || []
|
modelSources[["Member", chatPage.roomId]] || []
|
||||||
|
|
||||||
|
|
||||||
onOriginSourceChanged: filterLimiter.requestFire()
|
onOriginSourceChanged: filterLimiter.restart()
|
||||||
|
|
||||||
|
|
||||||
function filterSource() {
|
function filterSource() {
|
||||||
|
@ -26,17 +26,17 @@ HColumnLayout {
|
||||||
|
|
||||||
model: HListModel {
|
model: HListModel {
|
||||||
keyField: "user_id"
|
keyField: "user_id"
|
||||||
source: originSource
|
source: memberList.originSource
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: MemberDelegate {
|
delegate: MemberDelegate {
|
||||||
width: memberList.width
|
width: memberList.width
|
||||||
}
|
}
|
||||||
|
|
||||||
HRateLimiter {
|
Timer {
|
||||||
id: filterLimiter
|
id: filterLimiter
|
||||||
cooldown: 16
|
interval: 16
|
||||||
onFired: memberList.filterSource()
|
onTriggered: memberList.filterSource()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ HColumnLayout {
|
||||||
backgroundColor: theme.chat.roomSidePane.filterMembers.background
|
backgroundColor: theme.chat.roomSidePane.filterMembers.background
|
||||||
bordered: false
|
bordered: false
|
||||||
|
|
||||||
onTextChanged: filterLimiter.requestFire()
|
onTextChanged: filterLimiter.restart()
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|
Loading…
Reference in New Issue
Block a user