Warning, /system/plasma-packagekit/applet/contents/ui/StateSwitcher.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 Copyright © 2017 Harald Sitter <sitter@kde.org>
0003
0004 This program is free software; you can redistribute it and/or
0005 modify it under the terms of the GNU General Public License as
0006 published by the Free Software Foundation; either version 2 of
0007 the License or (at your option) version 3 or any later version
0008 accepted by the membership of KDE e.V. (or its successor approved
0009 by the membership of KDE e.V.), which shall act as a proxy
0010 defined in Section 14 of version 3 of the license.
0011
0012 This program is distributed in the hope that it will be useful,
0013 but WITHOUT ANY WARRANTY; without even the implied warranty of
0014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0015 GNU General Public License for more details.
0016
0017 You should have received a copy of the GNU General Public License
0018 along with this program. If not, see <http://www.gnu.org/licenses/>.
0019 */
0020
0021 import QtQuick 2.0
0022
0023 import org.kde.plasma.core 2.1 as PlasmaCore
0024 import org.kde.plasma.plasmoid 2.0
0025
0026 // As the plasmoid state is dependent on the running transaction count we can easily get into
0027 // situations where the state switches quickly when a client doesn't cause a steady stream of
0028 // transactions (e.g. numerous refreshes). To mitigate this we'll only switch to passivity after
0029 // a long while and to activity after a short while. Also, scheduling a change to either
0030 // aborts the change to the other.
0031 Item {
0032 Timer {
0033 // Wait 1 second before switching to active state.
0034 id: activeTimer
0035 interval: 1000
0036 repeat: false
0037 running: transactionModel.count >= 1
0038 onTriggered: {
0039 console.debug(plasmoid.status)
0040 plasmoid.status = PlasmaCore.Types.ActiveStatus
0041 console.debug(plasmoid.status)
0042 }
0043 onRunningChanged: running && passiveTimer.stop
0044 }
0045 Timer {
0046 // Wait 2.5 seconds before switching to passive state.
0047 id: passiveTimer
0048 interval: 2500
0049 repeat: false
0050 running: transactionModel.count < 1
0051 onTriggered: plasmoid.status = PlasmaCore.Types.PassiveStatus
0052 onRunningChanged: running && activeTimer.stop
0053 }
0054 }