|
@@ -24,7 +24,8 @@ PDFViewerWidget::PDFViewerWidget()
|
|
|
set_fill_with_background_color(true);
|
|
|
set_layout<GUI::VerticalBoxLayout>();
|
|
|
|
|
|
- create_toolbar();
|
|
|
+ auto& toolbar_container = add<GUI::ToolbarContainer>();
|
|
|
+ auto& toolbar = toolbar_container.add<GUI::Toolbar>();
|
|
|
|
|
|
auto& splitter = add<GUI::HorizontalSplitter>();
|
|
|
|
|
@@ -35,6 +36,8 @@ PDFViewerWidget::PDFViewerWidget()
|
|
|
m_viewer->on_page_change = [&](auto new_page) {
|
|
|
m_page_text_box->set_current_number(new_page + 1);
|
|
|
};
|
|
|
+
|
|
|
+ initialize_toolbar(toolbar);
|
|
|
}
|
|
|
|
|
|
void PDFViewerWidget::initialize_menubar(GUI::Window& window)
|
|
@@ -42,9 +45,8 @@ void PDFViewerWidget::initialize_menubar(GUI::Window& window)
|
|
|
auto& file_menu = window.add_menu("&File");
|
|
|
file_menu.add_action(GUI::CommonActions::make_open_action([&](auto&) {
|
|
|
auto response = FileSystemAccessClient::Client::the().try_open_file(&window);
|
|
|
- if (response.is_error())
|
|
|
- return;
|
|
|
- open_file(*response.value());
|
|
|
+ if (!response.is_error())
|
|
|
+ open_file(*response.value());
|
|
|
}));
|
|
|
file_menu.add_separator();
|
|
|
file_menu.add_action(GUI::CommonActions::make_quit_action([](auto&) {
|
|
@@ -54,6 +56,10 @@ void PDFViewerWidget::initialize_menubar(GUI::Window& window)
|
|
|
auto& view_menu = window.add_menu("&View");
|
|
|
view_menu.add_action(*m_toggle_sidebar_action);
|
|
|
view_menu.add_separator();
|
|
|
+ auto& view_mode_menu = view_menu.add_submenu("View &Mode");
|
|
|
+ view_mode_menu.add_action(*m_page_view_mode_single);
|
|
|
+ view_mode_menu.add_action(*m_page_view_mode_multiple);
|
|
|
+ view_menu.add_separator();
|
|
|
view_menu.add_action(*m_zoom_in_action);
|
|
|
view_menu.add_action(*m_zoom_out_action);
|
|
|
view_menu.add_action(*m_reset_zoom_action);
|
|
@@ -62,11 +68,8 @@ void PDFViewerWidget::initialize_menubar(GUI::Window& window)
|
|
|
help_menu.add_action(GUI::CommonActions::make_about_action("PDF Viewer", GUI::Icon::default_icon("app-pdf-viewer"), &window));
|
|
|
}
|
|
|
|
|
|
-void PDFViewerWidget::create_toolbar()
|
|
|
+void PDFViewerWidget::initialize_toolbar(GUI::Toolbar& toolbar)
|
|
|
{
|
|
|
- auto& toolbar_container = add<GUI::ToolbarContainer>();
|
|
|
- auto& toolbar = toolbar_container.add<GUI::Toolbar>();
|
|
|
-
|
|
|
auto open_outline_action = GUI::Action::create(
|
|
|
"Toggle &Sidebar", { Mod_Ctrl, Key_S }, Gfx::Bitmap::try_load_from_file("/res/icons/16x16/sidebar.png").release_value_but_fixme_should_propagate_errors(), [&](auto&) {
|
|
|
m_sidebar_open = !m_sidebar_open;
|
|
@@ -139,6 +142,24 @@ void PDFViewerWidget::create_toolbar()
|
|
|
m_rotate_counterclockwise_action->set_enabled(false);
|
|
|
m_rotate_clockwise_action->set_enabled(false);
|
|
|
|
|
|
+ m_page_view_mode_single = GUI::Action::create_checkable("Single", [&](auto&) {
|
|
|
+ m_viewer->set_page_view_mode(PDFViewer::PageViewMode::Single);
|
|
|
+ });
|
|
|
+
|
|
|
+ m_page_view_mode_multiple = GUI::Action::create_checkable("Multiple", [&](auto&) {
|
|
|
+ m_viewer->set_page_view_mode(PDFViewer::PageViewMode::Multiple);
|
|
|
+ });
|
|
|
+
|
|
|
+ if (m_viewer->page_view_mode() == PDFViewer::PageViewMode::Single) {
|
|
|
+ m_page_view_mode_single->set_checked(true);
|
|
|
+ } else {
|
|
|
+ m_page_view_mode_multiple->set_checked(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ m_page_view_action_group.add_action(*m_page_view_mode_single);
|
|
|
+ m_page_view_action_group.add_action(*m_page_view_mode_multiple);
|
|
|
+ m_page_view_action_group.set_exclusive(true);
|
|
|
+
|
|
|
toolbar.add_action(*m_zoom_in_action);
|
|
|
toolbar.add_action(*m_zoom_out_action);
|
|
|
toolbar.add_action(*m_reset_zoom_action);
|