From 94263cc7a09e44e33453ba0f081068c44d535080 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Sun, 1 Sep 2024 17:12:16 +0200 Subject: [PATCH] Work around crash in std::filesystem due to unexpected char encoding --- lib/advanced-scene-switcher.cpp | 5 ++--- lib/utils/file-selection.cpp | 5 ++--- plugins/video/paramerter-wrappers.cpp | 12 +++++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/advanced-scene-switcher.cpp b/lib/advanced-scene-switcher.cpp index 3b8ccc38..74278ffb 100644 --- a/lib/advanced-scene-switcher.cpp +++ b/lib/advanced-scene-switcher.cpp @@ -15,7 +15,6 @@ #include "utility.hpp" #include "version.h" -#include #include #include #include @@ -85,8 +84,8 @@ static void DisplayMissingDataDirWarning() "Please check installation instructions!\n\n" "Data most likely expected at:\n\n"; #ifdef _WIN32 - msg += QString::fromStdString( - (std::filesystem::current_path().string())); + + msg += QDir::currentPath(); msg += "/"; #endif msg += obs_get_module_data_path(obs_current_module()); diff --git a/lib/utils/file-selection.cpp b/lib/utils/file-selection.cpp index 123c71e1..ba88430c 100644 --- a/lib/utils/file-selection.cpp +++ b/lib/utils/file-selection.cpp @@ -4,7 +4,6 @@ #include #include #include -#include namespace advss { @@ -38,8 +37,8 @@ void FileSelection::SetPath(const QString &path) QString FileSelection::ValidPathOrDesktop(const QString &path) { - if (std::filesystem::exists( - std::filesystem::path(path.toStdString()))) { + QFileInfo fileInfo(path); + if (fileInfo.isFile()) { return path; } return QStandardPaths::writableLocation( diff --git a/plugins/video/paramerter-wrappers.cpp b/plugins/video/paramerter-wrappers.cpp index d99fb9d4..fd0e9361 100644 --- a/plugins/video/paramerter-wrappers.cpp +++ b/plugins/video/paramerter-wrappers.cpp @@ -1,6 +1,6 @@ #include "paramerter-wrappers.hpp" -#include +#include #include namespace advss { @@ -321,10 +321,12 @@ void OCRParameters::SetPageMode(tesseract::PageSegMode mode) bool OCRParameters::SetLanguageCode(const std::string &value) { - std::string dataPath = obs_get_module_data_path(obs_current_module()) + - std::string("/res/ocr") + "/" + value + - ".traineddata"; - if (!std::filesystem::exists(dataPath)) { + const auto dataPath = + QString(obs_get_module_data_path(obs_current_module())) + + QString("/res/ocr") + "/" + QString::fromStdString(value) + + ".traineddata"; + QFileInfo fileInfo(dataPath); + if (!fileInfo.exists(dataPath)) { return false; } Setup();