mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 21:17:45 +00:00
3DViewer: Add support for dropping files
This commit is contained in:
parent
75d0f2c703
commit
14dbd28033
1 changed files with 22 additions and 0 deletions
|
@ -91,6 +91,7 @@ private:
|
|||
glEndList();
|
||||
}
|
||||
|
||||
virtual void drop_event(GUI::DropEvent&) override;
|
||||
virtual void paint_event(GUI::PaintEvent&) override;
|
||||
virtual void resize_event(GUI::ResizeEvent&) override;
|
||||
virtual void timer_event(Core::TimerEvent&) override;
|
||||
|
@ -123,6 +124,27 @@ private:
|
|||
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)
|
||||
{
|
||||
GUI::Frame::paint_event(event);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue