Warning, /network/kdeconnect-kde/declarativeplugin/qml/DBusProperty.qml is written in an unsupported language. File is not indexed.

0001 /**
0002  * SPDX-FileCopyrightText: 2016 Aleix Pol Gonzalez <aleixpol@kde.org>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 import QtQml 2.2
0008 import org.kde.kdeconnect 1.0
0009 
0010 QtObject {
0011     id: prop
0012     property QtObject object: null
0013     property string read
0014     property string change: read+"Changed"
0015 
0016     Component.onCompleted: get();
0017 
0018     onChangeChanged: {
0019         if (object) {
0020             var theSignal = object[change];
0021             if (theSignal) {
0022                 theSignal.connect(valueReceived);
0023             } else {
0024                 console.warn("couldn't find signal", change, "for", object)
0025             }
0026         }
0027     }
0028 
0029     function valueReceived(val) {
0030         if (!val) {
0031             get();
0032         } else {
0033             _value = val;
0034         }
0035     }
0036 
0037     property var defaultValue
0038     property var _value: defaultValue
0039     readonly property var value: _value
0040 
0041     readonly property var v: DBusAsyncResponse {
0042         id: response
0043         autoDelete: false
0044         onSuccess: result => {
0045             prop._value = result;
0046         }
0047         onError: message => {
0048             console.warn("failed call", object, read, write, change)
0049         }
0050     }
0051 
0052     function get() {
0053         response.setPendingCall(object[read]());
0054     }
0055 }