Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Network
KDE Connect
Commits
4ecf463c
Commit
4ecf463c
authored
Sep 28, 2022
by
Kareem Abduljaleel
Committed by
Simon Redman
Sep 28, 2022
Browse files
[plasmoid] Add Photo to Plasmoid menu
Adds a menu entry to ask the remote device to take a photo to the Plasmoid menu
parent
1f5fd069
Pipeline
#237996
passed with stage
in 2 minutes and 43 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
declarativeplugin/kdeconnectdeclarativeplugin.cpp
View file @
4ecf463c
...
...
@@ -79,6 +79,7 @@ void KdeConnectDeclarativePlugin::registerTypes(const char *uri)
"RemoteSystemVolumeInterface"
,
QStringLiteral
(
"You're not supposed to instantiate interfaces"
));
qmlRegisterUncreatableType
<
ShareDbusInterface
>
(
uri
,
1
,
0
,
"ShareDbusInterface"
,
QStringLiteral
(
"You're not supposed to instantiate interfaces"
));
qmlRegisterUncreatableType
<
PhotoDbusInterface
>
(
uri
,
1
,
0
,
"PhotoDbusInterface"
,
QStringLiteral
(
"You're not supposed to instantiate interfaces"
));
qmlRegisterUncreatableType
<
BigscreenDbusInterface
>
(
uri
,
1
,
0
,
"BigscreenDbusInterface"
,
QStringLiteral
(
"You're not supposed to instantiate interfaces"
));
qmlRegisterSingletonType
<
DaemonDbusInterface
>
(
uri
,
1
,
0
,
"DaemonDbusInterface"
,
[](
QQmlEngine
*
,
QJSEngine
*
)
->
QObject
*
{
return
new
DaemonDbusInterface
;
...
...
@@ -116,6 +117,7 @@ void KdeConnectDeclarativePlugin::registerTypes(const char *uri)
registerFactory
<
SmsDbusInterface
>
(
uri
,
"SmsDbusInterfaceFactory"
);
registerFactory
<
RemoteCommandsDbusInterface
>
(
uri
,
"RemoteCommandsDbusInterfaceFactory"
);
registerFactory
<
ShareDbusInterface
>
(
uri
,
"ShareDbusInterfaceFactory"
);
registerFactory
<
PhotoDbusInterface
>
(
uri
,
"PhotoDbusInterfaceFactory"
);
registerFactory
<
RemoteSystemVolumeDbusInterface
>
(
uri
,
"RemoteSystemVolumeDbusInterfaceFactory"
);
registerFactory
<
BigscreenDbusInterface
>
(
uri
,
"BigscreenDbusInterfaceFactory"
);
registerFactory
<
VirtualmonitorDbusInterface
>
(
uri
,
"VirtualmonitorDbusInterfaceFactory"
);
...
...
interfaces/CMakeLists.txt
View file @
4ecf463c
...
...
@@ -57,6 +57,7 @@ geninterface(${PROJECT_SOURCE_DIR}/plugins/share/shareplugin.h shareinterface)
geninterface
(
${
PROJECT_SOURCE_DIR
}
/plugins/remotesystemvolume/remotesystemvolumeplugin.h remotesystemvolumeinterface
)
geninterface
(
${
PROJECT_SOURCE_DIR
}
/plugins/bigscreen/bigscreenplugin.h bigscreeninterface
)
geninterface
(
${
PROJECT_SOURCE_DIR
}
/plugins/virtualmonitor/virtualmonitorplugin.h virtualmonitorinterface
)
geninterface
(
${
PROJECT_SOURCE_DIR
}
/plugins/photo/photoplugin.h photointerface
)
add_library
(
kdeconnectinterfaces
${
libkdeconnect_SRC
}
)
set_target_properties
(
kdeconnectinterfaces PROPERTIES
...
...
interfaces/dbusinterfaces.cpp
View file @
4ecf463c
...
...
@@ -227,11 +227,15 @@ ShareDbusInterface::ShareDbusInterface(const QString &deviceId, QObject *parent)
ShareDbusInterface
::~
ShareDbusInterface
()
=
default
;
RemoteSystemVolumeDbusInterface
::
RemoteSystemVolumeDbusInterface
(
const
QString
&
deviceId
,
QObject
*
parent
)
:
OrgKdeKdeconnectDeviceRemotesystemvolumeInterface
(
DaemonDbusInterface
::
activatedService
(),
QStringLiteral
(
"/modules/kdeconnect/devices/"
)
+
deviceId
+
QStringLiteral
(
"/remotesystemvolume"
),
QDBusConnection
::
sessionBus
(),
parent
)
PhotoDbusInterface
::
PhotoDbusInterface
(
const
QString
&
deviceId
,
QObject
*
parent
)
:
OrgKdeKdeconnectDevicePhotoInterface
(
DaemonDbusInterface
::
activatedService
(),
QStringLiteral
(
"/modules/kdeconnect/devices/"
)
+
deviceId
+
QStringLiteral
(
"/photo"
),
QDBusConnection
::
sessionBus
(),
parent
)
{
}
PhotoDbusInterface
::~
PhotoDbusInterface
()
=
default
;
RemoteSystemVolumeDbusInterface
::
RemoteSystemVolumeDbusInterface
(
const
QString
&
deviceId
,
QObject
*
parent
)
:
OrgKdeKdeconnectDeviceRemotesystemvolumeInterface
(
DaemonDbusInterface
::
activatedService
(),
QStringLiteral
(
"/modules/kdeconnect/devices/"
)
+
deviceId
+
QStringLiteral
(
"/remotesystemvolume"
),
QDBusConnection
::
sessionBus
(),
parent
)
{
}
...
...
interfaces/dbusinterfaces.h
View file @
4ecf463c
...
...
@@ -28,6 +28,7 @@
#include
"shareinterface.h"
#include
"smsinterface.h"
#include
"virtualmonitorinterface.h"
#include
"photointerface.h"
/**
* Using these "proxy" classes just in case we need to rename the
...
...
@@ -229,7 +230,17 @@ public:
~
ShareDbusInterface
()
override
;
};
class
KDECONNECTINTERFACES_EXPORT
RemoteSystemVolumeDbusInterface
:
public
OrgKdeKdeconnectDeviceRemotesystemvolumeInterface
class
KDECONNECTINTERFACES_EXPORT
PhotoDbusInterface
:
public
OrgKdeKdeconnectDevicePhotoInterface
{
Q_OBJECT
public:
explicit
PhotoDbusInterface
(
const
QString
&
deviceId
,
QObject
*
parent
=
nullptr
);
~
PhotoDbusInterface
()
override
;
};
class
KDECONNECTINTERFACES_EXPORT
RemoteSystemVolumeDbusInterface
:
public
OrgKdeKdeconnectDeviceRemotesystemvolumeInterface
{
Q_OBJECT
public:
...
...
plasmoid/package/contents/ui/DeviceDelegate.qml
View file @
4ecf463c
...
...
@@ -170,6 +170,28 @@ PlasmaComponents.ListItem
onClicked
:
fileDialog
.
open
()
}
//Photo
PlasmaComponents.MenuItem
{
FileDialog
{
id
:
photoFileDialog
title
:
i18n
(
"
Save As
"
)
folder
:
shortcuts
.
pictures
selectMultiple
:
false
selectExisting
:
false
onAccepted
:
{
var
path
=
photoFileDialog
.
fileUrl
.
toString
();
photo
.
plugin
.
requestPhoto
(
path
);
}
}
id
:
takePhoto
icon
:
"
camera-photo-symbolic
"
visible
:
photo
.
available
text
:
i18n
(
"
Take a photo
"
)
onClicked
:
photoFileDialog
.
open
()
}
//Find my phone
PlasmaComponents.MenuItem
{
...
...
@@ -407,5 +429,11 @@ PlasmaComponents.ListItem
id
:
share
device
:
root
.
device
}
// Photo
Photo
{
id
:
photo
device
:
root
.
device
}
}
}
plasmoid/package/contents/ui/Photo.qml
0 → 100644
View file @
4ecf463c
/**
* SPDX-FileCopyrightText: 2022 Kareem Abduljaleel <karemjaleel34@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
import
QtQuick
2.1
import
org
.
kde
.
plasma
.
core
2.0
as
PlasmaCore
import
org
.
kde
.
plasma
.
components
2.0
as
PlasmaComponents
import
org
.
kde
.
kdeconnect
1.0
QtObject
{
id
:
root
property
alias
device
:
checker
.
device
readonly
property
alias
available
:
checker
.
available
readonly
property
PluginChecker
pluginChecker
:
PluginChecker
{
id
:
checker
pluginName
:
"
photo
"
}
property
variant
plugin
:
available
?
PhotoDbusInterfaceFactory
.
create
(
device
.
id
())
:
null
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment