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 }