diff --git a/src/common/provider/ScaledSizeProvider.cpp b/src/common/provider/ScaledSizeProvider.cpp index cb2a1631..1df26365 100644 --- a/src/common/provider/ScaledSizeProvider.cpp +++ b/src/common/provider/ScaledSizeProvider.cpp @@ -55,21 +55,24 @@ qreal ScaledSizeProvider::scaleFactor() qreal ScaledSizeProvider::getScaleFactor() { #if defined(__linux__) - DesktopEnvironmentChecker desktopEnvironmentChecker; - auto environment = desktopEnvironmentChecker.getDesktopEnvironment(); - - if (environment == DesktopEnvironmentType::Gnome) { + if(isGnomeEnvironment()) { auto screen = QApplication::primaryScreen(); auto logicalDotsPerInch = (int) screen->logicalDotsPerInch(); auto physicalDotsPerInch = (int) screen->physicalDotsPerInch(); return (qreal)logicalDotsPerInch / (qreal)physicalDotsPerInch; - } else if (environment == DesktopEnvironmentType::Kde) { - auto screen = QApplication::primaryScreen(); - return screen->devicePixelRatio(); } #endif return 1; } +#if defined(__linux__) +bool ScaledSizeProvider::isGnomeEnvironment() +{ + auto currentDesktop = QString(qgetenv("XDG_CURRENT_DESKTOP")); + return currentDesktop.contains(QLatin1String("gnome"), Qt::CaseInsensitive) + || currentDesktop.contains(QLatin1String("unity"), Qt::CaseInsensitive); +} +#endif + } // namespace kImageAnnotator diff --git a/src/common/provider/ScaledSizeProvider.h b/src/common/provider/ScaledSizeProvider.h index e66f58a1..bb9c6ce4 100644 --- a/src/common/provider/ScaledSizeProvider.h +++ b/src/common/provider/ScaledSizeProvider.h @@ -46,6 +46,10 @@ class ScaledSizeProvider static qreal scaleFactor(); static qreal getScaleFactor(); +#if defined(__linux__) + static bool isGnomeEnvironment(); +#endif + ScaledSizeProvider() = default; ~ScaledSizeProvider() = default; };