Thanks, that helps. I'll upgrade my OS, the latest version seems to ship Plasma 
5.18

Best regards,
Damir

________________________________
From: kde-devel <kde-devel-boun...@kde.org> on behalf of Jan Grulich 
<jgrul...@redhat.com>
Sent: Monday, August 31, 2020 11:04
To: kde-devel@kde.org <kde-devel@kde.org>
Subject: Re: Using xdg-desktop-portal-kde to take screenshots

Hi,

unfortunately the Screenshot portal doesn't seem to be present in Plasma 5.12, 
it was added into Plasma 5.13.

Regards,
Jan

ne 30. 8. 2020 v 10:38 odesílatel Damir Porobic 
<damir_poro...@live.com<mailto:damir_poro...@live.com>> napsal:
Hey Jan,

thanks for the Feedback, that is indeed a good tip, I'll have a look at it.
Another question, do I need to activate it or is it available only after a 
specific version?
I'm using Plasma 5.12.8 and it doesn't seem to be available.

Regards,
Damir

________________________________
From: kde-devel <kde-devel-boun...@kde.org<mailto:kde-devel-boun...@kde.org>> 
on behalf of Jan Grulich <jgrul...@redhat.com<mailto:jgrul...@redhat.com>>
Sent: Sunday, August 23, 2020 14:58
To: kde-devel@kde.org<mailto:kde-devel@kde.org> 
<kde-devel@kde.org<mailto:kde-devel@kde.org>>
Subject: Re: Using xdg-desktop-portal-kde to take screenshots

Hi,

you can check how we use it in xdg-portal-test-kde (a simple app to test 
various portals).

The code is here: 
https://invent.kde.org/libraries/xdg-portal-test-kde/-/blob/master/src/portaltest.cpp#L498

Regards,
Jan

út 18. 8. 2020 v 12:59 odesílatel Méven 
<meve...@gmail.com<mailto:meve...@gmail.com>> napsal:
Le mar. 18 août 2020 à 12:04, 
<kde-devel-requ...@kde.org<mailto:kde-devel-requ...@kde.org>> a écrit :
Date: Mon, 17 Aug 2020 12:44:35 +0000
From: Damir Porobic <damir_poro...@live.com<mailto:damir_poro...@live.com>>
To: "kde-devel@kde.org<mailto:kde-devel@kde.org>" 
<kde-devel@kde.org<mailto:kde-devel@kde.org>>
Subject: Re: Using xdg-desktop-portal-kde to take screenshots
Message-ID:
        
<am0pr09mb389099fac1a15b22f0e6d4afe5...@am0pr09mb3890.eurprd09.prod.outlook.com<mailto:am0pr09mb389099fac1a15b22f0e6d4afe5...@am0pr09mb3890.eurprd09.prod.outlook.com>>

Content-Type: text/plain; charset="iso-8859-1"

Hello,

has anyone experience with this portal?

Best regards,
Damir

________________________________
From: kde-devel <kde-devel-boun...@kde.org<mailto:kde-devel-boun...@kde.org>> 
on behalf of Damir Porobic 
<damir_poro...@live.com<mailto:damir_poro...@live.com>>
Sent: Thursday, August 13, 2020 16:16
To: kde-devel@kde.org<mailto:kde-devel@kde.org> 
<kde-devel@kde.org<mailto:kde-devel@kde.org>>
Subject: Using xdg-desktop-portal-kde to take screenshots

Hello,

I'm trying use the xdg-desktop-portal-kde 
(https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/blob/master/src/screenshot.cpp)
 portal in order to take screenshots under Wayland.

If I understand correctly, making a DBus Call like this should open a Dialog 
with a Screenshot that can be shared with my application.

*********************************
QDBusInterface interface(QStringLiteral("org.freedesktop.portal.Desktop"), 
QStringLiteral("/org/freedesktop/portal/Screenshot"), 
QStringLiteral("org.freedesktop.portal.Screenshot"));
QDBusPendingReply<QDBusObjectPath> reply;

reply = interface.call(QStringLiteral("Screenshot"), "", QVariantMap());

if (reply.isError()) {
    qCritical("Invalid reply from DBus: %s", 
qPrintable(reply.error().message()));
    emit canceled();
} else {
    qCritical("Dbus success: %s", qPrintable(reply.argumentAt<0>().path()));
}
*********************************

But the path to the image is not returned in the result from this call. How am 
I supposed to get the result?

Is there any example implementation that uses this portal? In Spectacle I have 
only seen the solution using org.kde.plasmashell, but not the portal solution.

Thanks in advance!

Best regards
Damir

Hi Damir,

You need to pass an instance of QVariantMap that will be filled up with a uri 
field according to the code:

auto result = QVariantMap();
reply = interface.call(QStringLiteral("Screenshot"), "", &result);
result.value("uri");

But you might be missing parameters also :

    uint Screenshot(const QDBusObjectPath &handle,
                    const QString &app_id,
                    const QString &parent_window,
                    const QVariantMap &options,
                    QVariantMap &results);

Also the file is saved in QStandardPaths::PicturesLocation with a timestamp.

Documentation is at 
https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.impl.portal.Screenshot

I hope this helps,

Kind regards,

--
Méven

Reply via email to