mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 12:38:48 +03:00
Get rid of scrollhelper
This commit is contained in:
parent
54e2295c21
commit
c25d0c6b2f
18 changed files with 2 additions and 186 deletions
|
@ -39,12 +39,6 @@ Page {
|
||||||
parent: !collapsed && Settings.scrollbarsInRoomlist ? communitiesList : null
|
parent: !collapsed && Settings.scrollbarsInRoomlist ? communitiesList : null
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
Platform.Menu {
|
Platform.Menu {
|
||||||
id: communityContextMenu
|
id: communityContextMenu
|
||||||
|
|
||||||
|
|
|
@ -97,11 +97,6 @@ Control {
|
||||||
// that until we find something better. Put is all together and you have the formula below!
|
// that until we find something better. Put is all together and you have the formula below!
|
||||||
implicitHeight: Math.min(contentHeight, 6*rowSpacing + 7*(popup.avatarHeight + 2*rowMargin))
|
implicitHeight: Math.min(contentHeight, 6*rowSpacing + 7*(popup.avatarHeight + 2*rowMargin))
|
||||||
clip: true
|
clip: true
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
id: deadTimer
|
id: deadTimer
|
||||||
|
|
|
@ -252,11 +252,6 @@ Item {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
Shortcut {
|
Shortcut {
|
||||||
sequence: StandardKey.MoveToPreviousPage
|
sequence: StandardKey.MoveToPreviousPage
|
||||||
onActivated: {
|
onActivated: {
|
||||||
|
|
|
@ -63,11 +63,6 @@ Page {
|
||||||
parent: !collapsed && Settings.scrollbarsInRoomlist ? roomlist : null
|
parent: !collapsed && Settings.scrollbarsInRoomlist ? roomlist : null
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
function onCurrentRoomChanged() {
|
function onCurrentRoomChanged() {
|
||||||
if (Rooms.currentRoom)
|
if (Rooms.currentRoom)
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
// Copyright (C) 2016 Michael Bohlender, <michael.bohlender@kdemail.net>
|
|
||||||
// Copyright (C) 2017 Christian Mollekopf, <mollekopf@kolabsystems.com>
|
|
||||||
// SPDX-FileCopyrightText: Nheko Contributors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Shamelessly stolen from:
|
|
||||||
* https://cgit.kde.org/kube.git/tree/framework/qml/ScrollHelper.qml
|
|
||||||
*
|
|
||||||
* The MouseArea + interactive: false + maximumFlickVelocity are required
|
|
||||||
* to fix scrolling for desktop systems where we don't want flicking behaviour.
|
|
||||||
*
|
|
||||||
* See also:
|
|
||||||
* ScrollView.qml in qtquickcontrols
|
|
||||||
* qquickwheelarea.cpp in qtquickcontrols
|
|
||||||
*/
|
|
||||||
|
|
||||||
import QtQuick 2.9
|
|
||||||
import QtQuick.Controls 2.3
|
|
||||||
|
|
||||||
MouseArea {
|
|
||||||
// console.warn("Delta: ", wheel.pixelDelta.y);
|
|
||||||
// console.warn("Old position: ", flickable.contentY);
|
|
||||||
// console.warn("New position: ", newPos);
|
|
||||||
// breaks ListView's with headers...
|
|
||||||
//if (typeof (flickableItem.headerItem) !== "undefined" && flickableItem.headerItem)
|
|
||||||
// minYExtent += flickableItem.headerItem.height;
|
|
||||||
|
|
||||||
id: root
|
|
||||||
|
|
||||||
property Flickable flickable
|
|
||||||
property alias enabled: root.enabled
|
|
||||||
|
|
||||||
function calculateNewPosition(flickableItem, wheel) {
|
|
||||||
//Nothing to scroll
|
|
||||||
if (flickableItem.contentHeight < flickableItem.height)
|
|
||||||
return flickableItem.contentY;
|
|
||||||
|
|
||||||
//Ignore 0 events (happens at least with Christians trackpad)
|
|
||||||
if (wheel.pixelDelta.y == 0 && wheel.angleDelta.y == 0)
|
|
||||||
return flickableItem.contentY;
|
|
||||||
|
|
||||||
//pixelDelta seems to be the same as angleDelta/8
|
|
||||||
var pixelDelta = 0;
|
|
||||||
//The pixelDelta is a smaller number if both are provided, so pixelDelta can be 0 while angleDelta is still something. So we check the angleDelta
|
|
||||||
if (wheel.angleDelta.y) {
|
|
||||||
var wheelScrollLines = 3; //Default value of QApplication wheelScrollLines property
|
|
||||||
var pixelPerLine = 20; //Default value in Qt, originally comes from QTextEdit
|
|
||||||
var ticks = (wheel.angleDelta.y / 8) / 15; //Divide by 8 gives us pixels typically come in 15pixel steps.
|
|
||||||
pixelDelta = ticks * pixelPerLine * wheelScrollLines;
|
|
||||||
} else {
|
|
||||||
pixelDelta = wheel.pixelDelta.y;
|
|
||||||
}
|
|
||||||
pixelDelta = Math.round(pixelDelta);
|
|
||||||
if (!pixelDelta)
|
|
||||||
return flickableItem.contentY;
|
|
||||||
|
|
||||||
var minYExtent = flickableItem.originY + flickableItem.topMargin;
|
|
||||||
var maxYExtent = (flickableItem.contentHeight + flickableItem.bottomMargin + flickableItem.originY) - flickableItem.height;
|
|
||||||
//Avoid overscrolling
|
|
||||||
return Math.max(minYExtent, Math.min(maxYExtent, flickableItem.contentY - pixelDelta));
|
|
||||||
}
|
|
||||||
|
|
||||||
propagateComposedEvents: true
|
|
||||||
//Place the mouse area under the flickable
|
|
||||||
z: -1
|
|
||||||
onFlickableChanged: {
|
|
||||||
if (enabled) {
|
|
||||||
flickable.maximumFlickVelocity = 100000;
|
|
||||||
flickable.boundsBehavior = Flickable.StopAtBounds;
|
|
||||||
root.parent = flickable;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
acceptedButtons: Qt.NoButton
|
|
||||||
onWheel: {
|
|
||||||
var newPos = calculateNewPosition(flickable, wheel);
|
|
||||||
// Show the scrollbars
|
|
||||||
flickable.flick(0, 0);
|
|
||||||
flickable.contentY = newPos;
|
|
||||||
cancelFlickStateTimer.restart();
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: cancelFlickStateTimer
|
|
||||||
|
|
||||||
//How long the scrollbar will remain visible
|
|
||||||
interval: 500
|
|
||||||
// Hide the scrollbars
|
|
||||||
onTriggered: {
|
|
||||||
flickable.cancelFlick();
|
|
||||||
flickable.movementEnded();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -408,11 +408,6 @@ Pane {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,11 +438,6 @@ Pane {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -105,10 +105,6 @@ Item {
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
anchors { fill: parent; margins: 2 }
|
anchors { fill: parent; margins: 2 }
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
model: visualModel
|
model: visualModel
|
||||||
|
|
||||||
|
|
|
@ -53,10 +53,6 @@ ApplicationWindow {
|
||||||
|
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
model: editingModel
|
model: editingModel
|
||||||
spacing: 4
|
spacing: 4
|
||||||
|
|
|
@ -53,10 +53,6 @@ ApplicationWindow {
|
||||||
|
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
model: roomSettings.allowedRoomsModel
|
model: roomSettings.allowedRoomsModel
|
||||||
spacing: 4
|
spacing: 4
|
||||||
|
|
|
@ -49,11 +49,6 @@ ApplicationWindow {
|
||||||
|
|
||||||
model: imagePack
|
model: imagePack
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
header: AvatarListTile {
|
header: AvatarListTile {
|
||||||
title: imagePack.packname
|
title: imagePack.packname
|
||||||
|
|
|
@ -55,11 +55,7 @@ ApplicationWindow {
|
||||||
model: packlist
|
model: packlist
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
footer: ColumnLayout {
|
footer: ColumnLayout {
|
||||||
Button {
|
Button {
|
||||||
|
@ -217,11 +213,6 @@ ApplicationWindow {
|
||||||
currentIndex: -1 // prevent sorting from stealing focus
|
currentIndex: -1 // prevent sorting from stealing focus
|
||||||
cacheBuffer: 500
|
cacheBuffer: 500
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
// Individual emoji
|
// Individual emoji
|
||||||
delegate: AbstractButton {
|
delegate: AbstractButton {
|
||||||
|
|
|
@ -84,11 +84,6 @@ ApplicationWindow {
|
||||||
|
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
model: editingModel.spaces
|
model: editingModel.spaces
|
||||||
spacing: 4
|
spacing: 4
|
||||||
cacheBuffer: 50
|
cacheBuffer: 50
|
||||||
|
|
|
@ -34,11 +34,6 @@ ApplicationWindow {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
model: publicRooms
|
model: publicRooms
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
delegate: Rectangle {
|
delegate: Rectangle {
|
||||||
id: roomDirDelegate
|
id: roomDirDelegate
|
||||||
|
|
||||||
|
|
|
@ -106,11 +106,6 @@ ApplicationWindow {
|
||||||
boundsBehavior: Flickable.StopAtBounds
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
model: members
|
model: members
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
delegate: ItemDelegate {
|
delegate: ItemDelegate {
|
||||||
id: del
|
id: del
|
||||||
|
|
|
@ -29,10 +29,7 @@ ApplicationWindow {
|
||||||
sequence: StandardKey.Cancel
|
sequence: StandardKey.Cancel
|
||||||
onActivated: roomSettingsDialog.close()
|
onActivated: roomSettingsDialog.close()
|
||||||
}
|
}
|
||||||
ScrollHelper {
|
|
||||||
flickable: flickable
|
|
||||||
anchors.fill: flickable
|
|
||||||
}
|
|
||||||
Flickable {
|
Flickable {
|
||||||
id: flickable
|
id: flickable
|
||||||
boundsBehavior: Flickable.StopAtBounds
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
|
|
|
@ -46,12 +46,6 @@ ApplicationWindow {
|
||||||
anchors.margins: 10
|
anchors.margins: 10
|
||||||
footerPositioning: ListView.OverlayFooter
|
footerPositioning: ListView.OverlayFooter
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
header: ColumnLayout {
|
header: ColumnLayout {
|
||||||
id: contentL
|
id: contentL
|
||||||
|
|
||||||
|
|
|
@ -137,12 +137,6 @@ Menu {
|
||||||
|
|
||||||
spacing: Nheko.paddingSmall
|
spacing: Nheko.paddingSmall
|
||||||
|
|
||||||
ScrollHelper {
|
|
||||||
flickable: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
enabled: !Settings.mobileMode
|
|
||||||
}
|
|
||||||
|
|
||||||
// Individual emoji
|
// Individual emoji
|
||||||
delegate: Row {
|
delegate: Row {
|
||||||
required property var row;
|
required property var row;
|
||||||
|
|
|
@ -116,7 +116,6 @@
|
||||||
<file>qml/PrivacyScreen.qml</file>
|
<file>qml/PrivacyScreen.qml</file>
|
||||||
<file>qml/Reactions.qml</file>
|
<file>qml/Reactions.qml</file>
|
||||||
<file>qml/ReplyPopup.qml</file>
|
<file>qml/ReplyPopup.qml</file>
|
||||||
<file>qml/ScrollHelper.qml</file>
|
|
||||||
<file>qml/StatusIndicator.qml</file>
|
<file>qml/StatusIndicator.qml</file>
|
||||||
<file>qml/TimelineRow.qml</file>
|
<file>qml/TimelineRow.qml</file>
|
||||||
<file>qml/TopBar.qml</file>
|
<file>qml/TopBar.qml</file>
|
||||||
|
|
Loading…
Reference in a new issue