mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 05:47:35 +00: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
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