mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 17:58:18 +03:00
6d0869c14a
Now that the rendering process communicates all errors upstream, and PDFViewer has a way to tap into those errors as they occur, we can visualise them more neatly. This commit adds a TreeView that we populate with the errors stemming from the rendering process. The TreeView has two levels: at the top sit pages where errors can be found, and under each page we can see the errors that have been found on that page. The TreeView sits below the main PDF rendering.
59 lines
1.6 KiB
C++
59 lines
1.6 KiB
C++
/*
|
|
* Copyright (c) 2021, Matthew Olsson <mattco@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "AK/NonnullRefPtr.h"
|
|
#include "AK/RefPtr.h"
|
|
#include "NumericInput.h"
|
|
#include "PDFViewer.h"
|
|
#include "SidebarWidget.h"
|
|
#include <LibGUI/Action.h>
|
|
#include <LibGUI/ActionGroup.h>
|
|
#include <LibGUI/CheckBox.h>
|
|
#include <LibGUI/Widget.h>
|
|
|
|
class PDFViewer;
|
|
class PagedErrorsModel;
|
|
|
|
class PDFViewerWidget final : public GUI::Widget {
|
|
C_OBJECT(PDFViewerWidget)
|
|
|
|
public:
|
|
~PDFViewerWidget() override = default;
|
|
|
|
void initialize_menubar(GUI::Window&);
|
|
void open_file(Core::File&);
|
|
|
|
private:
|
|
PDFViewerWidget();
|
|
|
|
void initialize_toolbar(GUI::Toolbar&);
|
|
|
|
RefPtr<PDFViewer> m_viewer;
|
|
RefPtr<SidebarWidget> m_sidebar;
|
|
NonnullRefPtr<PagedErrorsModel> m_paged_errors_model;
|
|
RefPtr<GUI::TreeView> m_errors_tree_view;
|
|
RefPtr<NumericInput> m_page_text_box;
|
|
RefPtr<GUI::Label> m_total_page_label;
|
|
RefPtr<GUI::Action> m_go_to_prev_page_action;
|
|
RefPtr<GUI::Action> m_go_to_next_page_action;
|
|
RefPtr<GUI::Action> m_toggle_sidebar_action;
|
|
RefPtr<GUI::Action> m_zoom_in_action;
|
|
RefPtr<GUI::Action> m_zoom_out_action;
|
|
RefPtr<GUI::Action> m_reset_zoom_action;
|
|
RefPtr<GUI::Action> m_rotate_counterclockwise_action;
|
|
RefPtr<GUI::Action> m_rotate_clockwise_action;
|
|
GUI::ActionGroup m_page_view_action_group;
|
|
RefPtr<GUI::Action> m_page_view_mode_single;
|
|
RefPtr<GUI::Action> m_page_view_mode_multiple;
|
|
RefPtr<GUI::CheckBox> m_show_clipping_paths;
|
|
RefPtr<GUI::CheckBox> m_show_images;
|
|
|
|
bool m_sidebar_open { false };
|
|
ByteBuffer m_buffer;
|
|
};
|