Browse Source

frontend_common: Add special config case for unmapped windows network drives

Normally we save paths with '/' as the delimiter for each segment but when you manually select a network drive instead of using a mapped location, this would break. This ensures that if the read filesystem location starts with '//', we keep that pattern.
pull/15/merge
t895 2 years ago
parent
commit
f3fe362c93
  1. 10
      src/frontend_common/config.cpp

10
src/frontend_common/config.cpp

@ -856,7 +856,15 @@ std::string Config::AdjustKey(const std::string& key) {
std::string Config::AdjustOutputString(const std::string& string) { std::string Config::AdjustOutputString(const std::string& string) {
std::string adjusted_string(string); std::string adjusted_string(string);
boost::replace_all(adjusted_string, "\\", "/"); boost::replace_all(adjusted_string, "\\", "/");
boost::replace_all(adjusted_string, "//", "/");
// Windows requires that two forward slashes are used at the start of a path for unmapped
// network drives so we have to watch for that here
if (string.substr(0, 2) == "//") {
boost::replace_all(adjusted_string, "//", "/");
adjusted_string.insert(0, "/");
} else {
boost::replace_all(adjusted_string, "//", "/");
}
// Needed for backwards compatibility with QSettings deserialization // Needed for backwards compatibility with QSettings deserialization
for (const auto& special_character : special_characters) { for (const auto& special_character : special_characters) {

Loading…
Cancel
Save