diff --git a/serenity/qserenitystring.cpp b/serenity/qserenitystring.cpp index 2cc5425..e48707d 100644 --- a/serenity/qserenitystring.cpp +++ b/serenity/qserenitystring.cpp @@ -6,12 +6,16 @@ #include "qserenitystring.h" -#include +#include +#include +#include -AK::String QSerenityString::fromQString(const QString &str) { - return AK::String(str.toStdString().c_str()); +AK::ErrorOr QSerenityString::fromQString(const QString &str) { + const auto utf8_string = str.toUtf8(); + return AK::String::from_utf8(AK::StringView(utf8_string.data(), utf8_string.size())); } QString QSerenityString::toQString(const AK::String &v) { - return QString(v.characters()); + const auto bytes = v.bytes(); + return QString::fromUtf8(reinterpret_cast(bytes.data()), bytes.size()); } diff --git a/serenity/qserenitystring.h b/serenity/qserenitystring.h index 3c617ed..697c099 100644 --- a/serenity/qserenitystring.h +++ b/serenity/qserenitystring.h @@ -8,15 +8,11 @@ #define AK_DONT_REPLACE_STD -#include -#include -#include -#include +#include #include -class QSerenityString +namespace QSerenityString { -public: - static AK::String fromQString(const QString& str); - static QString toQString(const AK::String& v); + AK::ErrorOr fromQString(const QString& str); + QString toQString(const AK::String& v); }; diff --git a/serenity/qserenitywindow.cpp b/serenity/qserenitywindow.cpp index 3bc0175..66fa76a 100644 --- a/serenity/qserenitywindow.cpp +++ b/serenity/qserenitywindow.cpp @@ -5,13 +5,12 @@ */ #include "qserenitywindow.h" - +#include "qserenitystring.h" +#include +#include #include - #include -#include - static QMap keyMap { { KeyCode::Key_Invalid, 0 }, { KeyCode::Key_Escape, Qt::Key_Escape }, @@ -134,7 +133,8 @@ QSerenityWindow::QSerenityWindow(QWindow *window) m_window->set_double_buffering_enabled(false); m_window->set_main_widget(m_proxyWidget); - m_window->set_title(QSerenityString::fromQString(window->title())); + const auto title = MUST(QSerenityString::fromQString(window->title())); + m_window->set_title(title.to_deprecated_string()); m_window->show(); std::cerr << "Native window set up\n"; @@ -142,7 +142,8 @@ QSerenityWindow::QSerenityWindow(QWindow *window) void QSerenityWindow::setWindowTitle(const QString &text) { - m_window->set_title(QSerenityString::fromQString(text)); + const auto title = MUST(QSerenityString::fromQString(text)); + m_window->set_title(title.to_deprecated_string()); } QRect QSerenityWindow::geometry() const {