mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
LibGUI: Make NumericInput work well in GML
- Register the widget - Register property getters and setters - Rename getters and setters to match the property names, as required by the GML compiler. The names min/max/value are chosen to match SpinBox. - Prevent a crash when the minimum is less than the maximum (which can happen while editing the GML).
This commit is contained in:
parent
da349607a3
commit
5f0230a57e
3 changed files with 46 additions and 35 deletions
|
@ -187,7 +187,7 @@ PDFViewerWidget::PDFViewerWidget()
|
|||
|
||||
m_viewer = v_splitter.add<PDFViewer>();
|
||||
m_viewer->on_page_change = [&](auto new_page) {
|
||||
m_page_text_box->set_current_number(new_page + 1, GUI::AllowCallback::No);
|
||||
m_page_text_box->set_value(new_page + 1, GUI::AllowCallback::No);
|
||||
m_go_to_prev_page_action->set_enabled(new_page > 0);
|
||||
m_go_to_next_page_action->set_enabled(new_page < m_viewer->document()->get_page_count() - 1);
|
||||
};
|
||||
|
@ -263,13 +263,13 @@ void PDFViewerWidget::initialize_toolbar(GUI::Toolbar& toolbar)
|
|||
|
||||
m_go_to_prev_page_action = GUI::Action::create("Go to &Previous Page", Gfx::Bitmap::load_from_file("/res/icons/16x16/go-up.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) {
|
||||
VERIFY(m_viewer->current_page() > 0);
|
||||
m_page_text_box->set_current_number(m_viewer->current_page());
|
||||
m_page_text_box->set_value(m_viewer->current_page());
|
||||
});
|
||||
m_go_to_prev_page_action->set_enabled(false);
|
||||
|
||||
m_go_to_next_page_action = GUI::Action::create("Go to &Next Page", Gfx::Bitmap::load_from_file("/res/icons/16x16/go-down.png"sv).release_value_but_fixme_should_propagate_errors(), [&](auto&) {
|
||||
VERIFY(m_viewer->current_page() < m_viewer->document()->get_page_count() - 1);
|
||||
m_page_text_box->set_current_number(m_viewer->current_page() + 2);
|
||||
m_page_text_box->set_value(m_viewer->current_page() + 2);
|
||||
});
|
||||
m_go_to_next_page_action->set_enabled(false);
|
||||
|
||||
|
@ -279,7 +279,7 @@ void PDFViewerWidget::initialize_toolbar(GUI::Toolbar& toolbar)
|
|||
m_page_text_box = toolbar.add<GUI::NumericInput>();
|
||||
m_page_text_box->set_enabled(false);
|
||||
m_page_text_box->set_fixed_width(30);
|
||||
m_page_text_box->set_min_number(1);
|
||||
m_page_text_box->set_min(1);
|
||||
|
||||
m_page_text_box->on_number_changed = [&](i64 number) {
|
||||
auto page_count = m_viewer->document()->get_page_count();
|
||||
|
@ -396,8 +396,8 @@ PDF::PDFErrorOr<void> PDFViewerWidget::try_open_file(StringView path, NonnullOwn
|
|||
m_total_page_label->set_text(TRY(String::formatted("of {}", document->get_page_count())));
|
||||
|
||||
m_page_text_box->set_enabled(true);
|
||||
m_page_text_box->set_current_number(1, GUI::AllowCallback::No);
|
||||
m_page_text_box->set_max_number(document->get_page_count());
|
||||
m_page_text_box->set_value(1, GUI::AllowCallback::No);
|
||||
m_page_text_box->set_max(document->get_page_count());
|
||||
m_go_to_prev_page_action->set_enabled(false);
|
||||
m_go_to_next_page_action->set_enabled(document->get_page_count() > 1);
|
||||
m_toggle_sidebar_action->set_enabled(true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue