Warning, /network/kdeconnect-kde/app/qml/MprisSlider.qml is written in an unsupported language. File is not indexed.
0001 /** 0002 * SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 import QtQuick 0008 import QtQuick.Controls 0009 0010 Loader { 0011 0012 property var plugin 0013 property var lastPosition: plugin.position 0014 property date lastPositionTime: new Date() 0015 property bool updatePositionSlider: true 0016 0017 sourceComponent: plugin.canSeek ? seekBar : progressBar 0018 0019 onLastPositionChanged: { 0020 if (item != null) { 0021 item.value = lastPosition 0022 lastPositionTime = new Date(); 0023 } 0024 } 0025 0026 Component { 0027 id: seekBar 0028 0029 Slider { 0030 from: 0 0031 to: plugin.length 0032 onPressedChanged: { 0033 if (pressed) { 0034 updatePositionSlider = false 0035 } else { 0036 updatePositionSlider = true 0037 plugin.position = value 0038 } 0039 } 0040 } 0041 } 0042 0043 Component { 0044 id: progressBar 0045 0046 ProgressBar { 0047 from: 0 0048 to: plugin.length 0049 } 0050 } 0051 0052 Timer { 0053 id: positionUpdateTimer 0054 interval: 1000 0055 repeat: true 0056 running: updatePositionSlider && plugin.isPlaying 0057 0058 onTriggered: item.value = lastPosition + (new Date().getTime() - lastPositionTime.getTime()) 0059 } 0060 }