1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-19 20:17:40 +00:00

Userland: Store MIME keys as String in Core::MimeData

This commit is contained in:
Karol Kosek 2023-08-21 17:06:49 +02:00 committed by Sam Atkins
parent 4f638d3af2
commit 2f35348104
13 changed files with 22 additions and 22 deletions

View file

@ -157,7 +157,7 @@ RefPtr<Core::MimeData> SheetModel::mime_data(const GUI::ModelSelection& selectio
auto new_data = DeprecatedString::formatted("{}\n{}", auto new_data = DeprecatedString::formatted("{}\n{}",
cursor_position.to_url(m_sheet).to_deprecated_string(), cursor_position.to_url(m_sheet).to_deprecated_string(),
StringView(mime_data_buffer)); StringView(mime_data_buffer));
mime_data->set_data("text/x-spreadsheet-data", new_data.to_byte_buffer()); mime_data->set_data("text/x-spreadsheet-data"_string, new_data.to_byte_buffer());
return mime_data; return mime_data;
} }

View file

@ -16,13 +16,13 @@ Vector<DeprecatedString> MimeData::formats() const
Vector<DeprecatedString> mime_types; Vector<DeprecatedString> mime_types;
mime_types.ensure_capacity(m_data.size()); mime_types.ensure_capacity(m_data.size());
for (auto& it : m_data) for (auto& it : m_data)
mime_types.unchecked_append(it.key); mime_types.unchecked_append(it.key.to_deprecated_string());
return mime_types; return mime_types;
} }
Vector<URL> MimeData::urls() const Vector<URL> MimeData::urls() const
{ {
auto it = m_data.find("text/uri-list"); auto it = m_data.find("text/uri-list"sv);
if (it == m_data.end()) if (it == m_data.end())
return {}; return {};
Vector<URL> urls; Vector<URL> urls;
@ -39,19 +39,19 @@ ErrorOr<void> MimeData::set_urls(Vector<URL> const& urls)
TRY(builder.try_append(url.to_deprecated_string())); TRY(builder.try_append(url.to_deprecated_string()));
TRY(builder.try_append('\n')); TRY(builder.try_append('\n'));
} }
set_data("text/uri-list", TRY(builder.to_byte_buffer())); set_data("text/uri-list"_string, TRY(builder.to_byte_buffer()));
return {}; return {};
} }
DeprecatedString MimeData::text() const DeprecatedString MimeData::text() const
{ {
return DeprecatedString::copy(m_data.get("text/plain").value_or({})); return DeprecatedString::copy(m_data.get("text/plain"sv).value_or({}));
} }
void MimeData::set_text(DeprecatedString const& text) void MimeData::set_text(DeprecatedString const& text)
{ {
set_data("text/plain", text.to_byte_buffer()); set_data("text/plain"_string, text.to_byte_buffer());
} }
// FIXME: Share this, TextEditor and HackStudio language detection somehow. // FIXME: Share this, TextEditor and HackStudio language detection somehow.

View file

@ -21,7 +21,7 @@ public:
virtual ~MimeData() = default; virtual ~MimeData() = default;
ByteBuffer data(StringView mime_type) const { return m_data.get(mime_type).value_or({}); } ByteBuffer data(StringView mime_type) const { return m_data.get(mime_type).value_or({}); }
void set_data(DeprecatedString const& mime_type, ByteBuffer&& data) { m_data.set(mime_type, move(data)); } void set_data(String const& mime_type, ByteBuffer&& data) { m_data.set(mime_type, move(data)); }
bool has_format(StringView mime_type) const { return m_data.contains(mime_type); } bool has_format(StringView mime_type) const { return m_data.contains(mime_type); }
Vector<DeprecatedString> formats() const; Vector<DeprecatedString> formats() const;
@ -36,16 +36,16 @@ public:
Vector<URL> urls() const; Vector<URL> urls() const;
ErrorOr<void> set_urls(Vector<URL> const&); ErrorOr<void> set_urls(Vector<URL> const&);
HashMap<DeprecatedString, ByteBuffer> const& all_data() const { return m_data; } HashMap<String, ByteBuffer> const& all_data() const { return m_data; }
private: private:
MimeData() = default; MimeData() = default;
explicit MimeData(HashMap<DeprecatedString, ByteBuffer> const& data) explicit MimeData(HashMap<String, ByteBuffer> const& data)
: m_data(data.clone().release_value_but_fixme_should_propagate_errors()) : m_data(data.clone().release_value_but_fixme_should_propagate_errors())
{ {
} }
HashMap<DeprecatedString, ByteBuffer> m_data; HashMap<String, ByteBuffer> m_data;
}; };
StringView guess_mime_type_based_on_filename(StringView); StringView guess_mime_type_based_on_filename(StringView);

View file

@ -349,7 +349,7 @@ void ConnectionToWindowServer::applet_area_rect_changed(Gfx::IntRect const& rect
}); });
} }
void ConnectionToWindowServer::drag_dropped(i32 window_id, Gfx::IntPoint mouse_position, DeprecatedString const& text, HashMap<DeprecatedString, ByteBuffer> const& mime_data) void ConnectionToWindowServer::drag_dropped(i32 window_id, Gfx::IntPoint mouse_position, DeprecatedString const& text, HashMap<String, ByteBuffer> const& mime_data)
{ {
if (auto* window = Window::from_window_id(window_id)) { if (auto* window = Window::from_window_id(window_id)) {
auto mime_data_obj = Core::MimeData::construct(mime_data); auto mime_data_obj = Core::MimeData::construct(mime_data);

View file

@ -48,7 +48,7 @@ private:
virtual void menu_visibility_did_change(i32, bool) override; virtual void menu_visibility_did_change(i32, bool) override;
virtual void screen_rects_changed(Vector<Gfx::IntRect> const&, u32, u32, u32) override; virtual void screen_rects_changed(Vector<Gfx::IntRect> const&, u32, u32, u32) override;
virtual void applet_area_rect_changed(Gfx::IntRect const&) override; virtual void applet_area_rect_changed(Gfx::IntRect const&) override;
virtual void drag_dropped(i32, Gfx::IntPoint, DeprecatedString const&, HashMap<DeprecatedString, ByteBuffer> const&) override; virtual void drag_dropped(i32, Gfx::IntPoint, DeprecatedString const&, HashMap<String, ByteBuffer> const&) override;
virtual void drag_accepted() override; virtual void drag_accepted() override;
virtual void drag_cancelled() override; virtual void drag_cancelled() override;
virtual void update_system_theme(Core::AnonymousBuffer const&) override; virtual void update_system_theme(Core::AnonymousBuffer const&) override;

View file

@ -84,9 +84,9 @@ void DragOperation::set_bitmap(Gfx::Bitmap const* bitmap)
if (!m_mime_data) if (!m_mime_data)
m_mime_data = Core::MimeData::construct(); m_mime_data = Core::MimeData::construct();
if (bitmap) if (bitmap)
m_mime_data->set_data("image/x-raw-bitmap", bitmap->serialize_to_byte_buffer().release_value_but_fixme_should_propagate_errors()); m_mime_data->set_data("image/x-raw-bitmap"_string, bitmap->serialize_to_byte_buffer().release_value_but_fixme_should_propagate_errors());
} }
void DragOperation::set_data(DeprecatedString const& data_type, DeprecatedString const& data) void DragOperation::set_data(String const& data_type, DeprecatedString const& data)
{ {
if (!m_mime_data) if (!m_mime_data)
m_mime_data = Core::MimeData::construct(); m_mime_data = Core::MimeData::construct();

View file

@ -29,7 +29,7 @@ public:
void set_mime_data(RefPtr<Core::MimeData> mime_data) { m_mime_data = move(mime_data); } void set_mime_data(RefPtr<Core::MimeData> mime_data) { m_mime_data = move(mime_data); }
void set_text(DeprecatedString const& text); void set_text(DeprecatedString const& text);
void set_bitmap(Gfx::Bitmap const* bitmap); void set_bitmap(Gfx::Bitmap const* bitmap);
void set_data(DeprecatedString const& data_type, DeprecatedString const& data); void set_data(String const& data_type, DeprecatedString const& data);
Outcome exec(); Outcome exec();
Outcome outcome() const { return m_outcome; } Outcome outcome() const { return m_outcome; }

View file

@ -125,10 +125,10 @@ RefPtr<Core::MimeData> Model::mime_data(ModelSelection const& selection) const
} }
}); });
mime_data->set_data(drag_data_type(), data_builder.to_byte_buffer().release_value_but_fixme_should_propagate_errors()); mime_data->set_data(MUST(String::from_utf8(drag_data_type())), data_builder.to_byte_buffer().release_value_but_fixme_should_propagate_errors());
mime_data->set_text(text_builder.to_deprecated_string()); mime_data->set_text(text_builder.to_deprecated_string());
if (bitmap) if (bitmap)
mime_data->set_data("image/x-raw-bitmap", bitmap->serialize_to_byte_buffer().release_value_but_fixme_should_propagate_errors()); mime_data->set_data("image/x-raw-bitmap"_string, bitmap->serialize_to_byte_buffer().release_value_but_fixme_should_propagate_errors());
return mime_data; return mime_data;
} }

View file

@ -912,7 +912,7 @@ void TerminalWidget::mousemove_event(GUI::MouseEvent& event)
auto drag_operation = GUI::DragOperation::construct(); auto drag_operation = GUI::DragOperation::construct();
drag_operation->set_text(m_active_href); drag_operation->set_text(m_active_href);
drag_operation->set_data("text/uri-list", m_active_href); drag_operation->set_data("text/uri-list"_string, m_active_href);
m_active_href = {}; m_active_href = {};
m_active_href_id = {}; m_active_href_id = {};

View file

@ -872,7 +872,7 @@ void ConnectionFromClient::start_window_resize(i32 window_id, i32 resize_directi
WindowManager::the().start_window_resize(window, ScreenInput::the().cursor_location(), MouseButton::Primary, (ResizeDirection)resize_direction); WindowManager::the().start_window_resize(window, ScreenInput::the().cursor_location(), MouseButton::Primary, (ResizeDirection)resize_direction);
} }
Messages::WindowServer::StartDragResponse ConnectionFromClient::start_drag(DeprecatedString const& text, HashMap<DeprecatedString, ByteBuffer> const& mime_data, Gfx::ShareableBitmap const& drag_bitmap) Messages::WindowServer::StartDragResponse ConnectionFromClient::start_drag(DeprecatedString const& text, HashMap<String, ByteBuffer> const& mime_data, Gfx::ShareableBitmap const& drag_bitmap)
{ {
auto& wm = WindowManager::the(); auto& wm = WindowManager::the();
if (wm.dnd_client() || !(wm.last_processed_buttons() & MouseButton::Primary)) if (wm.dnd_client() || !(wm.last_processed_buttons() & MouseButton::Primary))

View file

@ -144,7 +144,7 @@ private:
virtual void popup_menu(i32, Gfx::IntPoint, Gfx::IntRect const&) override; virtual void popup_menu(i32, Gfx::IntPoint, Gfx::IntRect const&) override;
virtual void dismiss_menu(i32) override; virtual void dismiss_menu(i32) override;
virtual void set_window_icon_bitmap(i32, Gfx::ShareableBitmap const&) override; virtual void set_window_icon_bitmap(i32, Gfx::ShareableBitmap const&) override;
virtual Messages::WindowServer::StartDragResponse start_drag(DeprecatedString const&, HashMap<DeprecatedString, ByteBuffer> const&, Gfx::ShareableBitmap const&) override; virtual Messages::WindowServer::StartDragResponse start_drag(DeprecatedString const&, HashMap<String, ByteBuffer> const&, Gfx::ShareableBitmap const&) override;
virtual void set_accepts_drag(bool) override; virtual void set_accepts_drag(bool) override;
virtual Messages::WindowServer::SetSystemThemeResponse set_system_theme(DeprecatedString const&, DeprecatedString const&, bool keep_desktop_background, Optional<DeprecatedString> const& color_scheme_path) override; virtual Messages::WindowServer::SetSystemThemeResponse set_system_theme(DeprecatedString const&, DeprecatedString const&, bool keep_desktop_background, Optional<DeprecatedString> const& color_scheme_path) override;
virtual Messages::WindowServer::GetSystemThemeResponse get_system_theme() override; virtual Messages::WindowServer::GetSystemThemeResponse get_system_theme() override;

View file

@ -36,7 +36,7 @@ endpoint WindowClient
drag_accepted() =| drag_accepted() =|
drag_cancelled() =| drag_cancelled() =|
drag_dropped(i32 window_id, Gfx::IntPoint mouse_position, [UTF8] DeprecatedString text, HashMap<DeprecatedString,ByteBuffer> mime_data) =| drag_dropped(i32 window_id, Gfx::IntPoint mouse_position, [UTF8] DeprecatedString text, HashMap<String,ByteBuffer> mime_data) =|
update_system_theme(Core::AnonymousBuffer theme_buffer) =| update_system_theme(Core::AnonymousBuffer theme_buffer) =|
update_system_fonts(DeprecatedString default_font_query, DeprecatedString fixed_width_font_query, DeprecatedString window_title_font_query) =| update_system_fonts(DeprecatedString default_font_query, DeprecatedString fixed_width_font_query, DeprecatedString window_title_font_query) =|

View file

@ -128,7 +128,7 @@ endpoint WindowServer
set_window_cursor(i32 window_id, i32 cursor_type) =| set_window_cursor(i32 window_id, i32 cursor_type) =|
set_window_custom_cursor(i32 window_id, Gfx::ShareableBitmap cursor) =| set_window_custom_cursor(i32 window_id, Gfx::ShareableBitmap cursor) =|
start_drag([UTF8] DeprecatedString text, HashMap<DeprecatedString,ByteBuffer> mime_data, Gfx::ShareableBitmap drag_bitmap) => (bool started) start_drag([UTF8] DeprecatedString text, HashMap<String,ByteBuffer> mime_data, Gfx::ShareableBitmap drag_bitmap) => (bool started)
set_accepts_drag(bool accepts) =| set_accepts_drag(bool accepts) =|
set_system_theme(DeprecatedString theme_path, [UTF8] DeprecatedString theme_name, bool keep_desktop_background, Optional<DeprecatedString> color_scheme_path) => (bool success) set_system_theme(DeprecatedString theme_path, [UTF8] DeprecatedString theme_name, bool keep_desktop_background, Optional<DeprecatedString> color_scheme_path) => (bool success)