mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-10 18:10:56 +09:00
Browser: Add dedicated "view source" window
Basically a window containing a read-only GUI::TextEditor containing the source code of the current webpage. No temporary file needed :^) Fixes #1103.
This commit is contained in:
parent
eabb7b563a
commit
2c14714ee0
Notes:
sideshowbarker
2024-07-19 06:56:00 +09:00
Author: https://github.com/linusg
Commit: 2c14714ee0
Pull-request: https://github.com/SerenityOS/serenity/pull/2131
Issue: https://github.com/SerenityOS/serenity/issues/1103
1 changed files with 10 additions and 16 deletions
|
@ -218,23 +218,17 @@ Tab::Tab()
|
|||
auto& inspect_menu = m_menubar->add_menu("Inspect");
|
||||
inspect_menu.add_action(GUI::Action::create(
|
||||
"View source", { Mod_Ctrl, Key_U }, [this](auto&) {
|
||||
String filename_to_open;
|
||||
char tmp_filename[] = "/tmp/view-source.XXXXXX";
|
||||
ASSERT(m_html_widget->document());
|
||||
if (m_html_widget->document()->url().protocol() == "file") {
|
||||
filename_to_open = m_html_widget->document()->url().path();
|
||||
} else {
|
||||
int fd = mkstemp(tmp_filename);
|
||||
ASSERT(fd >= 0);
|
||||
auto source = m_html_widget->document()->source();
|
||||
write(fd, source.characters(), source.length());
|
||||
close(fd);
|
||||
filename_to_open = tmp_filename;
|
||||
}
|
||||
if (fork() == 0) {
|
||||
execl("/bin/TextEditor", "TextEditor", filename_to_open.characters(), nullptr);
|
||||
ASSERT_NOT_REACHED();
|
||||
}
|
||||
auto url = m_html_widget->document()->url().to_string();
|
||||
auto source = m_html_widget->document()->source();
|
||||
auto window = GUI::Window::construct();
|
||||
auto& editor = window->set_main_widget<GUI::TextEditor>();
|
||||
editor.set_text(source);
|
||||
editor.set_readonly(true);
|
||||
window->set_rect(150, 150, 640, 480);
|
||||
window->set_title(url);
|
||||
window->show();
|
||||
(void)window.leak_ref();
|
||||
},
|
||||
this));
|
||||
inspect_menu.add_action(GUI::Action::create(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue