diff options
author | Thiago Macieira <[email protected]> | 2024-12-31 16:26:39 -0300 |
---|---|---|
committer | Thiago Macieira <[email protected]> | 2025-01-01 14:23:05 -0300 |
commit | db34e27f7f6ade54bfae59e5eed14c05ac508a49 (patch) | |
tree | 92ef99f5daa6d508644118fd8290bbbde363516b | |
parent | ce95c26034cc5b3ae8094c1521221e5b2f13ecfa (diff) |
Replace qgetenv() calls converted to QString with qEnvironmentVariable()
It's slightly more efficient.
Pick-to: 6.9
Change-Id: Id5ac04fc27eee108c8e5fffd786c3d5f793a0a9d
Reviewed-by: Ahmad Samir <[email protected]>
23 files changed, 75 insertions, 74 deletions
diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 86800492511..d7b0f21b866 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -1186,7 +1186,7 @@ QMessagePattern::QMessagePattern() #ifndef QT_BOOTSTRAPPED timer.start(); #endif - const QString envPattern = QString::fromLocal8Bit(qgetenv("QT_MESSAGE_PATTERN")); + const QString envPattern = qEnvironmentVariable("QT_MESSAGE_PATTERN"); if (envPattern.isEmpty()) { setPattern(QLatin1StringView(defaultPattern)); fromEnvironment = false; diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 60963a1c9c2..ec962eba365 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -1783,7 +1783,7 @@ bool QFileSystemEngine::setFileTime(int fd, const QDateTime &newDate, QFile::Fil QString QFileSystemEngine::homePath() { - QString home = QFile::decodeName(qgetenv("HOME")); + QString home = qEnvironmentVariable("HOME"); if (home.isEmpty()) home = rootPath(); return QDir::cleanPath(home); @@ -1799,7 +1799,7 @@ QString QFileSystemEngine::tempPath() #ifdef QT_UNIX_TEMP_PATH_OVERRIDE return QT_UNIX_TEMP_PATH_OVERRIDE ""_L1; #else - QString temp = QFile::decodeName(qgetenv("TMPDIR")); + QString temp = qEnvironmentVariable("TMPDIR"); if (temp.isEmpty()) { if (false) { #if defined(Q_OS_DARWIN) && !defined(QT_BOOTSTRAPPED) diff --git a/src/corelib/io/qloggingregistry.cpp b/src/corelib/io/qloggingregistry.cpp index ee7b7c56132..32e8fdec659 100644 --- a/src/corelib/io/qloggingregistry.cpp +++ b/src/corelib/io/qloggingregistry.cpp @@ -282,9 +282,8 @@ void QLoggingRegistry::initializeRules() } QList<QLoggingRule> er, qr, cr; // get rules from environment - const QByteArray rulesFilePath = qgetenv("QT_LOGGING_CONF"); - if (!rulesFilePath.isEmpty()) - er = loadRulesFromFile(QFile::decodeName(rulesFilePath)); + if (QString rulesFilePath = qEnvironmentVariable("QT_LOGGING_CONF"); !rulesFilePath.isEmpty()) + er = loadRulesFromFile(rulesFilePath); if (qtLoggingDebug()) debugMsg("Checking %s environment variable", "QT_LOGGING_RULES"); diff --git a/src/corelib/io/qstandardpaths.cpp b/src/corelib/io/qstandardpaths.cpp index 792721f50d4..c0c676d04f2 100644 --- a/src/corelib/io/qstandardpaths.cpp +++ b/src/corelib/io/qstandardpaths.cpp @@ -6,6 +6,7 @@ #include <qdir.h> #include <qfileinfo.h> +#include <qvarlengtharray.h> #ifndef QT_BOOTSTRAPPED #include <qobject.h> @@ -424,6 +425,28 @@ QStringList QStandardPaths::locateAll(StandardLocation type, const QString &file return result; } +static Q_DECL_COLD_FUNCTION QString fallbackPathVariable() +{ +#if defined(_PATH_DEFPATH) + // BSD API. + return QString::fromLocal8Bit(_PATH_DEFPATH); +#endif +#if defined(_CS_PATH) + // POSIX API. + size_t n = confstr(_CS_PATH, nullptr, 0); + if (n) { + // n includes the terminating null + QVarLengthArray<char, 1024> rawpath(n); + confstr(_CS_PATH, rawpath.data(), n); + return QString::fromLocal8Bit(QByteArrayView(rawpath.data(), n - 1)); + } +#else + // Windows SDK's execvpe() does not have a fallback, so we won't + // apply one either. +#endif + return {}; +} + #ifdef Q_OS_WIN static QStringList executableExtensions() { @@ -490,30 +513,16 @@ QString QStandardPaths::findExecutable(const QString &executableName, const QStr QStringList searchPaths = paths; if (paths.isEmpty()) { - QByteArray pEnv = qgetenv("PATH"); + QString pEnv = qEnvironmentVariable("PATH"); if (Q_UNLIKELY(pEnv.isNull())) { // Get a default path. POSIX.1 does not actually require this, but // most Unix libc fall back to confstr(_CS_PATH) if the PATH // environment variable isn't set. Let's try to do the same. -#if defined(_PATH_DEFPATH) - // BSD API. - pEnv = _PATH_DEFPATH; -#elif defined(_CS_PATH) - // POSIX API. - size_t n = confstr(_CS_PATH, nullptr, 0); - if (n) { - pEnv.resize(n); - // size()+1 is ok because QByteArray always has an extra NUL-terminator - confstr(_CS_PATH, pEnv.data(), pEnv.size() + 1); - } -#else - // Windows SDK's execvpe() does not have a fallback, so we won't - // apply one either. -#endif + pEnv = fallbackPathVariable(); } // Remove trailing slashes, which occur on Windows. - const QStringList rawPaths = QString::fromLocal8Bit(pEnv.constData()).split( + const QStringList rawPaths = pEnv.split( QDir::listSeparator(), Qt::SkipEmptyParts); searchPaths.reserve(rawPaths.size()); for (const QString &rawPath : rawPaths) { diff --git a/src/corelib/io/qstandardpaths_unix.cpp b/src/corelib/io/qstandardpaths_unix.cpp index e38f6708951..4fe8739bcc0 100644 --- a/src/corelib/io/qstandardpaths_unix.cpp +++ b/src/corelib/io/qstandardpaths_unix.cpp @@ -185,7 +185,7 @@ QString QStandardPaths::writableLocation(StandardLocation type) xdgCacheHome = QDir::homePath() + "/.qttest/cache"_L1; } else { // http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html - xdgCacheHome = QFile::decodeName(qgetenv("XDG_CACHE_HOME")); + xdgCacheHome = qEnvironmentVariable("XDG_CACHE_HOME"); if (!xdgCacheHome.startsWith(u'/')) xdgCacheHome.clear(); // spec says relative paths should be ignored @@ -204,7 +204,7 @@ QString QStandardPaths::writableLocation(StandardLocation type) xdgStateHome = QDir::homePath() + "/.qttest/state"_L1; } else { // http://standards.freedesktop.org/basedir-spec/basedir-spec-0.8.html - xdgStateHome = QFile::decodeName(qgetenv("XDG_STATE_HOME")); + xdgStateHome = qEnvironmentVariable("XDG_STATE_HOME"); if (!xdgStateHome.startsWith(u'/')) xdgStateHome.clear(); // spec says relative paths should be ignored @@ -223,7 +223,7 @@ QString QStandardPaths::writableLocation(StandardLocation type) if (isTestModeEnabled()) { xdgDataHome = QDir::homePath() + "/.qttest/share"_L1; } else { - xdgDataHome = QFile::decodeName(qgetenv("XDG_DATA_HOME")); + xdgDataHome = qEnvironmentVariable("XDG_DATA_HOME"); if (!xdgDataHome.startsWith(u'/')) xdgDataHome.clear(); // spec says relative paths should be ignored @@ -243,7 +243,7 @@ QString QStandardPaths::writableLocation(StandardLocation type) xdgConfigHome = QDir::homePath() + "/.qttest/config"_L1; } else { // http://standards.freedesktop.org/basedir-spec/latest/ - xdgConfigHome = QFile::decodeName(qgetenv("XDG_CONFIG_HOME")); + xdgConfigHome = qEnvironmentVariable("XDG_CONFIG_HOME"); if (!xdgConfigHome.startsWith(u'/')) xdgConfigHome.clear(); // spec says relative paths should be ignored @@ -256,7 +256,7 @@ QString QStandardPaths::writableLocation(StandardLocation type) } case RuntimeLocation: { - QString xdgRuntimeDir = QFile::decodeName(qgetenv("XDG_RUNTIME_DIR")); + QString xdgRuntimeDir = qEnvironmentVariable("XDG_RUNTIME_DIR"); if (!xdgRuntimeDir.startsWith(u'/')) xdgRuntimeDir.clear(); // spec says relative paths should be ignored @@ -285,7 +285,7 @@ QString QStandardPaths::writableLocation(StandardLocation type) #if QT_CONFIG(regularexpression) // http://www.freedesktop.org/wiki/Software/xdg-user-dirs - QString xdgConfigHome = QFile::decodeName(qgetenv("XDG_CONFIG_HOME")); + QString xdgConfigHome = qEnvironmentVariable("XDG_CONFIG_HOME"); if (!xdgConfigHome.startsWith(u'/')) xdgConfigHome.clear(); // spec says relative paths should be ignored @@ -390,7 +390,7 @@ static QStringList dirsList(const QString &xdgEnvVar) static QStringList xdgDataDirs() { // http://standards.freedesktop.org/basedir-spec/latest/ - QString xdgDataDirsEnv = QFile::decodeName(qgetenv("XDG_DATA_DIRS")); + QString xdgDataDirsEnv = qEnvironmentVariable("XDG_DATA_DIRS"); QStringList dirs = dirsList(xdgDataDirsEnv); if (dirs.isEmpty()) @@ -402,7 +402,7 @@ static QStringList xdgDataDirs() static QStringList xdgConfigDirs() { // http://standards.freedesktop.org/basedir-spec/latest/ - const QString xdgConfigDirs = QFile::decodeName(qgetenv("XDG_CONFIG_DIRS")); + const QString xdgConfigDirs = qEnvironmentVariable("XDG_CONFIG_DIRS"); QStringList dirs = dirsList(xdgConfigDirs); if (dirs.isEmpty()) diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index 006b5f2793a..999c65bb438 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -50,9 +50,8 @@ QIconLoader::QIconLoader() : static inline QString systemThemeName() { - const auto override = qgetenv("QT_QPA_SYSTEM_ICON_THEME"); - if (!override.isEmpty()) - return QString::fromLocal8Bit(override); + if (QString override = qEnvironmentVariable("QT_QPA_SYSTEM_ICON_THEME"); !override.isEmpty()) + return override; if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) { const QVariant themeHint = theme->themeHint(QPlatformTheme::SystemIconThemeName); if (themeHint.isValid()) diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index dcdff702c44..0ca39d72451 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -1499,7 +1499,7 @@ void QGuiApplicationPrivate::createPlatformIntegration() QHighDpiScaling::initHighDpiScaling(); // Load the platform integration - QString platformPluginPath = QString::fromLocal8Bit(qgetenv("QT_QPA_PLATFORM_PLUGIN_PATH")); + QString platformPluginPath = qEnvironmentVariable("QT_QPA_PLATFORM_PLUGIN_PATH"); QByteArray platformName; diff --git a/src/gui/platform/unix/qgenericunixservices.cpp b/src/gui/platform/unix/qgenericunixservices.cpp index 32487b16511..a36976a6937 100644 --- a/src/gui/platform/unix/qgenericunixservices.cpp +++ b/src/gui/platform/unix/qgenericunixservices.cpp @@ -105,10 +105,10 @@ static inline bool detectWebBrowser(const QByteArray &desktop, return true; if (checkBrowserVariable) { - QByteArray browserVariable = qgetenv("DEFAULT_BROWSER"); + QString browserVariable = qEnvironmentVariable("DEFAULT_BROWSER"); if (browserVariable.isEmpty()) - browserVariable = qgetenv("BROWSER"); - if (!browserVariable.isEmpty() && checkExecutable(QString::fromLocal8Bit(browserVariable), browser)) + browserVariable = qEnvironmentVariable("BROWSER"); + if (!browserVariable.isEmpty() && checkExecutable(browserVariable, browser)) return true; } diff --git a/src/gui/platform/unix/qgenericunixthemes.cpp b/src/gui/platform/unix/qgenericunixthemes.cpp index cd916bcf7a2..e2037639a4d 100644 --- a/src/gui/platform/unix/qgenericunixthemes.cpp +++ b/src/gui/platform/unix/qgenericunixthemes.cpp @@ -1204,11 +1204,11 @@ QPlatformTheme *QKdeTheme::createKdeTheme() // - fallback to /etc/kde<version> QStringList kdeDirs; - const QString kdeHomePathVar = QFile::decodeName(qgetenv("KDEHOME")); + const QString kdeHomePathVar = qEnvironmentVariable("KDEHOME"); if (!kdeHomePathVar.isEmpty()) kdeDirs += kdeHomePathVar; - const QString kdeDirsVar = QFile::decodeName(qgetenv("KDEDIRS")); + const QString kdeDirsVar = qEnvironmentVariable("KDEDIRS"); if (!kdeDirsVar.isEmpty()) kdeDirs += kdeDirsVar.split(u':', Qt::SkipEmptyParts); diff --git a/src/gui/text/qplatformfontdatabase.cpp b/src/gui/text/qplatformfontdatabase.cpp index 3d3f3c30985..381431ac4e9 100644 --- a/src/gui/text/qplatformfontdatabase.cpp +++ b/src/gui/text/qplatformfontdatabase.cpp @@ -360,7 +360,7 @@ void QPlatformFontDatabase::releaseHandle(void *handle) */ QString QPlatformFontDatabase::fontDir() const { - QString fontpath = QString::fromLocal8Bit(qgetenv("QT_QPA_FONTDIR")); + QString fontpath = qEnvironmentVariable("QT_QPA_FONTDIR"); if (fontpath.isEmpty()) fontpath = QLibraryInfo::path(QLibraryInfo::LibrariesPath) + "/fonts"_L1; diff --git a/src/gui/vulkan/qbasicvulkanplatforminstance.cpp b/src/gui/vulkan/qbasicvulkanplatforminstance.cpp index b6a820199c0..47d9a7e962f 100644 --- a/src/gui/vulkan/qbasicvulkanplatforminstance.cpp +++ b/src/gui/vulkan/qbasicvulkanplatforminstance.cpp @@ -51,7 +51,7 @@ void QBasicPlatformVulkanInstance::loadVulkanLibrary(const QString &defaultLibra // embedded systems without a Vulkan loader and possibly with custom vendor // library names. if (qEnvironmentVariableIsSet("QT_VULKAN_LIB")) - loadList.append({ QString::fromUtf8(qgetenv("QT_VULKAN_LIB")), -1 }); + loadList.append({ qEnvironmentVariable("QT_VULKAN_LIB"), -1 }); // Then what the platform specified. On Linux the version is likely 1, thus // preferring libvulkan.so.1 over libvulkan.so. diff --git a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp index 8fcf01ae902..da82cf12b7d 100644 --- a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp +++ b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp @@ -22,7 +22,7 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString & Q_UNUSED(key); - QString spec = QString::fromLocal8Bit(qgetenv("QT_QPA_EVDEV_KEYBOARD_PARAMETERS")); + QString spec = qEnvironmentVariable("QT_QPA_EVDEV_KEYBOARD_PARAMETERS"); if (spec.isEmpty()) spec = specification; diff --git a/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp b/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp index 83176a17931..a9619a53c6b 100644 --- a/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp +++ b/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp @@ -24,7 +24,7 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif { Q_UNUSED(key); - QString spec = QString::fromLocal8Bit(qgetenv("QT_QPA_EVDEV_MOUSE_PARAMETERS")); + QString spec = qEnvironmentVariable("QT_QPA_EVDEV_MOUSE_PARAMETERS"); if (spec.isEmpty()) spec = specification; diff --git a/src/platformsupport/input/evdevtablet/qevdevtabletmanager.cpp b/src/platformsupport/input/evdevtablet/qevdevtabletmanager.cpp index d013ef04d50..6395e57c127 100644 --- a/src/platformsupport/input/evdevtablet/qevdevtabletmanager.cpp +++ b/src/platformsupport/input/evdevtablet/qevdevtabletmanager.cpp @@ -23,7 +23,7 @@ QEvdevTabletManager::QEvdevTabletManager(const QString &key, const QString &spec if (qEnvironmentVariableIsSet("QT_QPA_EVDEV_DEBUG")) const_cast<QLoggingCategory &>(qLcEvdevTablet()).setEnabled(QtDebugMsg, true); - QString spec = QString::fromLocal8Bit(qgetenv("QT_QPA_EVDEV_TABLET_PARAMETERS")); + QString spec = qEnvironmentVariable("QT_QPA_EVDEV_TABLET_PARAMETERS"); if (spec.isEmpty()) spec = specification; diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchmanager.cpp b/src/platformsupport/input/evdevtouch/qevdevtouchmanager.cpp index bd9a3cc6767..dbfe1bad080 100644 --- a/src/platformsupport/input/evdevtouch/qevdevtouchmanager.cpp +++ b/src/platformsupport/input/evdevtouch/qevdevtouchmanager.cpp @@ -23,7 +23,7 @@ QEvdevTouchManager::QEvdevTouchManager(const QString &key, const QString &specif if (qEnvironmentVariableIsSet("QT_QPA_EVDEV_DEBUG")) const_cast<QLoggingCategory &>(qLcEvdevTouch()).setEnabled(QtDebugMsg, true); - QString spec = QString::fromLocal8Bit(qgetenv("QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS")); + QString spec = qEnvironmentVariable("QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS"); if (spec.isEmpty()) spec = specification; diff --git a/src/platformsupport/input/shared/qoutputmapping.cpp b/src/platformsupport/input/shared/qoutputmapping.cpp index c8683958d3c..3b9f6208c42 100644 --- a/src/platformsupport/input/shared/qoutputmapping.cpp +++ b/src/platformsupport/input/shared/qoutputmapping.cpp @@ -52,19 +52,19 @@ void QOutputMapping::set(QOutputMapping *mapping) bool QDefaultOutputMapping::load() { - static QByteArray configFile = qgetenv("QT_QPA_EGLFS_KMS_CONFIG"); + static QString configFile = qEnvironmentVariable("QT_QPA_EGLFS_KMS_CONFIG"); if (configFile.isEmpty()) return false; - QFile file(QString::fromUtf8(configFile)); + QFile file(configFile); if (!file.open(QFile::ReadOnly)) { - qWarning("touch input support: Failed to open %s", configFile.constData()); + qWarning("touch input support: Failed to open %ls", qUtf16Printable(configFile)); return false; } const QJsonDocument doc = QJsonDocument::fromJson(file.readAll()); if (!doc.isObject()) { - qWarning("touch input support: Failed to parse %s", configFile.constData()); + qWarning("touch input support: Failed to parse %ls", qUtf16Printable(configFile)); return false; } diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp index c38cb289c19..d59a6689592 100644 --- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp +++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp @@ -731,11 +731,9 @@ QString QIBusPlatformInputContextPrivate::getSocketPath() QByteArray displayNumber = "0"; bool isWayland = false; - if (qEnvironmentVariableIsSet("IBUS_ADDRESS_FILE")) { - QByteArray path = qgetenv("IBUS_ADDRESS_FILE"); - return QString::fromLocal8Bit(path); - } else if (qEnvironmentVariableIsSet("WAYLAND_DISPLAY")) { - display = qgetenv("WAYLAND_DISPLAY"); + if (QString path = qEnvironmentVariable("IBUS_ADDRESS_FILE"); !path.isNull()) { + return path; + } else if (display = qgetenv("WAYLAND_DISPLAY"); !display.isEmpty()) { isWayland = true; } else { display = qgetenv("DISPLAY"); diff --git a/src/plugins/platforms/eglfs/api/qeglfshooks.cpp b/src/plugins/platforms/eglfs/api/qeglfshooks.cpp index 6918d73ffeb..99839fce86b 100644 --- a/src/plugins/platforms/eglfs/api/qeglfshooks.cpp +++ b/src/plugins/platforms/eglfs/api/qeglfshooks.cpp @@ -50,29 +50,25 @@ DeviceIntegration::DeviceIntegration() } } - QByteArray requested; - // The environment variable can override everything. - if (qEnvironmentVariableIsSet("QT_QPA_EGLFS_INTEGRATION")) { - requested = qgetenv("QT_QPA_EGLFS_INTEGRATION"); - } else { + QString requested = qEnvironmentVariable("QT_QPA_EGLFS_INTEGRATION"); + if (requested.isNull()) { // Device-specific makespecs may define a preferred plugin. #ifdef EGLFS_PREFERRED_PLUGIN #define DEFAULT_PLUGIN EGLFS_PREFERRED_PLUGIN #define STR(s) #s #define STRQ(s) STR(s) - requested = STRQ(DEFAULT_PLUGIN); + requested = QStringLiteral(STRQ(DEFAULT_PLUGIN)); #endif } // Treat "none" as special. There has to be a way to indicate // that plugins must be ignored when the device is known to be // functional with the default, non-specialized integration. - if (requested != QByteArrayLiteral("none")) { + if (requested != QStringLiteral("none")) { if (!requested.isEmpty()) { - QString reqStr = QString::fromLocal8Bit(requested); - pluginKeys.removeOne(reqStr); - pluginKeys.prepend(reqStr); + pluginKeys.removeOne(requested); + pluginKeys.prepend(requested); } qCDebug(qLcEglDevDebug) << "EGL device integration plugin keys (sorted):" << pluginKeys; while (!m_integration && !pluginKeys.isEmpty()) { diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index fc5a7e55c50..2c28de316f7 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -531,7 +531,7 @@ QByteArray QXcbIntegration::wmClass() const if (m_instanceName) name = QString::fromLocal8Bit(m_instanceName); if (name.isEmpty() && qEnvironmentVariableIsSet(resourceNameVar)) - name = QString::fromLocal8Bit(qgetenv(resourceNameVar)); + name = qEnvironmentVariable(resourceNameVar); if (name.isEmpty()) name = argv0BaseName(); diff --git a/src/printsupport/kernel/qplatformprintplugin.cpp b/src/printsupport/kernel/qplatformprintplugin.cpp index c48e5f65bfc..37222eb039d 100644 --- a/src/printsupport/kernel/qplatformprintplugin.cpp +++ b/src/printsupport/kernel/qplatformprintplugin.cpp @@ -54,7 +54,7 @@ QPlatformPrinterSupport *QPlatformPrinterSupportPlugin::get() const QMultiMap<int, QString> keyMap = loader()->keyMap(); QMultiMap<int, QString>::const_iterator it = keyMap.cbegin(); if (!qEnvironmentVariableIsEmpty("QT_PRINTER_MODULE")) { - QString module = QString::fromLocal8Bit(qgetenv("QT_PRINTER_MODULE")); + QString module = qEnvironmentVariable("QT_PRINTER_MODULE"); QMultiMap<int, QString>::const_iterator it2 = std::find_if(keyMap.cbegin(), keyMap.cend(), [module](const QString &value){ return value == module; }); if (it2 == keyMap.cend()) qWarning() << "Unable to load printer plugin" << module; diff --git a/src/tools/uic/main.cpp b/src/tools/uic/main.cpp index d46b788419c..9f995a85d40 100644 --- a/src/tools/uic/main.cpp +++ b/src/tools/uic/main.cpp @@ -187,7 +187,7 @@ int runUic(int argc, char *argv[]) if (parser.isSet(pythonPathOption)) pythonPaths = parser.value(pythonPathOption); else if (qEnvironmentVariableIsSet(pythonPathVar)) - pythonPaths = QString::fromUtf8(qgetenv(pythonPathVar)); + pythonPaths = qEnvironmentVariable(pythonPathVar); driver.option().pythonRoot = pythonRoot(pythonPaths, inputFile); } diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index d414cbf841f..d52d678243e 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -3995,11 +3995,11 @@ QString QFileDialogPrivate::getEnvironmentVariable(const QString &string) { #ifdef Q_OS_UNIX if (string.size() > 1 && string.startsWith(u'$')) { - return QString::fromLocal8Bit(qgetenv(QStringView{string}.mid(1).toLatin1().constData())); + return qEnvironmentVariable(QStringView{string}.mid(1).toLatin1().constData()); } #else if (string.size() > 2 && string.startsWith(u'%') && string.endsWith(u'%')) { - return QString::fromLocal8Bit(qgetenv(QStringView{string}.mid(1, string.size() - 2).toLatin1().constData())); + return qEnvironmentVariable(QStringView{string}.mid(1, string.size() - 2).toLatin1().constData()); } #endif return string; diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 37be88927e6..95e1761d3e9 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -363,8 +363,8 @@ QWidget *qt_desktopWidget = nullptr; // root window widgets */ void QApplicationPrivate::process_cmdline() { - if (styleOverride.isEmpty() && qEnvironmentVariableIsSet("QT_STYLE_OVERRIDE")) - styleOverride = QString::fromLocal8Bit(qgetenv("QT_STYLE_OVERRIDE")); + if (styleOverride.isEmpty()) + styleOverride = qEnvironmentVariable("QT_STYLE_OVERRIDE"); // process platform-indep command line if (qt_is_tty_app || !argc) @@ -1411,8 +1411,8 @@ QString QApplicationPrivate::desktopStyleKey() { #if defined(QT_BUILD_INTERNAL) // Allow auto-tests to override the desktop style - if (qEnvironmentVariableIsSet("QT_DESKTOP_STYLE_KEY")) - return QString::fromLocal8Bit(qgetenv("QT_DESKTOP_STYLE_KEY")); + if (QString env = qEnvironmentVariable("QT_DESKTOP_STYLE_KEY"); !env.isNull()) + return env; #endif // The platform theme might return a style that is not available, find |