Get rid of scrollhelper

This commit is contained in:
Nicolas Werner 2023-06-02 01:36:01 +02:00
parent 54e2295c21
commit c25d0c6b2f
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
18 changed files with 2 additions and 186 deletions

View file

@ -39,12 +39,6 @@ Page {
parent: !collapsed && Settings.scrollbarsInRoomlist ? communitiesList : null
}
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
Platform.Menu {
id: communityContextMenu

View file

@ -97,11 +97,6 @@ Control {
// 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))
clip: true
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
Timer {
id: deadTimer

View file

@ -252,11 +252,6 @@ Item {
}
ScrollHelper {
flickable: parent
anchors.fill: parent
}
Shortcut {
sequence: StandardKey.MoveToPreviousPage
onActivated: {

View file

@ -63,11 +63,6 @@ Page {
parent: !collapsed && Settings.scrollbarsInRoomlist ? roomlist : null
}
ScrollHelper {
flickable: parent
anchors.fill: parent
}
Connections {
function onCurrentRoomChanged() {
if (Rooms.currentRoom)

View file

@ -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();
}
}
}

View file

@ -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
}
}
}

View file

@ -105,10 +105,6 @@ Item {
clip: true
anchors { fill: parent; margins: 2 }
ScrollHelper {
flickable: parent
anchors.fill: parent
}
model: visualModel

View file

@ -53,10 +53,6 @@ ApplicationWindow {
clip: true
ScrollHelper {
flickable: parent
anchors.fill: parent
}
model: editingModel
spacing: 4

View file

@ -53,10 +53,6 @@ ApplicationWindow {
clip: true
ScrollHelper {
flickable: parent
anchors.fill: parent
}
model: roomSettings.allowedRoomsModel
spacing: 4

View file

@ -49,11 +49,6 @@ ApplicationWindow {
model: imagePack
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
header: AvatarListTile {
title: imagePack.packname

View file

@ -55,11 +55,7 @@ ApplicationWindow {
model: packlist
clip: true
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
footer: ColumnLayout {
Button {
@ -217,11 +213,6 @@ ApplicationWindow {
currentIndex: -1 // prevent sorting from stealing focus
cacheBuffer: 500
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
// Individual emoji
delegate: AbstractButton {

View file

@ -84,11 +84,6 @@ ApplicationWindow {
clip: true
ScrollHelper {
flickable: parent
anchors.fill: parent
}
model: editingModel.spaces
spacing: 4
cacheBuffer: 50

View file

@ -34,11 +34,6 @@ ApplicationWindow {
anchors.fill: parent
model: publicRooms
ScrollHelper {
flickable: parent
anchors.fill: parent
}
delegate: Rectangle {
id: roomDirDelegate

View file

@ -106,11 +106,6 @@ ApplicationWindow {
boundsBehavior: Flickable.StopAtBounds
model: members
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
delegate: ItemDelegate {
id: del

View file

@ -29,10 +29,7 @@ ApplicationWindow {
sequence: StandardKey.Cancel
onActivated: roomSettingsDialog.close()
}
ScrollHelper {
flickable: flickable
anchors.fill: flickable
}
Flickable {
id: flickable
boundsBehavior: Flickable.StopAtBounds

View file

@ -46,12 +46,6 @@ ApplicationWindow {
anchors.margins: 10
footerPositioning: ListView.OverlayFooter
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
header: ColumnLayout {
id: contentL

View file

@ -137,12 +137,6 @@ Menu {
spacing: Nheko.paddingSmall
ScrollHelper {
flickable: parent
anchors.fill: parent
enabled: !Settings.mobileMode
}
// Individual emoji
delegate: Row {
required property var row;

View file

@ -116,7 +116,6 @@
<file>qml/PrivacyScreen.qml</file>
<file>qml/Reactions.qml</file>
<file>qml/ReplyPopup.qml</file>
<file>qml/ScrollHelper.qml</file>
<file>qml/StatusIndicator.qml</file>
<file>qml/TimelineRow.qml</file>
<file>qml/TopBar.qml</file>