diff options
Diffstat (limited to 'src/plugins/platformthemes')
10 files changed, 187 insertions, 129 deletions
diff --git a/src/plugins/platformthemes/flatpak/flatpak.json b/src/plugins/platformthemes/flatpak/flatpak.json deleted file mode 100644 index 71f834fd08..0000000000 --- a/src/plugins/platformthemes/flatpak/flatpak.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Keys": [ "flatpak" ] -} diff --git a/src/plugins/platformthemes/flatpak/flatpak.pro b/src/plugins/platformthemes/flatpak/flatpak.pro deleted file mode 100644 index 1e5dbb7a6c..0000000000 --- a/src/plugins/platformthemes/flatpak/flatpak.pro +++ /dev/null @@ -1,17 +0,0 @@ -TARGET = qflatpak - -PLUGIN_TYPE = platformthemes -PLUGIN_EXTENDS = - -PLUGIN_CLASS_NAME = QFlatpakThemePlugin -load(qt_plugin) - -QT += core-private dbus gui-private theme_support-private - -HEADERS += \ - qflatpaktheme.h \ - qflatpakfiledialog_p.h - -SOURCES += \ - main.cpp \ - qflatpaktheme.cpp \ - qflatpakfiledialog.cpp diff --git a/src/plugins/platformthemes/platformthemes.pro b/src/plugins/platformthemes/platformthemes.pro index 02ed3406e7..3bcc659199 100644 --- a/src/plugins/platformthemes/platformthemes.pro +++ b/src/plugins/platformthemes/platformthemes.pro @@ -1,6 +1,6 @@ TEMPLATE = subdirs QT_FOR_CONFIG += widgets-private -qtConfig(dbus):qtConfig(regularexpression):qtConfig(mimetype): SUBDIRS += flatpak +qtConfig(dbus):qtConfig(regularexpression):qtConfig(mimetype): SUBDIRS += xdgdesktopportal qtHaveModule(widgets):qtConfig(gtk3): SUBDIRS += gtk3 diff --git a/src/plugins/platformthemes/flatpak/main.cpp b/src/plugins/platformthemes/xdgdesktopportal/main.cpp index 7888eed8b2..64a03d479f 100644 --- a/src/plugins/platformthemes/flatpak/main.cpp +++ b/src/plugins/platformthemes/xdgdesktopportal/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 Red Hat, Inc +** Copyright (C) 2017-2018 Red Hat, Inc ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. @@ -38,24 +38,26 @@ ****************************************************************************/ #include <qpa/qplatformthemeplugin.h> -#include "qflatpaktheme.h" +#include "qxdgdesktopportaltheme.h" QT_BEGIN_NAMESPACE -class QFlatpakThemePlugin : public QPlatformThemePlugin +class QXdgDesktopPortalThemePlugin : public QPlatformThemePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID QPlatformThemeFactoryInterface_iid FILE "flatpak.json") + Q_PLUGIN_METADATA(IID QPlatformThemeFactoryInterface_iid FILE "xdgdesktopportal.json") public: QPlatformTheme *create(const QString &key, const QStringList ¶ms) override; }; -QPlatformTheme *QFlatpakThemePlugin::create(const QString &key, const QStringList ¶ms) +QPlatformTheme *QXdgDesktopPortalThemePlugin::create(const QString &key, const QStringList ¶ms) { Q_UNUSED(params); - if (!key.compare(QLatin1String("flatpak"), Qt::CaseInsensitive)) - return new QFlatpakTheme; + if (!key.compare(QLatin1String("xdgdesktopportal"), Qt::CaseInsensitive) || + !key.compare(QLatin1String("flatpak"), Qt::CaseInsensitive) || + !key.compare(QLatin1String("snap"), Qt::CaseInsensitive)) + return new QXdgDesktopPortalTheme; return nullptr; } diff --git a/src/plugins/platformthemes/flatpak/qflatpakfiledialog.cpp b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp index c31b326357..cda267d24b 100644 --- a/src/plugins/platformthemes/flatpak/qflatpakfiledialog.cpp +++ b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 Red Hat, Inc +** Copyright (C) 2017-2018 Red Hat, Inc ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include "qflatpakfiledialog_p.h" +#include "qxdgdesktopportalfiledialog_p.h" #include <QtCore/qeventloop.h> @@ -56,7 +56,7 @@ QT_BEGIN_NAMESPACE -QDBusArgument &operator <<(QDBusArgument &arg, const QFlatpakFileDialog::FilterCondition &filterCondition) +QDBusArgument &operator <<(QDBusArgument &arg, const QXdgDesktopPortalFileDialog::FilterCondition &filterCondition) { arg.beginStructure(); arg << filterCondition.type << filterCondition.pattern; @@ -64,20 +64,20 @@ QDBusArgument &operator <<(QDBusArgument &arg, const QFlatpakFileDialog::FilterC return arg; } -const QDBusArgument &operator >>(const QDBusArgument &arg, QFlatpakFileDialog::FilterCondition &filterCondition) +const QDBusArgument &operator >>(const QDBusArgument &arg, QXdgDesktopPortalFileDialog::FilterCondition &filterCondition) { uint type; QString filterPattern; arg.beginStructure(); arg >> type >> filterPattern; - filterCondition.type = (QFlatpakFileDialog::ConditionType)type; + filterCondition.type = (QXdgDesktopPortalFileDialog::ConditionType)type; filterCondition.pattern = filterPattern; arg.endStructure(); return arg; } -QDBusArgument &operator <<(QDBusArgument &arg, const QFlatpakFileDialog::Filter filter) +QDBusArgument &operator <<(QDBusArgument &arg, const QXdgDesktopPortalFileDialog::Filter filter) { arg.beginStructure(); arg << filter.name << filter.filterConditions; @@ -85,10 +85,10 @@ QDBusArgument &operator <<(QDBusArgument &arg, const QFlatpakFileDialog::Filter return arg; } -const QDBusArgument &operator >>(const QDBusArgument &arg, QFlatpakFileDialog::Filter &filter) +const QDBusArgument &operator >>(const QDBusArgument &arg, QXdgDesktopPortalFileDialog::Filter &filter) { QString name; - QFlatpakFileDialog::FilterConditionList filterConditions; + QXdgDesktopPortalFileDialog::FilterConditionList filterConditions; arg.beginStructure(); arg >> name >> filterConditions; filter.name = name; @@ -98,9 +98,13 @@ const QDBusArgument &operator >>(const QDBusArgument &arg, QFlatpakFileDialog::F return arg; } -class QFlatpakFileDialogPrivate +class QXdgDesktopPortalFileDialogPrivate { public: + QXdgDesktopPortalFileDialogPrivate(QPlatformFileDialogHelper *nativeFileDialog) + : nativeFileDialog(nativeFileDialog) + { } + WId winId = 0; bool modal = false; bool multipleFiles = false; @@ -111,21 +115,31 @@ public: QStringList nameFilters; QStringList mimeTypesFilters; QStringList selectedFiles; + QPlatformFileDialogHelper *nativeFileDialog = nullptr; }; -QFlatpakFileDialog::QFlatpakFileDialog() +QXdgDesktopPortalFileDialog::QXdgDesktopPortalFileDialog(QPlatformFileDialogHelper *nativeFileDialog) : QPlatformFileDialogHelper() - , d_ptr(new QFlatpakFileDialogPrivate) + , d_ptr(new QXdgDesktopPortalFileDialogPrivate(nativeFileDialog)) { + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog) { + connect(d->nativeFileDialog, SIGNAL(accept()), this, SIGNAL(accept())); + connect(d->nativeFileDialog, SIGNAL(reject()), this, SIGNAL(reject())); + } } -QFlatpakFileDialog::~QFlatpakFileDialog() +QXdgDesktopPortalFileDialog::~QXdgDesktopPortalFileDialog() { } -void QFlatpakFileDialog::initializeDialog() +void QXdgDesktopPortalFileDialog::initializeDialog() { - Q_D(QFlatpakFileDialog); + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog) + d->nativeFileDialog->setOptions(options()); if (options()->fileMode() == QFileDialogOptions::ExistingFiles) d->multipleFiles = true; @@ -148,9 +162,9 @@ void QFlatpakFileDialog::initializeDialog() setDirectory(options()->initialDirectory()); } -void QFlatpakFileDialog::openPortal() +void QXdgDesktopPortalFileDialog::openPortal() { - Q_D(const QFlatpakFileDialog); + Q_D(const QXdgDesktopPortalFileDialog); QDBusMessage message = QDBusMessage::createMethodCall(QLatin1String("org.freedesktop.portal.Desktop"), QLatin1String("/org/freedesktop/portal/desktop"), @@ -256,35 +270,51 @@ void QFlatpakFileDialog::openPortal() }); } -bool QFlatpakFileDialog::defaultNameFilterDisables() const +bool QXdgDesktopPortalFileDialog::defaultNameFilterDisables() const { return false; } -void QFlatpakFileDialog::setDirectory(const QUrl &directory) +void QXdgDesktopPortalFileDialog::setDirectory(const QUrl &directory) { - Q_D(QFlatpakFileDialog); + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog) { + d->nativeFileDialog->setOptions(options()); + d->nativeFileDialog->setDirectory(directory); + } d->directory = directory.path(); } -QUrl QFlatpakFileDialog::directory() const +QUrl QXdgDesktopPortalFileDialog::directory() const { - Q_D(const QFlatpakFileDialog); + Q_D(const QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly)) + return d->nativeFileDialog->directory(); return d->directory; } -void QFlatpakFileDialog::selectFile(const QUrl &filename) +void QXdgDesktopPortalFileDialog::selectFile(const QUrl &filename) { - Q_D(QFlatpakFileDialog); + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog) { + d->nativeFileDialog->setOptions(options()); + d->nativeFileDialog->selectFile(filename); + } d->selectedFiles << filename.path(); } -QList<QUrl> QFlatpakFileDialog::selectedFiles() const +QList<QUrl> QXdgDesktopPortalFileDialog::selectedFiles() const { - Q_D(const QFlatpakFileDialog); + Q_D(const QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly)) + return d->nativeFileDialog->selectedFiles(); QList<QUrl> files; for (const QString &file : d->selectedFiles) { @@ -293,25 +323,41 @@ QList<QUrl> QFlatpakFileDialog::selectedFiles() const return files; } -void QFlatpakFileDialog::setFilter() +void QXdgDesktopPortalFileDialog::setFilter() { - // TODO + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog) { + d->nativeFileDialog->setOptions(options()); + d->nativeFileDialog->setFilter(); + } } -void QFlatpakFileDialog::selectNameFilter(const QString &filter) +void QXdgDesktopPortalFileDialog::selectNameFilter(const QString &filter) { - Q_UNUSED(filter); - // TODO + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog) { + d->nativeFileDialog->setOptions(options()); + d->nativeFileDialog->selectNameFilter(filter); + } } -QString QFlatpakFileDialog::selectedNameFilter() const +QString QXdgDesktopPortalFileDialog::selectedNameFilter() const { // TODO return QString(); } -void QFlatpakFileDialog::exec() +void QXdgDesktopPortalFileDialog::exec() { + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly)) { + d->nativeFileDialog->exec(); + return; + } + // HACK we have to avoid returning until we emit that the dialog was accepted or rejected QEventLoop loop; loop.connect(this, SIGNAL(accept()), SLOT(quit())); @@ -319,28 +365,34 @@ void QFlatpakFileDialog::exec() loop.exec(); } -void QFlatpakFileDialog::hide() +void QXdgDesktopPortalFileDialog::hide() { + Q_D(QXdgDesktopPortalFileDialog); + + if (d->nativeFileDialog) + d->nativeFileDialog->hide(); } -bool QFlatpakFileDialog::show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent) +bool QXdgDesktopPortalFileDialog::show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent) { - Q_D(QFlatpakFileDialog); - Q_UNUSED(windowFlags); + Q_D(QXdgDesktopPortalFileDialog); initializeDialog(); d->modal = windowModality != Qt::NonModal; d->winId = parent ? parent->winId() : 0; + if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly)) + return d->nativeFileDialog->show(windowFlags, windowModality, parent); + openPortal(); return true; } -void QFlatpakFileDialog::gotResponse(uint response, const QVariantMap &results) +void QXdgDesktopPortalFileDialog::gotResponse(uint response, const QVariantMap &results) { - Q_D(QFlatpakFileDialog); + Q_D(QXdgDesktopPortalFileDialog); if (!response) { if (results.contains(QLatin1String("uris"))) diff --git a/src/plugins/platformthemes/flatpak/qflatpakfiledialog_p.h b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog_p.h index f3e195faa0..c1f1a2c005 100644 --- a/src/plugins/platformthemes/flatpak/qflatpakfiledialog_p.h +++ b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 Red Hat, Inc +** Copyright (C) 2017-2018 Red Hat, Inc ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. @@ -36,20 +36,20 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef QFLATPAKFILEDIALOG_P_H -#define QFLATPAKFILEDIALOG_P_H +#ifndef QXDGDESKTOPPORTALFILEDIALOG_P_H +#define QXDGDESKTOPPORTALFILEDIALOG_P_H #include <qpa/qplatformdialoghelper.h> #include <QVector> QT_BEGIN_NAMESPACE -class QFlatpakFileDialogPrivate; +class QXdgDesktopPortalFileDialogPrivate; -class QFlatpakFileDialog : public QPlatformFileDialogHelper +class QXdgDesktopPortalFileDialog : public QPlatformFileDialogHelper { Q_OBJECT - Q_DECLARE_PRIVATE(QFlatpakFileDialog) + Q_DECLARE_PRIVATE(QXdgDesktopPortalFileDialog) public: enum ConditionType : uint { GlobalPattern = 0, @@ -69,8 +69,8 @@ public: }; typedef QVector<Filter> FilterList; - QFlatpakFileDialog(); - ~QFlatpakFileDialog(); + QXdgDesktopPortalFileDialog(QPlatformFileDialogHelper *nativeFileDialog = nullptr); + ~QXdgDesktopPortalFileDialog(); bool defaultNameFilterDisables() const override; QUrl directory() const override; @@ -92,15 +92,15 @@ private: void initializeDialog(); void openPortal(); - QScopedPointer<QFlatpakFileDialogPrivate> d_ptr; + QScopedPointer<QXdgDesktopPortalFileDialogPrivate> d_ptr; }; QT_END_NAMESPACE -Q_DECLARE_METATYPE(QFlatpakFileDialog::FilterCondition); -Q_DECLARE_METATYPE(QFlatpakFileDialog::FilterConditionList); -Q_DECLARE_METATYPE(QFlatpakFileDialog::Filter); -Q_DECLARE_METATYPE(QFlatpakFileDialog::FilterList); +Q_DECLARE_METATYPE(QXdgDesktopPortalFileDialog::FilterCondition); +Q_DECLARE_METATYPE(QXdgDesktopPortalFileDialog::FilterConditionList); +Q_DECLARE_METATYPE(QXdgDesktopPortalFileDialog::Filter); +Q_DECLARE_METATYPE(QXdgDesktopPortalFileDialog::FilterList); -#endif // QFLATPAKFILEDIALOG_P_H +#endif // QXDGDESKTOPPORTALFILEDIALOG_P_H diff --git a/src/plugins/platformthemes/flatpak/qflatpaktheme.cpp b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.cpp index 6c5e1389cf..f07ca3f098 100644 --- a/src/plugins/platformthemes/flatpak/qflatpaktheme.cpp +++ b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.cpp @@ -37,8 +37,8 @@ ** ****************************************************************************/ -#include "qflatpaktheme.h" -#include "qflatpakfiledialog_p.h" +#include "qxdgdesktopportaltheme.h" +#include "qxdgdesktopportalfiledialog_p.h" #include <private/qguiapplication_p.h> #include <qpa/qplatformtheme_p.h> @@ -47,14 +47,14 @@ QT_BEGIN_NAMESPACE -class QFlatpakThemePrivate : public QPlatformThemePrivate +class QXdgDesktopPortalThemePrivate : public QPlatformThemePrivate { public: - QFlatpakThemePrivate() + QXdgDesktopPortalThemePrivate() : QPlatformThemePrivate() { } - ~QFlatpakThemePrivate() + ~QXdgDesktopPortalThemePrivate() { delete baseTheme; } @@ -62,10 +62,10 @@ public: QPlatformTheme *baseTheme; }; -QFlatpakTheme::QFlatpakTheme() - : d_ptr(new QFlatpakThemePrivate) +QXdgDesktopPortalTheme::QXdgDesktopPortalTheme() + : d_ptr(new QXdgDesktopPortalThemePrivate) { - Q_D(QFlatpakTheme); + Q_D(QXdgDesktopPortalTheme); QStringList themeNames; themeNames += QGuiApplicationPrivate::platform_integration->themeNames(); @@ -92,33 +92,33 @@ QFlatpakTheme::QFlatpakTheme() d->baseTheme = new QPlatformTheme; } -QPlatformMenuItem* QFlatpakTheme::createPlatformMenuItem() const +QPlatformMenuItem* QXdgDesktopPortalTheme::createPlatformMenuItem() const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->createPlatformMenuItem(); } -QPlatformMenu* QFlatpakTheme::createPlatformMenu() const +QPlatformMenu* QXdgDesktopPortalTheme::createPlatformMenu() const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->createPlatformMenu(); } -QPlatformMenuBar* QFlatpakTheme::createPlatformMenuBar() const +QPlatformMenuBar* QXdgDesktopPortalTheme::createPlatformMenuBar() const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->createPlatformMenuBar(); } -void QFlatpakTheme::showPlatformMenuBar() +void QXdgDesktopPortalTheme::showPlatformMenuBar() { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->showPlatformMenuBar(); } -bool QFlatpakTheme::usePlatformNativeDialog(DialogType type) const +bool QXdgDesktopPortalTheme::usePlatformNativeDialog(DialogType type) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); if (type == FileDialog) return true; @@ -126,70 +126,74 @@ bool QFlatpakTheme::usePlatformNativeDialog(DialogType type) const return d->baseTheme->usePlatformNativeDialog(type); } -QPlatformDialogHelper* QFlatpakTheme::createPlatformDialogHelper(DialogType type) const +QPlatformDialogHelper* QXdgDesktopPortalTheme::createPlatformDialogHelper(DialogType type) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); - if (type == FileDialog) - return new QFlatpakFileDialog; + if (type == FileDialog) { + if (d->baseTheme->usePlatformNativeDialog(type)) + return new QXdgDesktopPortalFileDialog(static_cast<QPlatformFileDialogHelper*>(d->baseTheme->createPlatformDialogHelper(type))); + + return new QXdgDesktopPortalFileDialog; + } return d->baseTheme->createPlatformDialogHelper(type); } #ifndef QT_NO_SYSTEMTRAYICON -QPlatformSystemTrayIcon* QFlatpakTheme::createPlatformSystemTrayIcon() const +QPlatformSystemTrayIcon* QXdgDesktopPortalTheme::createPlatformSystemTrayIcon() const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->createPlatformSystemTrayIcon(); } #endif -const QPalette *QFlatpakTheme::palette(Palette type) const +const QPalette *QXdgDesktopPortalTheme::palette(Palette type) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->palette(type); } -const QFont* QFlatpakTheme::font(Font type) const +const QFont* QXdgDesktopPortalTheme::font(Font type) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->font(type); } -QVariant QFlatpakTheme::themeHint(ThemeHint hint) const +QVariant QXdgDesktopPortalTheme::themeHint(ThemeHint hint) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->themeHint(hint); } -QPixmap QFlatpakTheme::standardPixmap(StandardPixmap sp, const QSizeF &size) const +QPixmap QXdgDesktopPortalTheme::standardPixmap(StandardPixmap sp, const QSizeF &size) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->standardPixmap(sp, size); } -QIcon QFlatpakTheme::fileIcon(const QFileInfo &fileInfo, +QIcon QXdgDesktopPortalTheme::fileIcon(const QFileInfo &fileInfo, QPlatformTheme::IconOptions iconOptions) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->fileIcon(fileInfo, iconOptions); } -QIconEngine * QFlatpakTheme::createIconEngine(const QString &iconName) const +QIconEngine * QXdgDesktopPortalTheme::createIconEngine(const QString &iconName) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->createIconEngine(iconName); } -QList<QKeySequence> QFlatpakTheme::keyBindings(QKeySequence::StandardKey key) const +QList<QKeySequence> QXdgDesktopPortalTheme::keyBindings(QKeySequence::StandardKey key) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->keyBindings(key); } -QString QFlatpakTheme::standardButtonText(int button) const +QString QXdgDesktopPortalTheme::standardButtonText(int button) const { - Q_D(const QFlatpakTheme); + Q_D(const QXdgDesktopPortalTheme); return d->baseTheme->standardButtonText(button); } diff --git a/src/plugins/platformthemes/flatpak/qflatpaktheme.h b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.h index 87f79a2395..b72e676419 100644 --- a/src/plugins/platformthemes/flatpak/qflatpaktheme.h +++ b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.h @@ -37,20 +37,20 @@ ** ****************************************************************************/ -#ifndef QFLATPAKTHEME_H -#define QFLATPAKTHEME_H +#ifndef QXDGDESKTOPPORTALTHEME_H +#define QXDGDESKTOPPORTALTHEME_H #include <qpa/qplatformtheme.h> QT_BEGIN_NAMESPACE -class QFlatpakThemePrivate; +class QXdgDesktopPortalThemePrivate; -class QFlatpakTheme : public QPlatformTheme +class QXdgDesktopPortalTheme : public QPlatformTheme { - Q_DECLARE_PRIVATE(QFlatpakTheme) + Q_DECLARE_PRIVATE(QXdgDesktopPortalTheme) public: - QFlatpakTheme(); + QXdgDesktopPortalTheme(); QPlatformMenuItem *createPlatformMenuItem() const override; QPlatformMenu *createPlatformMenu() const override; @@ -81,10 +81,10 @@ public: QString standardButtonText(int button) const override; private: - QScopedPointer<QFlatpakThemePrivate> d_ptr; - Q_DISABLE_COPY(QFlatpakTheme) + QScopedPointer<QXdgDesktopPortalThemePrivate> d_ptr; + Q_DISABLE_COPY(QXdgDesktopPortalTheme) }; QT_END_NAMESPACE -#endif // QFLATPAKTHEME_H +#endif // QXDGDESKTOPPORTALTHEME_H diff --git a/src/plugins/platformthemes/xdgdesktopportal/xdgdesktopportal.json b/src/plugins/platformthemes/xdgdesktopportal/xdgdesktopportal.json new file mode 100644 index 0000000000..c69062d9a1 --- /dev/null +++ b/src/plugins/platformthemes/xdgdesktopportal/xdgdesktopportal.json @@ -0,0 +1,3 @@ +{ + "Keys": [ "xdgdesktopportal", "flatpak", "snap" ] +} diff --git a/src/plugins/platformthemes/xdgdesktopportal/xdgdesktopportal.pro b/src/plugins/platformthemes/xdgdesktopportal/xdgdesktopportal.pro new file mode 100644 index 0000000000..0a71484cf9 --- /dev/null +++ b/src/plugins/platformthemes/xdgdesktopportal/xdgdesktopportal.pro @@ -0,0 +1,17 @@ +TARGET = qxdgdesktopportal + +PLUGIN_TYPE = platformthemes +PLUGIN_EXTENDS = - +PLUGIN_CLASS_NAME = QXdgDesktopPortalThemePlugin +load(qt_plugin) + +QT += core-private dbus gui-private theme_support-private + +HEADERS += \ + qxdgdesktopportaltheme.h \ + qxdgdesktopportalfiledialog_p.h + +SOURCES += \ + main.cpp \ + qxdgdesktopportaltheme.cpp \ + qxdgdesktopportalfiledialog.cpp |