comparison src/core/strings.cpp @ 64:fe719c109dbc

*: update 1. add media tracking ability, and it displays info on the `now playing` page 2. the `now playing` page now actually shows something 3. renamed every page class to be more accurate to what it is 4. ...
author Paper <mrpapersonic@gmail.com>
date Sun, 01 Oct 2023 23:15:43 -0400
parents 4c6dd5999b39
children 3364fadc8a36
comparison
equal deleted inserted replaced
63:3d2decf093bb 64:fe719c109dbc
1 /** 1 /**
2 * strings.cpp: Useful functions for manipulating strings 2 * strings.cpp: Useful functions for manipulating strings
3 **/ 3 **/
4 #include "core/strings.h" 4 #include "core/strings.h"
5 #include <QByteArray>
6 #include <QString>
5 #include <algorithm> 7 #include <algorithm>
6 #include <cctype> 8 #include <cctype>
7 #include <codecvt> 9 #include <codecvt>
8 #include <locale> 10 #include <locale>
9 #include <string> 11 #include <string>
60 std::string TextifySynopsis(const std::string& string) { 62 std::string TextifySynopsis(const std::string& string) {
61 return RemoveHtmlTags(SanitizeLineEndings(string)); 63 return RemoveHtmlTags(SanitizeLineEndings(string));
62 } 64 }
63 65
64 /* these functions suck for i18n!... 66 /* these functions suck for i18n!...
65 but we only use them with JSON 67 but we only use them with JSON
66 stuff anyway */ 68 stuff anyway */
67 std::string ToUpper(const std::string& string) { 69 std::string ToUpper(const std::string& string) {
68 std::string result(string); 70 std::string result(string);
69 std::transform(result.begin(), result.end(), result.begin(), [](unsigned char c) { return std::toupper(c); }); 71 std::transform(result.begin(), result.end(), result.begin(), [](unsigned char c) { return std::toupper(c); });
70 return result; 72 return result;
71 } 73 }
79 std::wstring ToWstring(const std::string& string) { 81 std::wstring ToWstring(const std::string& string) {
80 std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter; 82 std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter;
81 return converter.from_bytes(string); 83 return converter.from_bytes(string);
82 } 84 }
83 85
86 std::wstring ToWstring(const QString& string) {
87 std::wstring arr(string.size(), L'\0');
88 string.toWCharArray(&arr.front());
89 return arr;
90 }
91
84 std::string ToUtf8String(const std::wstring& wstring) { 92 std::string ToUtf8String(const std::wstring& wstring) {
85 std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter; 93 std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter;
86 return converter.to_bytes(wstring); 94 return converter.to_bytes(wstring);
87 } 95 }
88 96
97 std::string ToUtf8String(const QString& string) {
98 QByteArray ba = string.toUtf8();
99 return std::string(ba.data(), ba.size());
100 }
101
102 QString ToQString(const std::string& string) {
103 return QString::fromUtf8(string.c_str(), string.length());
104 }
105
106 QString ToQString(const std::wstring& wstring) {
107 return QString::fromWCharArray(wstring.c_str(), wstring.length());
108 }
109
89 } // namespace Strings 110 } // namespace Strings