diff --git a/src/access.h b/src/access.h --- a/src/access.h +++ b/src/access.h @@ -21,19 +21,19 @@ #ifndef XDG_DESKTOP_PORTAL_KDE_ACCESS_H #define XDG_DESKTOP_PORTAL_KDE_ACCESS_H -#include +#include #include -class Access : public QObject +class AccessPortal : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.Access") public: - Access(QObject *parent = nullptr); - ~Access(); + AccessPortal(QObject *parent); + ~AccessPortal(); public Q_SLOTS: - uint accessDialog(const QDBusObjectPath &handle, + uint AccessDialog(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, diff --git a/src/access.cpp b/src/access.cpp --- a/src/access.cpp +++ b/src/access.cpp @@ -26,16 +26,16 @@ Q_LOGGING_CATEGORY(XdgDesktopPortalKdeAccess, "xdg-desktop-portal-kde-access") -Access::Access(QObject *parent) - : QObject(parent) +AccessPortal::AccessPortal(QObject *parent) + : QDBusAbstractAdaptor(parent) { } -Access::~Access() +AccessPortal::~AccessPortal() { } -uint Access::accessDialog(const QDBusObjectPath &handle, +uint AccessPortal::AccessDialog(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, @@ -53,7 +53,7 @@ qCDebug(XdgDesktopPortalKdeAccess) << " body: " << body; qCDebug(XdgDesktopPortalKdeAccess) << " options: " << options; - AccessDialog *accessDialog = new AccessDialog(); + auto accessDialog = new ::AccessDialog(); accessDialog->setBody(body); accessDialog->setTitle(title); accessDialog->setSubtitle(subtitle); diff --git a/src/appchooser.h b/src/appchooser.h --- a/src/appchooser.h +++ b/src/appchooser.h @@ -21,19 +21,19 @@ #ifndef XDG_DESKTOP_PORTAL_KDE_APPCHOOSER_H #define XDG_DESKTOP_PORTAL_KDE_APPCHOOSER_H -#include +#include #include -class AppChooser : public QObject +class AppChooserPortal : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.AppChooser") public: - AppChooser(QObject *parent = nullptr); - ~AppChooser(); + AppChooserPortal(QObject *parent); + ~AppChooserPortal(); public Q_SLOTS: - uint chooseApplication(const QDBusObjectPath &handle, + uint ChooseApplication(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QStringList &choices, diff --git a/src/appchooser.cpp b/src/appchooser.cpp --- a/src/appchooser.cpp +++ b/src/appchooser.cpp @@ -27,16 +27,16 @@ Q_LOGGING_CATEGORY(XdgDesktopPortalKdeAppChooser, "xdg-desktop-portal-kde-app-chooser") -AppChooser::AppChooser(QObject *parent) - : QObject(parent) +AppChooserPortal::AppChooserPortal(QObject *parent) + : QDBusAbstractAdaptor(parent) { } -AppChooser::~AppChooser() +AppChooserPortal::~AppChooserPortal() { } -uint AppChooser::chooseApplication(const QDBusObjectPath &handle, +uint AppChooserPortal::ChooseApplication(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QStringList &choices, diff --git a/src/desktopportal.h b/src/desktopportal.h --- a/src/desktopportal.h +++ b/src/desktopportal.h @@ -32,23 +32,21 @@ #include "notification.h" #include "print.h" -class DesktopPortal : public QDBusVirtualObject +class DesktopPortal : public QObject { Q_OBJECT public: explicit DesktopPortal(QObject *parent = nullptr); ~DesktopPortal(); - bool handleMessage(const QDBusMessage &message, const QDBusConnection &connection) Q_DECL_OVERRIDE; - QString introspect(const QString &path) const Q_DECL_OVERRIDE; private: - Access *m_access; - AppChooser *m_appChooser; - Email *m_email; - FileChooser *m_fileChooser; - Inhibit *m_inhibit; - Notification *m_notification; - Print *m_print; + AccessPortal *m_access; + AppChooserPortal *m_appChooser; + EmailPortal *m_email; + FileChooserPortal *m_fileChooser; + InhibitPortal *m_inhibit; + NotificationPortal *m_notification; + PrintPortal *m_print; }; #endif // XDG_DESKTOP_PORTAL_KDE_DESKTOP_PORTAL_H diff --git a/src/desktopportal.cpp b/src/desktopportal.cpp --- a/src/desktopportal.cpp +++ b/src/desktopportal.cpp @@ -29,310 +29,17 @@ Q_LOGGING_CATEGORY(XdgDesktopPortalKdeDesktopPortal, "xdg-desktop-portal-kde-desktop-portal") DesktopPortal::DesktopPortal(QObject *parent) - : QDBusVirtualObject(parent) - , m_access(new Access()) - , m_appChooser(new AppChooser()) - , m_email(new Email()) - , m_fileChooser(new FileChooser()) - , m_inhibit(new Inhibit()) - , m_notification(new Notification()) - , m_print(new Print()) + : QObject(parent) + , m_access(new AccessPortal(this)) + , m_appChooser(new AppChooserPortal(this)) + , m_email(new EmailPortal(this)) + , m_fileChooser(new FileChooserPortal(this)) + , m_inhibit(new InhibitPortal(this)) + , m_notification(new NotificationPortal(this)) + , m_print(new PrintPortal(this)) { } DesktopPortal::~DesktopPortal() { - delete m_access; - delete m_appChooser; - delete m_email; - delete m_fileChooser; - delete m_inhibit; - delete m_notification; - delete m_print; -} - -bool DesktopPortal::handleMessage(const QDBusMessage &message, const QDBusConnection &connection) -{ - /* Check to make sure we're getting properties on our interface */ - if (message.type() != QDBusMessage::MessageType::MethodCallMessage) { - return false; - } - - qCDebug(XdgDesktopPortalKdeDesktopPortal) << message.interface(); - qCDebug(XdgDesktopPortalKdeDesktopPortal) << message.member(); - qCDebug(XdgDesktopPortalKdeDesktopPortal) << message.path(); - - QList arguments; - if (message.interface() == QLatin1String("org.freedesktop.impl.portal.Access")) { - if (message.member() == QLatin1String("AccessDialog")) { - QVariantMap results; - QVariantMap options; - - QDBusArgument dbusArgument = message.arguments().at(6).value(); - dbusArgument >> options; - - uint response = m_access->accessDialog(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // parent_window - message.arguments().at(3).toString(), // title - message.arguments().at(4).toString(), // subtitle - message.arguments().at(5).toString(), // body - options, // options - results); - arguments << response; - arguments << results; - } - } else if (message.interface() == QLatin1String("org.freedesktop.impl.portal.AppChooser")) { - if (message.member() == QLatin1String("ChooseApplication")) { - QVariantMap results; - QVariantMap choices; - - QDBusArgument dbusArgument = message.arguments().at(4).value(); - dbusArgument >> choices; - - uint response = m_appChooser->chooseApplication(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // parent_window - message.arguments().at(3).toStringList(), // choices - choices, // options - results); - arguments << response; - arguments << results; - } - } else if (message.interface() == QLatin1String("org.freedesktop.impl.portal.Email")) { - uint response = 2; - QVariantMap results; - QVariantMap options; - - QDBusArgument dbusArgument = message.arguments().at(3).value(); - dbusArgument >> options; - - if (message.member() == QLatin1String("ComposeEmail")) { - response = m_email->composeEmail(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // parent_window - options, // options - results); - } - - arguments << response; - arguments << results; - } else if (message.interface() == QLatin1String("org.freedesktop.impl.portal.FileChooser")) { - uint response = 2; - QVariantMap results; - QVariantMap choices; - - QDBusArgument dbusArgument = message.arguments().at(4).value(); - dbusArgument >> choices; - - if (message.member() == QLatin1String("OpenFile")) { - response = m_fileChooser->openFile(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // parent_window - message.arguments().at(3).toString(), // title - choices, // options - results); - } else if (message.member() == QLatin1String("SaveFile")) { - response = m_fileChooser->saveFile(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // parent_window - message.arguments().at(3).toString(), // title - choices, // options - results); - } - - arguments << response; - arguments << results; - - } else if (message.interface() == QLatin1String("org.freedesktop.impl.portal.Inhibit")) { - if (message.member() == QLatin1String("Inhibit")) { - QVariantMap options; - - QDBusArgument dbusArgument = message.arguments().at(4).value(); - dbusArgument >> options; - - m_inhibit->inhibit(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // window - message.arguments().at(3).toUInt(), // flags - options); // options - } - } else if (message.interface() == QLatin1String("org.freedesktop.impl.portal.Notification")) { - if (message.member() == QLatin1String("AddNotification")) { - QVariantMap notificationParams; - - QDBusArgument dbusArgument = message.arguments().at(2).value(); - dbusArgument >> notificationParams; - - m_notification->addNotification(message.arguments().at(0).toString(), // app_id - message.arguments().at(1).toString(), // id - notificationParams); // notification - } else if (message.member() == QLatin1String("RemoveNotification")) { - m_notification->removeNotification(message.arguments().at(0).toString(), // app_id - message.arguments().at(1).toString()); // id - } - } else if (message.interface() == QLatin1String("org.freedesktop.impl.portal.Print")) { - uint response = 2; - QVariantMap results; - - if (message.member() == QLatin1String("Print")) { - QVariantMap options; - - QDBusArgument dbusArgument = message.arguments().at(5).value(); - dbusArgument >> options; - - response = m_print->print(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // parent_window - message.arguments().at(3).toString(), // title - qvariant_cast(message.arguments().at(4)), // fd - options, // options - results); - } else if (message.member() == QLatin1String("PreparePrint")) { - QVariantMap settings; - QVariantMap pageSetup; - QVariantMap options; - - QDBusArgument dbusArgument = message.arguments().at(4).value(); - dbusArgument >> settings; - - QDBusArgument dbusArgument1 = message.arguments().at(5).value(); - dbusArgument1 >> pageSetup; - - QDBusArgument dbusArgument2 = message.arguments().at(6).value(); - dbusArgument2 >> options; - - response = m_print->preparePrint(qvariant_cast(message.arguments().at(0)), // handle - message.arguments().at(1).toString(), // app_id - message.arguments().at(2).toString(), // parent_window - message.arguments().at(3).toString(), // title - settings, // settings - pageSetup, // page_setup - options, // options - results); - } - - arguments << response; - arguments << results; - } - - QDBusMessage reply = message.createReply(); - reply.setArguments(arguments); - return connection.send(reply); -} - -QString DesktopPortal::introspect(const QString &path) const -{ - QString nodes; - - if (path == QLatin1String("/org/freedesktop/portal/desktop/") || path == QLatin1String("/org/freedesktop/portal/desktop")) { - nodes = QStringLiteral( - "" - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - "" - "" - " " - " " - " " - " " - " " - " " - " " - " " - " " - "" - "" - " " - " " - " " - " " - " " - " " - " " - " " - "" - "" - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - "" - "" - " " - " " - " " - " " - " " - " " - " " - "" - "" - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - "" - "" - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - ""); - } - - qCDebug(XdgDesktopPortalKdeDesktopPortal) << nodes; - - return nodes; } diff --git a/src/email.h b/src/email.h --- a/src/email.h +++ b/src/email.h @@ -21,19 +21,19 @@ #ifndef XDG_DESKTOP_PORTAL_KDE_EMAIL_H #define XDG_DESKTOP_PORTAL_KDE_EMAIL_H -#include +#include #include -class Email : public QObject +class EmailPortal : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.Email") public: - Email(QObject *parent = 0); - ~Email(); + EmailPortal(QObject *parent); + ~EmailPortal(); public Q_SLOTS: - uint composeEmail(const QDBusObjectPath &handle, + uint ComposeEmail(const QDBusObjectPath &handle, const QString &app_id, const QString &window, const QVariantMap &options, diff --git a/src/email.cpp b/src/email.cpp --- a/src/email.cpp +++ b/src/email.cpp @@ -26,16 +26,16 @@ Q_LOGGING_CATEGORY(XdgDesktopPortalKdeEmail, "xdg-desktop-portal-kde-email") -Email::Email(QObject *parent) - : QObject(parent) +EmailPortal::EmailPortal(QObject *parent) + : QDBusAbstractAdaptor(parent) { } -Email::~Email() +EmailPortal::~EmailPortal() { } -uint Email::composeEmail(const QDBusObjectPath &handle, const QString &app_id, const QString &window, const QVariantMap &options, QVariantMap &results) +uint EmailPortal::ComposeEmail(const QDBusObjectPath &handle, const QString &app_id, const QString &window, const QVariantMap &options, QVariantMap &results) { Q_UNUSED(results) diff --git a/src/filechooser.h b/src/filechooser.h --- a/src/filechooser.h +++ b/src/filechooser.h @@ -23,9 +23,9 @@ #include #include -#include +#include -class FileChooser : public QObject +class FileChooserPortal : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.FileChooser") @@ -43,18 +43,18 @@ } FilterList; typedef QList FilterListList; - FileChooser(QObject *parent = 0); - ~FileChooser(); + FileChooserPortal(QObject *parent); + ~FileChooserPortal(); public Q_SLOTS: - uint openFile(const QDBusObjectPath &handle, + uint OpenFile(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, const QVariantMap &options, QVariantMap &results); - uint saveFile(const QDBusObjectPath &handle, + uint SaveFile(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, diff --git a/src/filechooser.cpp b/src/filechooser.cpp --- a/src/filechooser.cpp +++ b/src/filechooser.cpp @@ -29,20 +29,20 @@ Q_LOGGING_CATEGORY(XdgDesktopPortalKdeFileChooser, "xdg-desktop-portal-kde-file-chooser") // Keep in sync with qflatpakfiledialog from flatpak-platform-plugin -Q_DECLARE_METATYPE(FileChooser::Filter); -Q_DECLARE_METATYPE(FileChooser::Filters); -Q_DECLARE_METATYPE(FileChooser::FilterList); -Q_DECLARE_METATYPE(FileChooser::FilterListList); +Q_DECLARE_METATYPE(FileChooserPortal::Filter); +Q_DECLARE_METATYPE(FileChooserPortal::Filters); +Q_DECLARE_METATYPE(FileChooserPortal::FilterList); +Q_DECLARE_METATYPE(FileChooserPortal::FilterListList); -QDBusArgument &operator << (QDBusArgument &arg, const FileChooser::Filter &filter) +QDBusArgument &operator << (QDBusArgument &arg, const FileChooserPortal::Filter &filter) { arg.beginStructure(); arg << filter.type << filter.filterString; arg.endStructure(); return arg; } -const QDBusArgument &operator >> (const QDBusArgument &arg, FileChooser::Filter &filter) +const QDBusArgument &operator >> (const QDBusArgument &arg, FileChooserPortal::Filter &filter) { uint type; QString filterString; @@ -55,18 +55,18 @@ return arg; } -QDBusArgument &operator << (QDBusArgument &arg, const FileChooser::FilterList &filterList) +QDBusArgument &operator << (QDBusArgument &arg, const FileChooserPortal::FilterList &filterList) { arg.beginStructure(); arg << filterList.userVisibleName << filterList.filters; arg.endStructure(); return arg; } -const QDBusArgument &operator >> (const QDBusArgument &arg, FileChooser::FilterList &filterList) +const QDBusArgument &operator >> (const QDBusArgument &arg, FileChooserPortal::FilterList &filterList) { QString userVisibleName; - FileChooser::Filters filters; + FileChooserPortal::Filters filters; arg.beginStructure(); arg >> userVisibleName >> filters; filterList.userVisibleName = userVisibleName; @@ -76,20 +76,20 @@ return arg; } -FileChooser::FileChooser(QObject *parent) - : QObject(parent) +FileChooserPortal::FileChooserPortal(QObject *parent) + : QDBusAbstractAdaptor(parent) { qDBusRegisterMetaType(); qDBusRegisterMetaType(); qDBusRegisterMetaType(); qDBusRegisterMetaType(); } -FileChooser::~FileChooser() +FileChooserPortal::~FileChooserPortal() { } -uint FileChooser::openFile(const QDBusObjectPath &handle, +uint FileChooserPortal::OpenFile(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, @@ -181,7 +181,7 @@ return 1; } -uint FileChooser::saveFile(const QDBusObjectPath &handle, +uint FileChooserPortal::SaveFile(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, diff --git a/src/inhibit.h b/src/inhibit.h --- a/src/inhibit.h +++ b/src/inhibit.h @@ -21,21 +21,21 @@ #ifndef XDG_DESKTOP_PORTAL_KDE_INHIBIT_H #define XDG_DESKTOP_PORTAL_KDE_INHIBIT_H -#include +#include #include #include "request.h" -class Inhibit : public QObject +class InhibitPortal : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.Inhibit") public: - Inhibit(QObject *parent = 0); - ~Inhibit(); + InhibitPortal(QObject *parent); + ~InhibitPortal(); public Q_SLOTS: - void inhibit(const QDBusObjectPath &handle, + void Inhibit(const QDBusObjectPath &handle, const QString &app_id, const QString &window, uint flags, diff --git a/src/inhibit.cpp b/src/inhibit.cpp --- a/src/inhibit.cpp +++ b/src/inhibit.cpp @@ -31,16 +31,16 @@ Q_LOGGING_CATEGORY(XdgDesktopPortalKdeInhibit, "xdg-desktop-portal-kde-inhibit") -Inhibit::Inhibit(QObject *parent) - : QObject(parent) +InhibitPortal::InhibitPortal(QObject *parent) + : QDBusAbstractAdaptor(parent) { } -Inhibit::~Inhibit() +InhibitPortal::~InhibitPortal() { } -void Inhibit::inhibit(const QDBusObjectPath &handle, const QString &app_id, const QString &window, uint flags, const QVariantMap &options) +void InhibitPortal::Inhibit(const QDBusObjectPath &handle, const QString &app_id, const QString &window, uint flags, const QVariantMap &options) { qCDebug(XdgDesktopPortalKdeInhibit) << "Inhibit called with parameters:"; qCDebug(XdgDesktopPortalKdeInhibit) << " handle: " << handle.path(); diff --git a/src/notification.h b/src/notification.h --- a/src/notification.h +++ b/src/notification.h @@ -21,24 +21,24 @@ #ifndef XDG_DESKTOP_PORTAL_KDE_NOTIFICATION_H #define XDG_DESKTOP_PORTAL_KDE_NOTIFICATION_H -#include +#include #include #include -class Notification : public QObject +class NotificationPortal : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.Notification") public: - Notification(QObject *parent = 0); - ~Notification(); + NotificationPortal(QObject *parent); + ~NotificationPortal(); public Q_SLOTS: - void addNotification(const QString &app_id, + void AddNotification(const QString &app_id, const QString &id, const QVariantMap ¬ification); - void removeNotification(const QString &app_id, + void RemoveNotification(const QString &app_id, const QString &id); private Q_SLOTS: void notificationActivated(uint action); diff --git a/src/notification.cpp b/src/notification.cpp --- a/src/notification.cpp +++ b/src/notification.cpp @@ -24,18 +24,19 @@ #include #include + Q_LOGGING_CATEGORY(XdgDesktopPortalKdeNotification, "xdg-desktop-portal-kde-notification") -Notification::Notification(QObject *parent) - : QObject(parent) +NotificationPortal::NotificationPortal(QObject *parent) + : QDBusAbstractAdaptor(parent) { } -Notification::~Notification() +NotificationPortal::~NotificationPortal() { } -void Notification::addNotification(const QString &app_id, +void NotificationPortal::AddNotification(const QString &app_id, const QString &id, const QVariantMap ¬ification) { @@ -83,14 +84,14 @@ notify->setProperty("app_id", app_id); notify->setProperty("id", id); - connect(notify, static_cast(&KNotification::activated), this, &Notification::notificationActivated); - connect(notify, &KNotification::closed, this, &Notification::notificationClosed); + connect(notify, static_cast(&KNotification::activated), this, &NotificationPortal::notificationActivated); + connect(notify, &KNotification::closed, this, &NotificationPortal::notificationClosed); notify->sendEvent(); m_notifications.insert(QString("%1:%2").arg(app_id, id), notify); } -void Notification::notificationActivated(uint action) +void NotificationPortal::notificationActivated(uint action) { KNotification *notify = qobject_cast(sender()); @@ -113,7 +114,7 @@ QDBusConnection::sessionBus().send(message); } -void Notification::removeNotification(const QString &app_id, +void NotificationPortal::RemoveNotification(const QString &app_id, const QString &id) { qCDebug(XdgDesktopPortalKdeNotification) << "RemoveNotification called with parameters:"; @@ -127,7 +128,7 @@ } } -void Notification::notificationClosed() +void NotificationPortal::notificationClosed() { KNotification *notify = qobject_cast(sender()); diff --git a/src/print.h b/src/print.h --- a/src/print.h +++ b/src/print.h @@ -21,30 +21,30 @@ #ifndef XDG_DESKTOP_PORTAL_KDE_PRINT_H #define XDG_DESKTOP_PORTAL_KDE_PRINT_H -#include +#include #include #include #include #include -class Print : public QObject +class PrintPortal : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.freedesktop.impl.portal.Print") public: - Print(QObject *parent = nullptr); - ~Print(); + PrintPortal(QObject *parent); + ~PrintPortal(); public Q_SLOTS: - uint print(const QDBusObjectPath &handle, + uint Print(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, const QDBusUnixFileDescriptor &fd, const QVariantMap &options, QVariantMap &results); - uint preparePrint(const QDBusObjectPath &handle, + uint PreparePrint(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, diff --git a/src/print.cpp b/src/print.cpp --- a/src/print.cpp +++ b/src/print.cpp @@ -237,16 +237,16 @@ return QPageSize::Custom; } -Print::Print(QObject *parent) - : QObject(parent) +PrintPortal::PrintPortal(QObject *parent) + : QDBusAbstractAdaptor(parent) { } -Print::~Print() +PrintPortal::~PrintPortal() { } -uint Print::print(const QDBusObjectPath &handle, +uint PrintPortal::Print(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, @@ -352,7 +352,7 @@ return 0; } -uint Print::preparePrint(const QDBusObjectPath &handle, +uint PrintPortal::PreparePrint(const QDBusObjectPath &handle, const QString &app_id, const QString &parent_window, const QString &title, @@ -694,7 +694,7 @@ return 0; } -QStringList Print::destination(const QPrinter *printer, const QString &version) +QStringList PrintPortal::destination(const QPrinter *printer, const QString &version) { if (version == QLatin1String("lp")) { return QStringList(QStringLiteral("-d")) << printer->printerName(); @@ -707,7 +707,7 @@ return QStringList(); } -QStringList Print::copies(const QPrinter *printer, const QString &version) +QStringList PrintPortal::copies(const QPrinter *printer, const QString &version) { int cp = printer->actualNumCopies(); @@ -722,7 +722,7 @@ return QStringList(); } -QStringList Print::jobname(const QPrinter *printer, const QString &version) +QStringList PrintPortal::jobname(const QPrinter *printer, const QString &version) { if (!printer->docName().isEmpty()) { @@ -740,7 +740,7 @@ } // What about Upper and MultiPurpose? And others in PPD??? -QString Print::mediaPaperSource(const QPrinter *printer) +QString PrintPortal::mediaPaperSource(const QPrinter *printer) { switch (printer->paperSource()) { case QPrinter::Auto: @@ -776,7 +776,7 @@ } } -QStringList Print::optionOrientation(const QPrinter *printer, QPrinter::Orientation documentOrientation) +QStringList PrintPortal::optionOrientation(const QPrinter *printer, QPrinter::Orientation documentOrientation) { // portrait and landscape options rotate the document according to the document orientation // If we want to print a landscape document as one would expect it, we have to pass the @@ -790,7 +790,7 @@ } } -QStringList Print::optionDoubleSidedPrinting(const QPrinter *printer) +QStringList PrintPortal::optionDoubleSidedPrinting(const QPrinter *printer) { switch (printer->duplex()) { case QPrinter::DuplexNone: @@ -810,23 +810,23 @@ } } -QStringList Print::optionPageOrder(const QPrinter *printer) +QStringList PrintPortal::optionPageOrder(const QPrinter *printer) { if (printer->pageOrder() == QPrinter::LastPageFirst) { return QStringList(QStringLiteral("-o")) << QStringLiteral("outputorder=reverse"); } return QStringList(QStringLiteral("-o")) << QStringLiteral("outputorder=normal"); } -QStringList Print::optionCollateCopies(const QPrinter *printer) +QStringList PrintPortal::optionCollateCopies(const QPrinter *printer) { if (printer->collateCopies()) { return QStringList(QStringLiteral("-o")) << QStringLiteral("Collate=True"); } return QStringList(QStringLiteral("-o")) << QStringLiteral("Collate=False"); } -QStringList Print::optionPageMargins(const QPrinter *printer) +QStringList PrintPortal::optionPageMargins(const QPrinter *printer) { if (printer->printEngine()->property(QPrintEngine::PPK_PageMargins).isNull()) { return QStringList(); @@ -840,7 +840,7 @@ } } -QStringList Print::optionCupsProperties(const QPrinter *printer) +QStringList PrintPortal::optionCupsProperties(const QPrinter *printer) { QStringList dialogOptions = printer->printEngine()->property(QPrintEngine::PrintEnginePropertyKey(0xfe00)).toStringList(); QStringList cupsOptions; @@ -861,7 +861,7 @@ return cupsOptions; } -QStringList Print::optionMedia(const QPrinter *printer) +QStringList PrintPortal::optionMedia(const QPrinter *printer) { if (!qt_keyForPageSizeId(printer->pageLayout().pageSize().id()).isEmpty() && !mediaPaperSource(printer).isEmpty()) { @@ -882,7 +882,7 @@ return QStringList(); } -QStringList Print::pages(const QPrinter *printer, bool useCupsOptions, const QString &version) +QStringList PrintPortal::pages(const QPrinter *printer, bool useCupsOptions, const QString &version) { if (printer->printRange() == QPrinter::PageRange) { if (version == QLatin1String("lp")) { @@ -899,7 +899,7 @@ return QStringList(); // AllPages } -QStringList Print::cupsOptions(const QPrinter *printer, QPrinter::Orientation documentOrientation) +QStringList PrintPortal::cupsOptions(const QPrinter *printer, QPrinter::Orientation documentOrientation) { QStringList optionList; @@ -932,7 +932,7 @@ return optionList; } -QStringList Print::printArguments(const QPrinter *printer, bool useCupsOptions, +QStringList PrintPortal::printArguments(const QPrinter *printer, bool useCupsOptions, const QString &version, QPrinter::Orientation documentOrientation) { QStringList argList; @@ -964,7 +964,7 @@ return argList; } -bool Print::cupsAvailable() +bool PrintPortal::cupsAvailable() { // Ideally we would have access to the private Qt method // QCUPSSupport::cupsAvailable() to do this as it is very complex routine. diff --git a/src/xdg-desktop-portal-kde.cpp b/src/xdg-desktop-portal-kde.cpp --- a/src/xdg-desktop-portal-kde.cpp +++ b/src/xdg-desktop-portal-kde.cpp @@ -35,7 +35,7 @@ if (sessionBus.registerService(QLatin1String("org.freedesktop.impl.portal.desktop.kde"))) { DesktopPortal *desktopPortal = new DesktopPortal(&a); - if (sessionBus.registerVirtualObject(QLatin1String("/org/freedesktop/portal/desktop"), desktopPortal, QDBusConnection::VirtualObjectRegisterOption::SingleNode)) { + if (sessionBus.registerObject(QLatin1String("/org/freedesktop/portal/desktop"), desktopPortal, QDBusConnection::ExportAdaptors)) { qCDebug(XdgDesktopPortalKde) << "Desktop portal registered successfuly"; } else { qCDebug(XdgDesktopPortalKde) << "Failed to register desktop portal";