Mercurial > minori
comparison src/core/strings.cc @ 230:2f5a9247e501
torrents: implement download button
erg
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Sat, 13 Jan 2024 09:42:02 -0500 |
| parents | 53211cb1e7f5 |
| children | 69f4768a820c |
comparison
equal
deleted
inserted
replaced
| 229:adc20fa321c1 | 230:2f5a9247e501 |
|---|---|
| 14 #include <codecvt> | 14 #include <codecvt> |
| 15 #include <locale> | 15 #include <locale> |
| 16 #include <string> | 16 #include <string> |
| 17 #include <vector> | 17 #include <vector> |
| 18 #include <unordered_map> | 18 #include <unordered_map> |
| 19 #include <iostream> | |
| 19 | 20 |
| 20 namespace Strings { | 21 namespace Strings { |
| 21 | 22 |
| 22 /* ew */ | 23 /* ew */ |
| 23 std::string Implode(const std::vector<std::string>& vector, const std::string& delimiter) { | 24 std::string Implode(const std::vector<std::string>& vector, const std::string& delimiter) { |
| 130 std::string ToLower(const std::string& string) { | 131 std::string ToLower(const std::string& string) { |
| 131 return ToUtf8String(session.config.locale.GetLocale().toLower(ToQString(string))); | 132 return ToUtf8String(session.config.locale.GetLocale().toLower(ToQString(string))); |
| 132 } | 133 } |
| 133 | 134 |
| 134 std::wstring ToWstring(const std::string& string) { | 135 std::wstring ToWstring(const std::string& string) { |
| 135 static std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter; | 136 static std::wstring_convert<std::codecvt_utf8<wchar_t>> converter("", L""); |
| 136 return converter.from_bytes(string); | 137 |
| 138 std::wstring wstr; | |
| 139 try { | |
| 140 wstr = converter.from_bytes(string); | |
| 141 } catch (std::range_error const& ex) { | |
| 142 std::cerr << "Failed to convert UTF-8 to wide string!" << std::endl; | |
| 143 } | |
| 144 return wstr; | |
| 137 } | 145 } |
| 138 | 146 |
| 139 std::wstring ToWstring(const QString& string) { | 147 std::wstring ToWstring(const QString& string) { |
| 140 std::wstring arr(string.size(), L'\0'); | 148 std::wstring arr(string.size(), L'\0'); |
| 141 string.toWCharArray(&arr.front()); | 149 string.toWCharArray(&arr.front()); |
| 142 return arr; | 150 return arr; |
| 143 } | 151 } |
| 144 | 152 |
| 145 std::string ToUtf8String(const std::wstring& wstring) { | 153 std::string ToUtf8String(const std::wstring& wstring) { |
| 146 static std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter; | 154 static std::wstring_convert<std::codecvt_utf8<wchar_t>> converter("", L""); |
| 147 return converter.to_bytes(wstring); | 155 return converter.to_bytes(wstring); |
| 148 } | 156 } |
| 149 | 157 |
| 150 std::string ToUtf8String(const QString& string) { | 158 std::string ToUtf8String(const QString& string) { |
| 151 const QByteArray ba = string.toUtf8(); | 159 const QByteArray ba = string.toUtf8(); |
