mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-21 18:50:47 +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
|
||||
}
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
enabled: !Settings.mobileMode
|
||||
}
|
||||
|
||||
Platform.Menu {
|
||||
id: communityContextMenu
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -252,11 +252,6 @@ Item {
|
|||
|
||||
}
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
Shortcut {
|
||||
sequence: StandardKey.MoveToPreviousPage
|
||||
onActivated: {
|
||||
|
|
|
@ -63,11 +63,6 @@ Page {
|
|||
parent: !collapsed && Settings.scrollbarsInRoomlist ? roomlist : null
|
||||
}
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
Connections {
|
||||
function onCurrentRoomChanged() {
|
||||
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
|
||||
|
||||
anchors { fill: parent; margins: 2 }
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
model: visualModel
|
||||
|
||||
|
|
|
@ -53,10 +53,6 @@ ApplicationWindow {
|
|||
|
||||
clip: true
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
model: editingModel
|
||||
spacing: 4
|
||||
|
|
|
@ -53,10 +53,6 @@ ApplicationWindow {
|
|||
|
||||
clip: true
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
model: roomSettings.allowedRoomsModel
|
||||
spacing: 4
|
||||
|
|
|
@ -49,11 +49,6 @@ ApplicationWindow {
|
|||
|
||||
model: imagePack
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
enabled: !Settings.mobileMode
|
||||
}
|
||||
|
||||
header: AvatarListTile {
|
||||
title: imagePack.packname
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -84,11 +84,6 @@ ApplicationWindow {
|
|||
|
||||
clip: true
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
model: editingModel.spaces
|
||||
spacing: 4
|
||||
cacheBuffer: 50
|
||||
|
|
|
@ -34,11 +34,6 @@ ApplicationWindow {
|
|||
anchors.fill: parent
|
||||
model: publicRooms
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
delegate: Rectangle {
|
||||
id: roomDirDelegate
|
||||
|
||||
|
|
|
@ -106,11 +106,6 @@ ApplicationWindow {
|
|||
boundsBehavior: Flickable.StopAtBounds
|
||||
model: members
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
enabled: !Settings.mobileMode
|
||||
}
|
||||
|
||||
delegate: ItemDelegate {
|
||||
id: del
|
||||
|
|
|
@ -29,10 +29,7 @@ ApplicationWindow {
|
|||
sequence: StandardKey.Cancel
|
||||
onActivated: roomSettingsDialog.close()
|
||||
}
|
||||
ScrollHelper {
|
||||
flickable: flickable
|
||||
anchors.fill: flickable
|
||||
}
|
||||
|
||||
Flickable {
|
||||
id: flickable
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
|
|
|
@ -46,12 +46,6 @@ ApplicationWindow {
|
|||
anchors.margins: 10
|
||||
footerPositioning: ListView.OverlayFooter
|
||||
|
||||
ScrollHelper {
|
||||
flickable: parent
|
||||
anchors.fill: parent
|
||||
enabled: !Settings.mobileMode
|
||||
}
|
||||
|
||||
header: ColumnLayout {
|
||||
id: contentL
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue