2013-08-21 17:28:11 +01:00
/**
* Copyright 2013 Albert Vaca < albertvaka @ gmail . com >
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation ; either version 2 of
* the License or ( at your option ) version 3 or any later version
* accepted by the membership of KDE e . V . ( or its successor approved
* by the membership of KDE e . V . ) , which shall act as a proxy
* defined in Section 14 of version 3 of the license .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# include "kdeconnectdeclarativeplugin.h"
2014-06-16 19:02:07 +01:00
# include <QQmlEngine>
# include <QQmlContext>
2014-01-28 17:22:09 +00:00
# include <QDBusPendingCall>
# include <QDBusPendingReply>
2014-06-16 19:02:07 +01:00
# include <QtQml>
2013-08-21 17:28:11 +01:00
2014-01-28 22:22:59 +00:00
# include "objectfactory.h"
# include "responsewaiter.h"
2014-09-09 16:54:16 +01:00
# include "processrunner.h"
2014-01-28 22:22:59 +00:00
2014-06-14 14:22:40 +01:00
# include "interfaces/devicesmodel.h"
# include "interfaces/notificationsmodel.h"
2013-08-21 17:28:11 +01:00
2014-02-05 20:37:55 +00:00
QObject * createDeviceDbusInterface ( QVariant deviceId )
{
return new DeviceDbusInterface ( deviceId . toString ( ) ) ;
}
QObject * createDeviceBatteryDbusInterface ( QVariant deviceId )
{
return new DeviceBatteryDbusInterface ( deviceId . toString ( ) ) ;
}
2014-01-27 20:39:24 +00:00
QObject * createSftpInterface ( QVariant deviceId )
{
2014-01-28 17:22:09 +00:00
return new SftpDbusInterface ( deviceId . toString ( ) ) ;
}
2014-01-28 22:22:59 +00:00
QObject * createDBusResponse ( )
2014-01-28 17:22:09 +00:00
{
2014-01-31 10:06:21 +00:00
return new DBusAsyncResponse ( ) ;
2014-01-27 20:39:24 +00:00
}
2013-08-21 17:28:11 +01:00
void KdeConnectDeclarativePlugin : : registerTypes ( const char * uri )
{
Q_UNUSED ( uri ) ;
2014-01-28 17:22:09 +00:00
2013-08-21 17:28:11 +01:00
qmlRegisterType < DevicesModel > ( " org.kde.kdeconnect " , 1 , 0 , " DevicesModel " ) ;
qmlRegisterType < NotificationsModel > ( " org.kde.kdeconnect " , 1 , 0 , " NotificationsModel " ) ;
2014-02-03 17:06:47 +00:00
qmlRegisterType < DBusAsyncResponse > ( " org.kde.kdeconnect " , 1 , 0 , " DBusAsyncResponse " ) ;
2014-09-09 16:54:16 +01:00
qmlRegisterType < ProcessRunner > ( uri , 1 , 0 , " ProcessRunner " ) ;
2015-04-15 12:00:23 +01:00
qmlRegisterUncreatableType < DeviceDbusInterface > ( " org.kde.kdeconnect " , 1 , 0 , " DeviceDbusInterface " , QStringLiteral ( " You're not supposed to instantiate interfacess " ) ) ;
2014-01-27 20:39:24 +00:00
}
2014-06-16 19:02:07 +01:00
void KdeConnectDeclarativePlugin : : initializeEngine ( QQmlEngine * engine , const char * uri )
2014-01-27 20:39:24 +00:00
{
2014-06-16 19:02:07 +01:00
QQmlExtensionPlugin : : initializeEngine ( engine , uri ) ;
2014-02-05 20:37:55 +00:00
engine - > rootContext ( ) - > setContextProperty ( " DeviceDbusInterfaceFactory "
, new ObjectFactory ( engine , createDeviceDbusInterface ) ) ;
engine - > rootContext ( ) - > setContextProperty ( " DeviceBatteryDbusInterfaceFactory "
, new ObjectFactory ( engine , createDeviceBatteryDbusInterface ) ) ;
2014-01-27 20:39:24 +00:00
engine - > rootContext ( ) - > setContextProperty ( " SftpDbusInterfaceFactory "
, new ObjectFactory ( engine , createSftpInterface ) ) ;
2014-01-28 17:22:09 +00:00
2014-01-28 22:22:59 +00:00
engine - > rootContext ( ) - > setContextProperty ( " DBusResponseFactory "
, new ObjectFactory ( engine , createDBusResponse ) ) ;
2014-01-31 10:06:21 +00:00
engine - > rootContext ( ) - > setContextProperty ( " DBusResponseWaiter "
, DBusResponseWaiter : : instance ( ) ) ;
2013-08-21 17:28:11 +01:00
}