Move the excluding portal checks to UseXDGDesktopPortal

This commit is contained in:
Ilya Fedin 2020-11-06 11:44:21 +04:00 committed by John Preston
parent f521275acc
commit 6c023084d9

View file

@ -657,12 +657,19 @@ bool IsXDGDesktopPortalPresent() {
bool UseXDGDesktopPortal() { bool UseXDGDesktopPortal() {
#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION #ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION
static const auto Result = [&] { static const auto Result = [&] {
const auto onlyIn = AreQtPluginsBundled()
// it is handled by Qt for flatpak and snap
&& !InFlatpak()
&& !InSnap();
const auto envVar = qEnvironmentVariableIsSet("TDESKTOP_USE_PORTAL"); const auto envVar = qEnvironmentVariableIsSet("TDESKTOP_USE_PORTAL");
const auto portalPresent = IsXDGDesktopPortalPresent(); const auto portalPresent = IsXDGDesktopPortalPresent();
const auto neededForKde = DesktopEnvironment::IsKDE() const auto neededForKde = DesktopEnvironment::IsKDE()
&& IsXDGDesktopPortalKDEPresent(); && IsXDGDesktopPortalKDEPresent();
return (neededForKde || envVar) && portalPresent; return onlyIn
&& portalPresent
&& (neededForKde || envVar);
}(); }();
return Result; return Result;
@ -1086,24 +1093,19 @@ void start() {
qputenv("QT_WAYLAND_DECORATION", "material"); qputenv("QT_WAYLAND_DECORATION", "material");
} }
if (AreQtPluginsBundled()
// it is handled by Qt for flatpak and snap
&& !InFlatpak()
&& !InSnap()) {
LOG(("Checking for XDG Desktop Portal..."));
// this can give us a chance to use // this can give us a chance to use
// a proper file dialog for current session // a proper file dialog for current session
DEBUG_LOG(("Checking for XDG Desktop Portal..."));
if (IsXDGDesktopPortalPresent()) { if (IsXDGDesktopPortalPresent()) {
LOG(("XDG Desktop Portal is present!")); DEBUG_LOG(("XDG Desktop Portal is present!"));
if (UseXDGDesktopPortal()) { if (UseXDGDesktopPortal()) {
LOG(("Using XDG Desktop Portal.")); LOG(("Using XDG Desktop Portal."));
qputenv("QT_QPA_PLATFORMTHEME", "xdgdesktopportal"); qputenv("QT_QPA_PLATFORMTHEME", "xdgdesktopportal");
} else { } else {
LOG(("Not using XDG Desktop Portal.")); DEBUG_LOG(("Not using XDG Desktop Portal."));
} }
} else { } else {
LOG(("XDG Desktop Portal is not present :(")); DEBUG_LOG(("XDG Desktop Portal is not present :("));
}
} }
#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION #ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION