PDFViewer: Add Debug menu entries for disabling clipping

This commit is contained in:
Nico Weber 2024-01-21 08:54:03 -05:00 committed by Tim Flynn
parent 9703510682
commit d9267a388d
3 changed files with 45 additions and 0 deletions

View file

@ -48,6 +48,9 @@ PDFViewer::PDFViewer()
m_page_view_mode = static_cast<PageViewMode>(Config::read_i32("PDFViewer"sv, "Display"sv, "PageMode"sv, 0));
m_rendering_preferences.show_clipping_paths = Config::read_bool("PDFViewer"sv, "Rendering"sv, "ShowClippingPaths"sv, false);
m_rendering_preferences.show_images = Config::read_bool("PDFViewer"sv, "Rendering"sv, "ShowImages"sv, true);
m_rendering_preferences.clip_images = Config::read_bool("PDFViewer"sv, "Rendering"sv, "ClipImages"sv, true);
m_rendering_preferences.clip_paths = Config::read_bool("PDFViewer"sv, "Rendering"sv, "ClipPaths"sv, true);
m_rendering_preferences.clip_text = Config::read_bool("PDFViewer"sv, "Rendering"sv, "ClipText"sv, true);
}
PDF::PDFErrorOr<void> PDFViewer::set_document(RefPtr<PDF::Document> document)
@ -181,6 +184,27 @@ void PDFViewer::set_show_images(bool show_images)
update();
}
void PDFViewer::set_clip_images(bool clip_images)
{
m_rendering_preferences.clip_images = clip_images;
Config::write_bool("PDFViewer"sv, "Rendering"sv, "ClipImages"sv, clip_images);
update();
}
void PDFViewer::set_clip_paths(bool clip_paths)
{
m_rendering_preferences.clip_paths = clip_paths;
Config::write_bool("PDFViewer"sv, "Rendering"sv, "ClipPaths"sv, clip_paths);
update();
}
void PDFViewer::set_clip_text(bool clip_text)
{
m_rendering_preferences.clip_text = clip_text;
Config::write_bool("PDFViewer"sv, "Rendering"sv, "ClipText"sv, clip_text);
update();
}
void PDFViewer::resize_event(GUI::ResizeEvent&)
{
for (auto& map : m_rendered_page_list)

View file

@ -66,6 +66,12 @@ public:
void set_show_clipping_paths(bool);
bool show_images() const { return m_rendering_preferences.show_images; }
void set_show_images(bool);
bool clip_images() const { return m_rendering_preferences.clip_images; }
void set_clip_images(bool);
bool clip_paths() const { return m_rendering_preferences.clip_paths; }
void set_clip_paths(bool);
bool clip_text() const { return m_rendering_preferences.clip_text; }
void set_clip_text(bool);
protected:
PDFViewer();

View file

@ -257,6 +257,21 @@ ErrorOr<void> PDFViewerWidget::initialize_menubar(GUI::Window& window)
});
toggle_show_images->set_checked(m_viewer->show_images());
debug_menu->add_action(*toggle_show_images);
auto toggle_clip_images = GUI::Action::create_checkable("Clip I&mages", [&](auto& action) {
m_viewer->set_clip_images(action.is_checked());
});
toggle_clip_images->set_checked(m_viewer->clip_images());
debug_menu->add_action(toggle_clip_images);
auto toggle_clip_paths = GUI::Action::create_checkable("Clip &Paths", [&](auto& action) {
m_viewer->set_clip_paths(action.is_checked());
});
toggle_clip_paths->set_checked(m_viewer->clip_paths());
debug_menu->add_action(toggle_clip_paths);
auto toggle_clip_text = GUI::Action::create_checkable("Clip &Text", [&](auto& action) {
m_viewer->set_clip_text(action.is_checked());
});
toggle_clip_text->set_checked(m_viewer->clip_text());
debug_menu->add_action(toggle_clip_text);
auto help_menu = window.add_menu("&Help"_string);
help_menu->add_action(GUI::CommonActions::make_command_palette_action(&window));