2013-06-06 04:57:06 +01:00
/**
2020-08-17 10:48:10 +01:00
* SPDX - FileCopyrightText : 2013 Albert Vaca < albertvaka @ gmail . com >
2013-06-06 04:57:06 +01:00
*
2020-08-17 10:48:10 +01:00
* SPDX - License - Identifier : GPL - 2.0 - only OR GPL - 3.0 - only OR LicenseRef - KDE - Accepted - GPL
2013-06-06 04:57:06 +01:00
*/
2013-08-13 04:14:46 +01:00
# include "kdeconnectplugin.h"
2015-03-14 04:19:39 +00:00
2015-09-07 17:54:11 +01:00
# include "core_debug.h"
2013-06-06 04:57:06 +01:00
2014-06-14 15:34:00 +01:00
struct KdeConnectPluginPrivate
{
2017-09-03 20:39:44 +01:00
Device * m_device ;
QString m_pluginName ;
QSet < QString > m_outgoingCapabilties ;
KdeConnectPluginConfig * m_config ;
2018-08-03 00:53:21 +01:00
QString iconName ;
2014-06-14 15:34:00 +01:00
} ;
2013-08-13 04:07:32 +01:00
2013-08-13 04:14:46 +01:00
KdeConnectPlugin : : KdeConnectPlugin ( QObject * parent , const QVariantList & args )
2013-07-28 21:00:45 +01:00
: QObject ( parent )
2014-06-14 15:34:00 +01:00
, d ( new KdeConnectPluginPrivate )
2013-07-26 15:21:19 +01:00
{
2017-09-03 20:39:44 +01:00
d - > m_device = qvariant_cast < Device * > ( args . at ( 0 ) ) ;
d - > m_pluginName = args . at ( 1 ) . toString ( ) ;
d - > m_outgoingCapabilties = args . at ( 2 ) . toStringList ( ) . toSet ( ) ;
d - > m_config = nullptr ;
2018-08-03 00:53:21 +01:00
d - > iconName = args . at ( 3 ) . toString ( ) ;
2015-03-14 04:19:39 +00:00
}
KdeConnectPluginConfig * KdeConnectPlugin : : config ( ) const
{
//Create on demand, because not every plugin will use it
2017-09-03 20:39:44 +01:00
if ( ! d - > m_config ) {
d - > m_config = new KdeConnectPluginConfig ( d - > m_device - > id ( ) , d - > m_pluginName ) ;
2015-03-14 04:19:39 +00:00
}
2017-09-03 20:39:44 +01:00
return d - > m_config ;
2013-08-13 04:07:32 +01:00
}
2014-06-14 13:31:31 +01:00
KdeConnectPlugin : : ~ KdeConnectPlugin ( )
{
2017-09-03 20:39:44 +01:00
if ( d - > m_config ) {
delete d - > m_config ;
2015-03-22 05:21:34 +00:00
}
2014-06-14 13:31:31 +01:00
}
2014-06-14 19:35:00 +01:00
const Device * KdeConnectPlugin : : device ( )
2013-08-13 04:07:32 +01:00
{
2017-09-03 20:39:44 +01:00
return d - > m_device ;
2013-06-06 04:57:06 +01:00
}
2014-01-15 16:36:01 +00:00
Device const * KdeConnectPlugin : : device ( ) const
{
2017-09-03 20:39:44 +01:00
return d - > m_device ;
2014-01-15 16:36:01 +00:00
}
2014-06-14 19:35:00 +01:00
2018-03-04 19:48:51 +00:00
bool KdeConnectPlugin : : sendPacket ( NetworkPacket & np ) const
2014-06-14 19:35:00 +01:00
{
2017-09-03 20:39:44 +01:00
if ( ! d - > m_outgoingCapabilties . contains ( np . type ( ) ) ) {
2018-03-04 19:48:51 +00:00
qCWarning ( KDECONNECT_CORE ) < < metaObject ( ) - > className ( ) < < " tried to send an unsupported packet type " < < np . type ( ) < < " . Supported: " < < d - > m_outgoingCapabilties ;
2014-06-14 19:35:00 +01:00
return false ;
}
2015-09-07 17:54:11 +01:00
// qCWarning(KDECONNECT_CORE) << metaObject()->className() << "sends" << np.type() << ". Supported:" << d->mOutgoingTypes;
2018-03-04 19:48:51 +00:00
return d - > m_device - > sendPacket ( np ) ;
2014-06-14 19:35:00 +01:00
}
2016-12-30 15:38:12 +00:00
QString KdeConnectPlugin : : dbusPath ( ) const
{
return { } ;
}
2018-08-03 00:53:21 +01:00
QString KdeConnectPlugin : : iconName ( ) const
{
return d - > iconName ;
}