1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:47:45 +00:00

PixelPaint: Allow opening of files dropped onto application :^)

We can now drag-and-drop files onto PixelPaint to be able to open
them. Each dropped file opens in a separate editor (which is the
default behavior of Photoshop).
This commit is contained in:
Mustafa Quraish 2021-09-06 00:24:12 -04:00 committed by Andreas Kling
parent 5a8c6b95e6
commit f8570bd773
2 changed files with 24 additions and 0 deletions

View file

@ -773,4 +773,26 @@ ImageEditor& MainWidget::create_new_editor(NonnullRefPtr<Image> image)
return image_editor;
}
void MainWidget::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 result = FileSystemAccessClient::Client::the().request_file(window()->window_id(), url.path(), Core::OpenMode::ReadOnly);
if (result.error != 0)
continue;
open_image_fd(*result.fd, *result.chosen_file);
}
}
}

View file

@ -43,6 +43,8 @@ private:
ImageEditor* current_image_editor();
ImageEditor& create_new_editor(NonnullRefPtr<Image>);
virtual void drop_event(GUI::DropEvent&) override;
ProjectLoader m_loader;
RefPtr<ToolboxWidget> m_toolbox;