1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-11 10:18:15 +09:00

TextEditor: Handle drop events

We now handle drop events with data type "url-list". This makes it
possible to drop a file from FileManager on TextEditor to open it.
This commit is contained in:
Andreas Kling 2019-12-19 20:20:20 +01:00
parent cfcb38dff1
commit 6425b8714a
Notes: sideshowbarker 2024-07-19 10:48:15 +09:00
2 changed files with 21 additions and 0 deletions

View file

@ -1,6 +1,7 @@
#include "TextEditorWidget.h"
#include <AK/Optional.h>
#include <AK/StringBuilder.h>
#include <AK/URL.h>
#include <LibCore/CFile.h>
#include <LibDraw/PNGLoader.h>
#include <LibGUI/GAboutDialog.h>
@ -302,3 +303,21 @@ bool TextEditorWidget::request_close()
auto result = GMessageBox::show("The document has been modified. Quit without saving?", "Quit without saving?", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window());
return result == GMessageBox::ExecOK;
}
void TextEditorWidget::drop_event(GDropEvent& event)
{
event.accept();
window()->move_to_front();
if (event.data_type() == "url-list") {
auto lines = event.data().split_view('\n');
if (lines.is_empty())
return;
if (lines.size() > 1) {
GMessageBox::show("TextEditor can only open one file at a time!", "One at a time please!", GMessageBox::Type::Error, GMessageBox::InputType::OK, window());
return;
}
URL url(lines[0]);
open_sesame(url.path());
}
}