Is the interface `org.freedesktop.portal.Screenshot` implemented for `org.freedesktop.portal.Desktop`

I can see org.freedesktop.impl.portal.Screenshot is implemented for org.freedesktop.impl.portal.desktop.kde but it is not for org.freedesktop.portal.Desktop.

This is what I get when I click Screenshot method of org.freedesktop.portal.Desktop.

Am I missing something? Or it is actually not Implemented. Thank you :slightly_smiling_face:.

Alright this seems like a QDbusViewer issue and not that KDE doesn’t implement the interfaces. I am able to call those interfaces.

Although I would like to know how I can browse the interfaces in QDbusViewer because it shows the type signatures which really helps. Please let me know how I can fix this. Thank you :slightly_smiling_face:.

Could be a misleading error.

E.g. the program can’t call the method for other reasons but interprets the failure as “does not exist”.

Even if you could call it from inside the viewer it would not help you much.
The return value is an object path of a Request object that you can need to interact with for the actual screenshot.

A simple program like the viewer has no way of storing that value and making calls on its object path.

I am not trying to call the interface methods from QDbusViewer but only inspecting them as it shows Qt types for the arguments.
Is there a reason why I am not able to inspect the methods for all the interfaces inside org.freedesktop.portal.Desktop org/freedesktop/portal/desktop?

Thank you.

Ah, I misunderstood you, sorry.

Probably a bug, qdbus can introspect it just fine.

Documentation for this portal is here

Screenshot (
  IN parent_window s,
  IN options a{sv},
  OUT handle o
)

Qt types are QString, QVariantMap and QDBusObjectPath respectively.

1 Like

Yeah I suppose it isn’t exactly hard to map Dbus types to Qt types. qdbus did help and so did D-Spy. I will mark this solved. Thank you.