1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 00:07:36 +00:00

3DViewer: Add support for dropping files

This commit is contained in:
James Mintram 2022-04-01 23:19:18 +01:00 committed by Brian Gianforcaro
parent 75d0f2c703
commit 14dbd28033

View file

@ -91,6 +91,7 @@ private:
glEndList(); glEndList();
} }
virtual void drop_event(GUI::DropEvent&) override;
virtual void paint_event(GUI::PaintEvent&) override; virtual void paint_event(GUI::PaintEvent&) override;
virtual void resize_event(GUI::ResizeEvent&) override; virtual void resize_event(GUI::ResizeEvent&) override;
virtual void timer_event(Core::TimerEvent&) override; virtual void timer_event(Core::TimerEvent&) override;
@ -123,6 +124,27 @@ private:
float m_zoom = 1; float m_zoom = 1;
}; };
void GLContextWidget::drop_event(GUI::DropEvent& event)
{
if (!event.mime_data().has_urls())
return;
event.accept();
if (event.mime_data().urls().is_empty())
return;
for (auto& url : event.mime_data().urls()) {
if (url.protocol() != "file")
continue;
auto response = FileSystemAccessClient::Client::the().try_request_file(window(), url.path(), Core::OpenMode::ReadOnly);
if (response.is_error())
return;
load_file(response.value());
}
}
void GLContextWidget::paint_event(GUI::PaintEvent& event) void GLContextWidget::paint_event(GUI::PaintEvent& event)
{ {
GUI::Frame::paint_event(event); GUI::Frame::paint_event(event);