Userland: Port to automatic GML initializer where possible
This commit is contained in:
parent
dec066fa5c
commit
adc845e0cb
Notes:
sideshowbarker
2024-07-17 06:38:11 +09:00
Author: https://github.com/kleinesfilmroellchen Commit: https://github.com/SerenityOS/serenity/commit/adc845e0cb Pull-request: https://github.com/SerenityOS/serenity/pull/22860 Issue: https://github.com/SerenityOS/serenity/issues/21401 Reviewed-by: https://github.com/ADKaster ✅ Reviewed-by: https://github.com/AtkinsSJ
41 changed files with 148 additions and 245 deletions
|
@ -29,47 +29,46 @@ void AutoplayAllowlistModel::reset_default_values()
|
|||
|
||||
namespace BrowserSettings {
|
||||
|
||||
ErrorOr<NonnullRefPtr<AutoplaySettingsWidget>> AutoplaySettingsWidget::create()
|
||||
ErrorOr<void> AutoplaySettingsWidget::initialize()
|
||||
{
|
||||
auto allowlist_model = TRY(try_make_ref_counted<AutoplayAllowlistModel>());
|
||||
TRY(allowlist_model->load());
|
||||
|
||||
auto widget = TRY(AutoplaySettingsWidget::try_create());
|
||||
widget->set_allowlist_model(move(allowlist_model));
|
||||
set_allowlist_model(move(allowlist_model));
|
||||
|
||||
widget->m_allow_autoplay_on_all_websites_checkbox = widget->find_descendant_of_type_named<GUI::CheckBox>("allow_autoplay_on_all_websites_checkbox");
|
||||
widget->m_allow_autoplay_on_all_websites_checkbox->set_checked(Config::read_bool("Browser"sv, "Preferences"sv, "AllowAutoplayOnAllWebsites"sv, Browser::default_allow_autoplay_on_all_websites), GUI::AllowCallback::No);
|
||||
widget->m_allow_autoplay_on_all_websites_checkbox->on_checked = [widget](auto) {
|
||||
widget->set_modified(true);
|
||||
m_allow_autoplay_on_all_websites_checkbox = find_descendant_of_type_named<GUI::CheckBox>("allow_autoplay_on_all_websites_checkbox");
|
||||
m_allow_autoplay_on_all_websites_checkbox->set_checked(Config::read_bool("Browser"sv, "Preferences"sv, "AllowAutoplayOnAllWebsites"sv, Browser::default_allow_autoplay_on_all_websites), GUI::AllowCallback::No);
|
||||
m_allow_autoplay_on_all_websites_checkbox->on_checked = [this](auto) {
|
||||
set_modified(true);
|
||||
};
|
||||
|
||||
widget->m_allowlist_view = widget->find_descendant_of_type_named<GUI::ListView>("allowlist_view");
|
||||
widget->m_allowlist_view->set_model(widget->m_allowlist_model);
|
||||
widget->m_allowlist_view->on_context_menu_request = [widget](GUI::ModelIndex const& index, GUI::ContextMenuEvent const& event) {
|
||||
widget->m_allowlist_view->set_cursor(index, GUI::AbstractView::SelectionUpdate::Set);
|
||||
widget->m_entry_context_menu->popup(event.screen_position());
|
||||
m_allowlist_view = find_descendant_of_type_named<GUI::ListView>("allowlist_view");
|
||||
m_allowlist_view->set_model(m_allowlist_model);
|
||||
m_allowlist_view->on_context_menu_request = [this](GUI::ModelIndex const& index, GUI::ContextMenuEvent const& event) {
|
||||
m_allowlist_view->set_cursor(index, GUI::AbstractView::SelectionUpdate::Set);
|
||||
m_entry_context_menu->popup(event.screen_position());
|
||||
};
|
||||
|
||||
widget->m_add_website_button = widget->find_descendant_of_type_named<GUI::Button>("add_website_button");
|
||||
widget->m_add_website_button->on_click = [widget](unsigned) {
|
||||
m_add_website_button = find_descendant_of_type_named<GUI::Button>("add_website_button");
|
||||
m_add_website_button->on_click = [this](unsigned) {
|
||||
String text;
|
||||
|
||||
if (GUI::InputBox::show(widget->window(), text, "Enter a website:"sv, "Add Autoplay Entry"sv, GUI::InputType::NonemptyText) == GUI::Dialog::ExecResult::OK) {
|
||||
widget->m_allowlist_model->add_domain(move(text));
|
||||
widget->set_modified(true);
|
||||
if (GUI::InputBox::show(window(), text, "Enter a website:"sv, "Add Autoplay Entry"sv, GUI::InputType::NonemptyText) == GUI::Dialog::ExecResult::OK) {
|
||||
m_allowlist_model->add_domain(move(text));
|
||||
set_modified(true);
|
||||
}
|
||||
};
|
||||
|
||||
auto delete_action = GUI::CommonActions::make_delete_action([widget](GUI::Action const&) {
|
||||
if (!widget->m_allowlist_view->selection().is_empty()) {
|
||||
widget->m_allowlist_model->delete_domain(widget->m_allowlist_view->selection().first().row());
|
||||
widget->set_modified(true);
|
||||
auto delete_action = GUI::CommonActions::make_delete_action([this](GUI::Action const&) {
|
||||
if (!m_allowlist_view->selection().is_empty()) {
|
||||
m_allowlist_model->delete_domain(m_allowlist_view->selection().first().row());
|
||||
set_modified(true);
|
||||
}
|
||||
});
|
||||
widget->m_entry_context_menu = GUI::Menu::construct();
|
||||
widget->m_entry_context_menu->add_action(move(delete_action));
|
||||
m_entry_context_menu = GUI::Menu::construct();
|
||||
m_entry_context_menu->add_action(move(delete_action));
|
||||
|
||||
return widget;
|
||||
return {};
|
||||
}
|
||||
|
||||
void AutoplaySettingsWidget::set_allowlist_model(NonnullRefPtr<AutoplayAllowlistModel> model)
|
||||
|
|
|
@ -27,13 +27,13 @@ class AutoplaySettingsWidget : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(AutoplaySettingsWidget)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<AutoplaySettingsWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<AutoplaySettingsWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual void apply_settings() override;
|
||||
virtual void reset_default_values() override;
|
||||
|
||||
private:
|
||||
static ErrorOr<NonnullRefPtr<AutoplaySettingsWidget>> try_create();
|
||||
AutoplaySettingsWidget() = default;
|
||||
|
||||
void set_allowlist_model(NonnullRefPtr<AutoplayAllowlistModel> model);
|
||||
|
|
|
@ -95,16 +95,7 @@ private:
|
|||
Vector<WebView::SearchEngine> m_search_engines;
|
||||
};
|
||||
|
||||
ErrorOr<NonnullRefPtr<BrowserSettingsWidget>> BrowserSettingsWidget::create()
|
||||
{
|
||||
auto widget = TRY(BrowserSettingsWidget::try_create());
|
||||
|
||||
TRY(widget->setup());
|
||||
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> BrowserSettingsWidget::setup()
|
||||
ErrorOr<void> BrowserSettingsWidget::initialize()
|
||||
{
|
||||
m_homepage_url_textbox = find_descendant_of_type_named<GUI::TextBox>("homepage_url_textbox");
|
||||
m_homepage_url_textbox->set_text(Config::read_string("Browser"sv, "Preferences"sv, "Home"sv, Browser::default_homepage_url), GUI::AllowCallback::No);
|
||||
|
|
|
@ -17,17 +17,15 @@ namespace BrowserSettings {
|
|||
class BrowserSettingsWidget final : public GUI::SettingsWindow::Tab {
|
||||
C_OBJECT_ABSTRACT(BrowserSettingsWidget)
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<BrowserSettingsWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<BrowserSettingsWidget>> try_create();
|
||||
virtual ~BrowserSettingsWidget() override = default;
|
||||
|
||||
virtual void apply_settings() override;
|
||||
virtual void reset_default_values() override;
|
||||
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
private:
|
||||
static ErrorOr<NonnullRefPtr<BrowserSettingsWidget>> try_create();
|
||||
|
||||
ErrorOr<void> setup();
|
||||
|
||||
RefPtr<GUI::TextBox> m_homepage_url_textbox;
|
||||
RefPtr<GUI::TextBox> m_new_tab_url_textbox;
|
||||
void set_color_scheme(StringView);
|
||||
|
|
|
@ -117,47 +117,46 @@ void DomainListModel::reset_default_values()
|
|||
|
||||
namespace BrowserSettings {
|
||||
|
||||
ErrorOr<NonnullRefPtr<ContentFilterSettingsWidget>> ContentFilterSettingsWidget::create()
|
||||
ErrorOr<void> ContentFilterSettingsWidget::initialize()
|
||||
{
|
||||
auto domain_list_model = TRY(try_make_ref_counted<DomainListModel>());
|
||||
TRY(domain_list_model->load());
|
||||
|
||||
auto widget = TRY(ContentFilterSettingsWidget::try_create());
|
||||
widget->set_domain_list_model(move(domain_list_model));
|
||||
set_domain_list_model(move(domain_list_model));
|
||||
|
||||
widget->m_enable_content_filtering_checkbox = widget->find_descendant_of_type_named<GUI::CheckBox>("enable_content_filtering_checkbox");
|
||||
widget->m_enable_content_filtering_checkbox->set_checked(Config::read_bool("Browser"sv, "Preferences"sv, "EnableContentFilters"sv, Browser::default_enable_content_filters), GUI::AllowCallback::No);
|
||||
widget->m_enable_content_filtering_checkbox->on_checked = [widget](auto) {
|
||||
widget->set_modified(true);
|
||||
m_enable_content_filtering_checkbox = find_descendant_of_type_named<GUI::CheckBox>("enable_content_filtering_checkbox");
|
||||
m_enable_content_filtering_checkbox->set_checked(Config::read_bool("Browser"sv, "Preferences"sv, "EnableContentFilters"sv, Browser::default_enable_content_filters), GUI::AllowCallback::No);
|
||||
m_enable_content_filtering_checkbox->on_checked = [this](auto) {
|
||||
set_modified(true);
|
||||
};
|
||||
|
||||
widget->m_domain_list_view = widget->find_descendant_of_type_named<GUI::ListView>("domain_list_view");
|
||||
widget->m_domain_list_view->set_model(widget->m_domain_list_model);
|
||||
widget->m_domain_list_view->on_context_menu_request = [widget](GUI::ModelIndex const& index, GUI::ContextMenuEvent const& event) {
|
||||
widget->m_domain_list_view->set_cursor(index, GUI::AbstractView::SelectionUpdate::Set);
|
||||
widget->m_entry_context_menu->popup(event.screen_position());
|
||||
m_domain_list_view = find_descendant_of_type_named<GUI::ListView>("domain_list_view");
|
||||
m_domain_list_view->set_model(m_domain_list_model);
|
||||
m_domain_list_view->on_context_menu_request = [this](GUI::ModelIndex const& index, GUI::ContextMenuEvent const& event) {
|
||||
m_domain_list_view->set_cursor(index, GUI::AbstractView::SelectionUpdate::Set);
|
||||
m_entry_context_menu->popup(event.screen_position());
|
||||
};
|
||||
|
||||
widget->m_add_new_domain_button = widget->find_descendant_of_type_named<GUI::Button>("add_new_domain_button");
|
||||
widget->m_add_new_domain_button->on_click = [widget](unsigned) {
|
||||
m_add_new_domain_button = find_descendant_of_type_named<GUI::Button>("add_new_domain_button");
|
||||
m_add_new_domain_button->on_click = [this](unsigned) {
|
||||
String text;
|
||||
|
||||
if (GUI::InputBox::show(widget->window(), text, "Enter a domain:"sv, "Add Content Filter"sv, GUI::InputType::NonemptyText) == GUI::Dialog::ExecResult::OK) {
|
||||
widget->m_domain_list_model->add_domain(move(text));
|
||||
widget->set_modified(true);
|
||||
if (GUI::InputBox::show(window(), text, "Enter a domain:"sv, "Add Content Filter"sv, GUI::InputType::NonemptyText) == GUI::Dialog::ExecResult::OK) {
|
||||
m_domain_list_model->add_domain(move(text));
|
||||
set_modified(true);
|
||||
}
|
||||
};
|
||||
|
||||
auto delete_action = GUI::CommonActions::make_delete_action([widget](GUI::Action const&) {
|
||||
if (!widget->m_domain_list_view->selection().is_empty()) {
|
||||
widget->m_domain_list_model->delete_domain(widget->m_domain_list_view->selection().first().row());
|
||||
widget->set_modified(true);
|
||||
auto delete_action = GUI::CommonActions::make_delete_action([this](GUI::Action const&) {
|
||||
if (!m_domain_list_view->selection().is_empty()) {
|
||||
m_domain_list_model->delete_domain(m_domain_list_view->selection().first().row());
|
||||
set_modified(true);
|
||||
}
|
||||
});
|
||||
widget->m_entry_context_menu = GUI::Menu::construct();
|
||||
widget->m_entry_context_menu->add_action(delete_action);
|
||||
m_entry_context_menu = GUI::Menu::construct();
|
||||
m_entry_context_menu->add_action(delete_action);
|
||||
|
||||
return widget;
|
||||
return {};
|
||||
}
|
||||
|
||||
void ContentFilterSettingsWidget::set_domain_list_model(NonnullRefPtr<DomainListModel> domain_list_model)
|
||||
|
|
|
@ -37,13 +37,13 @@ class ContentFilterSettingsWidget : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(ContentFilterSettingsWidget)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<ContentFilterSettingsWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<ContentFilterSettingsWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual void apply_settings() override;
|
||||
virtual void reset_default_values() override;
|
||||
|
||||
private:
|
||||
static ErrorOr<NonnullRefPtr<ContentFilterSettingsWidget>> try_create();
|
||||
ContentFilterSettingsWidget() = default;
|
||||
|
||||
void set_domain_list_model(NonnullRefPtr<DomainListModel>);
|
||||
|
|
|
@ -37,9 +37,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
auto window = TRY(GUI::SettingsWindow::create("Browser Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes));
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
|
||||
(void)TRY(window->add_tab(TRY(BrowserSettings::BrowserSettingsWidget::create()), "Browser"_string, "browser"sv));
|
||||
(void)TRY(window->add_tab(TRY(BrowserSettings::ContentFilterSettingsWidget::create()), "Content Filtering"_string, "content-filtering"sv));
|
||||
(void)TRY(window->add_tab(TRY(BrowserSettings::AutoplaySettingsWidget::create()), "Autoplay"_string, "autoplay"sv));
|
||||
(void)TRY(window->add_tab<BrowserSettings::BrowserSettingsWidget>("Browser"_string, "browser"sv));
|
||||
(void)TRY(window->add_tab<BrowserSettings::ContentFilterSettingsWidget>("Content Filtering"_string, "content-filtering"sv));
|
||||
(void)TRY(window->add_tab<BrowserSettings::AutoplaySettingsWidget>("Autoplay"_string, "autoplay"sv));
|
||||
window->set_active_tab(selected_tab);
|
||||
|
||||
window->show();
|
||||
|
|
|
@ -17,89 +17,87 @@
|
|||
|
||||
namespace Calculator {
|
||||
|
||||
ErrorOr<NonnullRefPtr<CalculatorWidget>> CalculatorWidget::create()
|
||||
ErrorOr<void> CalculatorWidget::initialize()
|
||||
{
|
||||
auto widget = TRY(CalculatorWidget::try_create());
|
||||
|
||||
widget->m_entry = *widget->find_descendant_of_type_named<GUI::TextBox>("entry_textbox");
|
||||
m_entry = *find_descendant_of_type_named<GUI::TextBox>("entry_textbox");
|
||||
// FIXME: Use GML for this.
|
||||
widget->m_entry->set_relative_rect(5, 5, 244, 26);
|
||||
widget->m_entry->set_text_alignment(Gfx::TextAlignment::CenterRight);
|
||||
m_entry->set_relative_rect(5, 5, 244, 26);
|
||||
m_entry->set_text_alignment(Gfx::TextAlignment::CenterRight);
|
||||
|
||||
// FIXME: Use GML for this.
|
||||
widget->m_label = *widget->find_descendant_of_type_named<GUI::Label>("label");
|
||||
widget->m_label->set_frame_style(Gfx::FrameStyle::SunkenContainer);
|
||||
m_label = *find_descendant_of_type_named<GUI::Label>("label");
|
||||
m_label->set_frame_style(Gfx::FrameStyle::SunkenContainer);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
widget->m_digit_button[i] = *widget->find_descendant_of_type_named<GUI::Button>(TRY(String::formatted("{}_button", i)));
|
||||
widget->add_digit_button(*widget->m_digit_button[i], i);
|
||||
m_digit_button[i] = *find_descendant_of_type_named<GUI::Button>(TRY(String::formatted("{}_button", i)));
|
||||
add_digit_button(*m_digit_button[i], i);
|
||||
}
|
||||
|
||||
widget->m_mem_add_button = *widget->find_descendant_of_type_named<GUI::Button>("mem_add_button");
|
||||
widget->add_operation_button(*widget->m_mem_add_button, Calculator::Operation::MemAdd);
|
||||
m_mem_add_button = *find_descendant_of_type_named<GUI::Button>("mem_add_button");
|
||||
add_operation_button(*m_mem_add_button, Calculator::Operation::MemAdd);
|
||||
|
||||
widget->m_mem_save_button = *widget->find_descendant_of_type_named<GUI::Button>("mem_save_button");
|
||||
widget->add_operation_button(*widget->m_mem_save_button, Calculator::Operation::MemSave);
|
||||
m_mem_save_button = *find_descendant_of_type_named<GUI::Button>("mem_save_button");
|
||||
add_operation_button(*m_mem_save_button, Calculator::Operation::MemSave);
|
||||
|
||||
widget->m_mem_recall_button = *widget->find_descendant_of_type_named<GUI::Button>("mem_recall_button");
|
||||
widget->add_operation_button(*widget->m_mem_recall_button, Calculator::Operation::MemRecall);
|
||||
m_mem_recall_button = *find_descendant_of_type_named<GUI::Button>("mem_recall_button");
|
||||
add_operation_button(*m_mem_recall_button, Calculator::Operation::MemRecall);
|
||||
|
||||
widget->m_mem_clear_button = *widget->find_descendant_of_type_named<GUI::Button>("mem_clear_button");
|
||||
widget->add_operation_button(*widget->m_mem_clear_button, Calculator::Operation::MemClear);
|
||||
m_mem_clear_button = *find_descendant_of_type_named<GUI::Button>("mem_clear_button");
|
||||
add_operation_button(*m_mem_clear_button, Calculator::Operation::MemClear);
|
||||
|
||||
widget->m_clear_button = *widget->find_descendant_of_type_named<GUI::Button>("clear_button");
|
||||
widget->m_clear_button->on_click = [self = NonnullRefPtr<CalculatorWidget>(widget)](auto) {
|
||||
self->m_keypad.set_to_0();
|
||||
self->m_calculator.clear_operation();
|
||||
self->update_display();
|
||||
m_clear_button = *find_descendant_of_type_named<GUI::Button>("clear_button");
|
||||
m_clear_button->on_click = [this](auto) {
|
||||
m_keypad.set_to_0();
|
||||
m_calculator.clear_operation();
|
||||
update_display();
|
||||
};
|
||||
|
||||
widget->m_clear_error_button = *widget->find_descendant_of_type_named<GUI::Button>("clear_error_button");
|
||||
widget->m_clear_error_button->on_click = [self = NonnullRefPtr<CalculatorWidget>(widget)](auto) {
|
||||
self->m_keypad.set_to_0();
|
||||
self->update_display();
|
||||
m_clear_error_button = *find_descendant_of_type_named<GUI::Button>("clear_error_button");
|
||||
m_clear_error_button->on_click = [this](auto) {
|
||||
m_keypad.set_to_0();
|
||||
update_display();
|
||||
};
|
||||
|
||||
widget->m_backspace_button = *widget->find_descendant_of_type_named<GUI::Button>("backspace_button");
|
||||
widget->m_backspace_button->on_click = [self = NonnullRefPtr<CalculatorWidget>(widget)](auto) {
|
||||
self->m_keypad.type_backspace();
|
||||
self->update_display();
|
||||
m_backspace_button = *find_descendant_of_type_named<GUI::Button>("backspace_button");
|
||||
m_backspace_button->on_click = [this](auto) {
|
||||
m_keypad.type_backspace();
|
||||
update_display();
|
||||
};
|
||||
|
||||
widget->m_decimal_point_button = *widget->find_descendant_of_type_named<GUI::Button>("decimal_button");
|
||||
widget->m_decimal_point_button->on_click = [self = NonnullRefPtr<CalculatorWidget>(widget)](auto) {
|
||||
self->m_keypad.type_decimal_point();
|
||||
self->update_display();
|
||||
m_decimal_point_button = *find_descendant_of_type_named<GUI::Button>("decimal_button");
|
||||
m_decimal_point_button->on_click = [this](auto) {
|
||||
m_keypad.type_decimal_point();
|
||||
update_display();
|
||||
};
|
||||
|
||||
widget->m_sign_button = *widget->find_descendant_of_type_named<GUI::Button>("sign_button");
|
||||
widget->add_operation_button(*widget->m_sign_button, Calculator::Operation::ToggleSign);
|
||||
m_sign_button = *find_descendant_of_type_named<GUI::Button>("sign_button");
|
||||
add_operation_button(*m_sign_button, Calculator::Operation::ToggleSign);
|
||||
|
||||
widget->m_add_button = *widget->find_descendant_of_type_named<GUI::Button>("add_button");
|
||||
widget->add_operation_button(*widget->m_add_button, Calculator::Operation::Add);
|
||||
m_add_button = *find_descendant_of_type_named<GUI::Button>("add_button");
|
||||
add_operation_button(*m_add_button, Calculator::Operation::Add);
|
||||
|
||||
widget->m_subtract_button = *widget->find_descendant_of_type_named<GUI::Button>("subtract_button");
|
||||
widget->add_operation_button(*widget->m_subtract_button, Calculator::Operation::Subtract);
|
||||
m_subtract_button = *find_descendant_of_type_named<GUI::Button>("subtract_button");
|
||||
add_operation_button(*m_subtract_button, Calculator::Operation::Subtract);
|
||||
|
||||
widget->m_multiply_button = *widget->find_descendant_of_type_named<GUI::Button>("multiply_button");
|
||||
widget->add_operation_button(*widget->m_multiply_button, Calculator::Operation::Multiply);
|
||||
m_multiply_button = *find_descendant_of_type_named<GUI::Button>("multiply_button");
|
||||
add_operation_button(*m_multiply_button, Calculator::Operation::Multiply);
|
||||
|
||||
widget->m_divide_button = *widget->find_descendant_of_type_named<GUI::Button>("divide_button");
|
||||
widget->add_operation_button(*widget->m_divide_button, Calculator::Operation::Divide);
|
||||
m_divide_button = *find_descendant_of_type_named<GUI::Button>("divide_button");
|
||||
add_operation_button(*m_divide_button, Calculator::Operation::Divide);
|
||||
|
||||
widget->m_sqrt_button = *widget->find_descendant_of_type_named<GUI::Button>("sqrt_button");
|
||||
widget->add_operation_button(*widget->m_sqrt_button, Calculator::Operation::Sqrt);
|
||||
m_sqrt_button = *find_descendant_of_type_named<GUI::Button>("sqrt_button");
|
||||
add_operation_button(*m_sqrt_button, Calculator::Operation::Sqrt);
|
||||
|
||||
widget->m_inverse_button = *widget->find_descendant_of_type_named<GUI::Button>("inverse_button");
|
||||
widget->add_operation_button(*widget->m_inverse_button, Calculator::Operation::Inverse);
|
||||
m_inverse_button = *find_descendant_of_type_named<GUI::Button>("inverse_button");
|
||||
add_operation_button(*m_inverse_button, Calculator::Operation::Inverse);
|
||||
|
||||
widget->m_percent_button = *widget->find_descendant_of_type_named<GUI::Button>("mod_button");
|
||||
widget->add_operation_button(*widget->m_percent_button, Calculator::Operation::Percent);
|
||||
m_percent_button = *find_descendant_of_type_named<GUI::Button>("mod_button");
|
||||
add_operation_button(*m_percent_button, Calculator::Operation::Percent);
|
||||
|
||||
widget->m_equals_button = *widget->find_descendant_of_type_named<GUI::Button>("equal_button");
|
||||
widget->add_operation_button(*widget->m_equals_button, Calculator::Operation::Equals);
|
||||
m_equals_button = *find_descendant_of_type_named<GUI::Button>("equal_button");
|
||||
add_operation_button(*m_equals_button, Calculator::Operation::Equals);
|
||||
|
||||
return widget;
|
||||
return {};
|
||||
}
|
||||
|
||||
void CalculatorWidget::perform_operation(Calculator::Operation operation)
|
||||
|
|
|
@ -20,7 +20,8 @@ namespace Calculator {
|
|||
class CalculatorWidget final : public GUI::Widget {
|
||||
C_OBJECT(CalculatorWidget)
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<CalculatorWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<CalculatorWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual ~CalculatorWidget() override = default;
|
||||
String get_entry();
|
||||
|
@ -34,7 +35,6 @@ public:
|
|||
void set_rounding_custom(GUI::Action& action, StringView);
|
||||
|
||||
private:
|
||||
static ErrorOr<NonnullRefPtr<CalculatorWidget>> try_create();
|
||||
CalculatorWidget() = default;
|
||||
|
||||
void add_operation_button(GUI::Button&, Calculator::Operation);
|
||||
|
|
|
@ -42,7 +42,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
window->set_resizable(false);
|
||||
window->resize(250, 215);
|
||||
|
||||
auto widget = TRY(Calculator::CalculatorWidget::create());
|
||||
auto widget = TRY(Calculator::CalculatorWidget::try_create());
|
||||
window->set_main_widget(widget.ptr());
|
||||
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
|
|
|
@ -30,14 +30,7 @@ void CalendarSettingsWidget::reset_default_values()
|
|||
m_default_view_combobox->set_text("Month");
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<CalendarSettingsWidget>> CalendarSettingsWidget::create()
|
||||
{
|
||||
auto widget = TRY(try_create());
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> CalendarSettingsWidget::setup()
|
||||
ErrorOr<void> CalendarSettingsWidget::initialize()
|
||||
{
|
||||
m_first_day_of_week_combobox = *find_descendant_of_type_named<GUI::ComboBox>("first_day_of_week");
|
||||
m_first_day_of_week_combobox->set_text(Config::read_string("Calendar"sv, "View"sv, "FirstDayOfWeek"sv, "Sunday"sv));
|
||||
|
|
|
@ -15,16 +15,15 @@ class CalendarSettingsWidget final : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(CalendarSettingsWidget)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<CalendarSettingsWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<CalendarSettingsWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual void apply_settings() override;
|
||||
virtual void reset_default_values() override;
|
||||
|
||||
private:
|
||||
CalendarSettingsWidget() = default;
|
||||
static ErrorOr<NonnullRefPtr<CalendarSettingsWidget>> try_create();
|
||||
|
||||
ErrorOr<void> setup();
|
||||
static constexpr Array<StringView, 2> const m_view_modes = { "Month"sv, "Year"sv };
|
||||
|
||||
RefPtr<GUI::ComboBox> m_first_day_of_week_combobox;
|
||||
|
|
|
@ -33,7 +33,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
auto app_icon = GUI::Icon::default_icon("app-calendar"sv);
|
||||
|
||||
auto window = TRY(GUI::SettingsWindow::create("Calendar Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes));
|
||||
(void)TRY(window->add_tab(TRY(CalendarSettings::CalendarSettingsWidget::create()), "Calendar"_string, "Calendar"sv));
|
||||
(void)TRY(window->add_tab<CalendarSettings::CalendarSettingsWidget>("Calendar"_string, "Calendar"sv));
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
window->set_active_tab(selected_tab);
|
||||
|
||||
|
|
|
@ -151,13 +151,6 @@ ErrorOr<void> CertificateStoreWidget::export_pem()
|
|||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<CertificateStoreWidget>> CertificateStoreWidget::create()
|
||||
{
|
||||
auto widget = TRY(CertificateStoreWidget::try_create());
|
||||
TRY(widget->initialize());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> CertificateStoreWidget::initialize()
|
||||
{
|
||||
m_root_ca_tableview = find_descendant_of_type_named<GUI::TableView>("root_ca_tableview");
|
||||
|
|
|
@ -58,14 +58,13 @@ class CertificateStoreWidget : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(CertStoreWidget)
|
||||
public:
|
||||
virtual ~CertificateStoreWidget() override = default;
|
||||
static ErrorOr<NonnullRefPtr<CertificateStoreWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<CertificateStoreWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
virtual void apply_settings() override {};
|
||||
|
||||
private:
|
||||
static ErrorOr<NonnullRefPtr<CertificateStoreWidget>> try_create();
|
||||
CertificateStoreWidget() = default;
|
||||
|
||||
ErrorOr<void> initialize();
|
||||
ErrorOr<void> import_pem();
|
||||
ErrorOr<void> export_pem();
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ ErrorOr<int> serenity_main(Main::Arguments args)
|
|||
|
||||
auto app_icon = GUI::Icon::default_icon("certificate"sv);
|
||||
auto window = TRY(GUI::SettingsWindow::create("Certificate Settings", GUI::SettingsWindow::ShowDefaultsButton::No));
|
||||
TRY(window->add_tab(TRY(CertificateSettings::CertificateStoreWidget::create()), "Certificate Store"_string, "certificate"sv));
|
||||
(void)TRY(window->add_tab<CertificateSettings::CertificateStoreWidget>("Certificate Store"_string, "certificate"sv));
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
|
||||
window->show();
|
||||
|
|
|
@ -61,13 +61,6 @@ void CardGamePreview::paint_event(GUI::PaintEvent& event)
|
|||
stack->paint(painter, background_color);
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<CardSettingsWidget>> CardSettingsWidget::create()
|
||||
{
|
||||
auto card_settings_widget = TRY(try_create());
|
||||
TRY(card_settings_widget->initialize());
|
||||
return card_settings_widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> CardSettingsWidget::initialize()
|
||||
{
|
||||
auto background_color = Gfx::Color::from_string(Config::read_string("Games"sv, "Cards"sv, "BackgroundColor"sv)).value_or(Gfx::Color::from_rgb(0x008000));
|
||||
|
|
|
@ -21,7 +21,7 @@ class CardSettingsWidget final : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(CardSettingsWidget)
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<CardSettingsWidget>> try_create();
|
||||
static ErrorOr<NonnullRefPtr<CardSettingsWidget>> create();
|
||||
ErrorOr<void> initialize();
|
||||
virtual ~CardSettingsWidget() override = default;
|
||||
|
||||
virtual void apply_settings() override;
|
||||
|
@ -29,7 +29,6 @@ public:
|
|||
|
||||
private:
|
||||
CardSettingsWidget() = default;
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
bool set_card_back_image_path(StringView);
|
||||
String card_back_image_path() const;
|
||||
|
|
|
@ -231,13 +231,6 @@ void ChessGamePreview::paint_event(GUI::PaintEvent& event)
|
|||
}
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<ChessSettingsWidget>> ChessSettingsWidget::create()
|
||||
{
|
||||
auto chess_settings_widget = TRY(try_create());
|
||||
TRY(chess_settings_widget->initialize());
|
||||
return chess_settings_widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> ChessSettingsWidget::initialize()
|
||||
{
|
||||
auto piece_set_name = Config::read_string("Games"sv, "Chess"sv, "PieceSet"sv, "Classic"sv);
|
||||
|
|
|
@ -18,7 +18,7 @@ class ChessSettingsWidget final : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(ChessSettingsWidget)
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<ChessSettingsWidget>> try_create();
|
||||
static ErrorOr<NonnullRefPtr<ChessSettingsWidget>> create();
|
||||
ErrorOr<void> initialize();
|
||||
virtual ~ChessSettingsWidget() override = default;
|
||||
|
||||
virtual void apply_settings() override;
|
||||
|
@ -26,7 +26,6 @@ public:
|
|||
|
||||
private:
|
||||
ChessSettingsWidget() = default;
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
Vector<ByteString> m_piece_sets;
|
||||
|
||||
|
|
|
@ -35,10 +35,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
|
||||
auto window = TRY(GUI::SettingsWindow::create("Games Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes));
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
auto widget_cards = TRY(GamesSettings::CardSettingsWidget::create());
|
||||
auto widget_chess = TRY(GamesSettings::ChessSettingsWidget::create());
|
||||
(void)TRY(window->add_tab(widget_cards, "Cards"_string, "cards"sv));
|
||||
(void)TRY(window->add_tab(widget_chess, "Chess"_string, "chess"sv));
|
||||
(void)TRY(window->add_tab<GamesSettings::CardSettingsWidget>("Cards"_string, "cards"sv));
|
||||
(void)TRY(window->add_tab<GamesSettings::ChessSettingsWidget>("Chess"_string, "chess"sv));
|
||||
window->set_active_tab(selected_tab);
|
||||
|
||||
window->show();
|
||||
|
|
|
@ -61,7 +61,7 @@ ErrorOr<void> MainWidget::set_start_page(Vector<StringView, 2> query_parameters)
|
|||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> MainWidget::initialize_fallibles(GUI::Window& window)
|
||||
ErrorOr<void> MainWidget::initialize(GUI::Window& window)
|
||||
{
|
||||
m_toolbar = find_descendant_of_type_named<GUI::Toolbar>("toolbar");
|
||||
m_tab_widget = find_descendant_of_type_named<GUI::TabWidget>("tab_widget");
|
||||
|
|
|
@ -21,7 +21,7 @@ public:
|
|||
|
||||
static ErrorOr<NonnullRefPtr<MainWidget>> try_create();
|
||||
|
||||
ErrorOr<void> initialize_fallibles(GUI::Window&);
|
||||
ErrorOr<void> initialize(GUI::Window&);
|
||||
ErrorOr<void> set_start_page(Vector<StringView, 2> query_parameters);
|
||||
|
||||
private:
|
||||
|
|
|
@ -63,7 +63,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
auto main_widget = TRY(MainWidget::try_create());
|
||||
window->set_main_widget(main_widget);
|
||||
|
||||
TRY(main_widget->initialize_fallibles(window));
|
||||
TRY(main_widget->initialize(window));
|
||||
TRY(main_widget->set_start_page(query_parameters));
|
||||
|
||||
window->show();
|
||||
|
|
|
@ -15,14 +15,7 @@
|
|||
|
||||
namespace Maps {
|
||||
|
||||
ErrorOr<NonnullRefPtr<FavoritesPanel>> FavoritesPanel::create()
|
||||
{
|
||||
auto widget = TRY(try_create());
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> FavoritesPanel::setup()
|
||||
ErrorOr<void> FavoritesPanel::initialize()
|
||||
{
|
||||
m_empty_container = *find_descendant_of_type_named<GUI::Frame>("empty_container");
|
||||
m_favorites_list = *find_descendant_of_type_named<GUI::ListView>("favorites_list");
|
||||
|
|
|
@ -22,7 +22,8 @@ public:
|
|||
MapWidget::LatLng latlng;
|
||||
int zoom;
|
||||
};
|
||||
static ErrorOr<NonnullRefPtr<FavoritesPanel>> create();
|
||||
static ErrorOr<NonnullRefPtr<FavoritesPanel>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
void load_favorites();
|
||||
void reset();
|
||||
|
@ -34,10 +35,6 @@ public:
|
|||
protected:
|
||||
FavoritesPanel() = default;
|
||||
|
||||
static ErrorOr<NonnullRefPtr<FavoritesPanel>> try_create();
|
||||
|
||||
ErrorOr<void> setup();
|
||||
|
||||
private:
|
||||
ErrorOr<void> edit_favorite(int row);
|
||||
void favorites_changed();
|
||||
|
|
|
@ -9,14 +9,7 @@
|
|||
|
||||
namespace Maps {
|
||||
|
||||
ErrorOr<NonnullRefPtr<SearchPanel>> SearchPanel::create()
|
||||
{
|
||||
auto widget = TRY(try_create());
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> SearchPanel::setup()
|
||||
ErrorOr<void> SearchPanel::initialize()
|
||||
{
|
||||
m_request_client = TRY(Protocol::RequestClient::try_create());
|
||||
|
||||
|
|
|
@ -21,7 +21,8 @@ class SearchPanel final : public GUI::Widget {
|
|||
C_OBJECT(SearchPanel)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<SearchPanel>> create();
|
||||
static ErrorOr<NonnullRefPtr<SearchPanel>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
void search(StringView query);
|
||||
void reset();
|
||||
|
@ -37,10 +38,6 @@ public:
|
|||
private:
|
||||
SearchPanel() = default;
|
||||
|
||||
static ErrorOr<NonnullRefPtr<SearchPanel>> try_create();
|
||||
|
||||
ErrorOr<void> setup();
|
||||
|
||||
RefPtr<Protocol::RequestClient> m_request_client;
|
||||
RefPtr<Protocol::Request> m_request;
|
||||
RefPtr<GUI::TextBox> m_search_textbox;
|
||||
|
|
|
@ -72,7 +72,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
int panel_width = Config::read_i32("Maps"sv, "Panel"sv, "Width"sv, INT_MIN);
|
||||
|
||||
// Search panel
|
||||
auto search_panel = TRY(Maps::SearchPanel::create());
|
||||
auto search_panel = TRY(Maps::SearchPanel::try_create());
|
||||
search_panel->on_places_change = [&map_widget](auto) { map_widget.remove_markers_with_name("search"sv); };
|
||||
search_panel->on_selected_place_change = [&map_widget](auto const& place) {
|
||||
// Remove old search marker
|
||||
|
@ -105,7 +105,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
|
||||
// Favorites panel
|
||||
auto marker_red_image = TRY(Gfx::Bitmap::load_from_file("/res/graphics/maps/marker-red.png"sv));
|
||||
auto favorites_panel = TRY(Maps::FavoritesPanel::create());
|
||||
auto favorites_panel = TRY(Maps::FavoritesPanel::try_create());
|
||||
favorites_panel->on_favorites_change = [&map_widget, marker_red_image](auto const& favorites) {
|
||||
// Sync all favorites markers
|
||||
map_widget.remove_markers_with_name("favorites"sv);
|
||||
|
|
|
@ -14,13 +14,6 @@
|
|||
|
||||
namespace MapsSettings {
|
||||
|
||||
ErrorOr<NonnullRefPtr<MapsSettingsWidget>> MapsSettingsWidget::create()
|
||||
{
|
||||
auto widget = TRY(try_create());
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
void MapsSettingsWidget::apply_settings()
|
||||
{
|
||||
// Tile Provider
|
||||
|
@ -43,7 +36,7 @@ void MapsSettingsWidget::reset_default_values()
|
|||
set_tile_provider(Maps::default_tile_provider_url_format);
|
||||
}
|
||||
|
||||
ErrorOr<void> MapsSettingsWidget::setup()
|
||||
ErrorOr<void> MapsSettingsWidget::initialize()
|
||||
{
|
||||
// Tile Provider
|
||||
Vector<GUI::JsonArrayModel::FieldSpec> tile_provider_fields;
|
||||
|
|
|
@ -14,16 +14,15 @@ class MapsSettingsWidget final : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(MapsSettingsWidget)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<MapsSettingsWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<MapsSettingsWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual void apply_settings() override;
|
||||
virtual void reset_default_values() override;
|
||||
|
||||
private:
|
||||
MapsSettingsWidget() = default;
|
||||
static ErrorOr<NonnullRefPtr<MapsSettingsWidget>> try_create();
|
||||
|
||||
ErrorOr<void> setup();
|
||||
void set_tile_provider(StringView url);
|
||||
|
||||
RefPtr<GUI::ComboBox> m_tile_provider_combobox;
|
||||
|
|
|
@ -27,7 +27,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
auto window = TRY(GUI::SettingsWindow::create("Maps Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes));
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
|
||||
(void)TRY(window->add_tab(TRY(MapsSettings::MapsSettingsWidget::create()), "Maps"_string, "maps"sv));
|
||||
(void)TRY(window->add_tab<MapsSettings::MapsSettingsWidget>("Maps"_string, "maps"sv));
|
||||
|
||||
window->show();
|
||||
return app->exec();
|
||||
|
|
|
@ -29,14 +29,7 @@ static int netmask_to_cidr(IPv4Address const& address)
|
|||
return 32 - count_trailing_zeroes_safe(address_in_host_representation);
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<NetworkSettingsWidget>> NetworkSettingsWidget::create()
|
||||
{
|
||||
auto widget = TRY(try_create());
|
||||
TRY(widget->setup());
|
||||
return widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> NetworkSettingsWidget::setup()
|
||||
ErrorOr<void> NetworkSettingsWidget::initialize()
|
||||
{
|
||||
m_adapters_combobox = *find_descendant_of_type_named<GUI::ComboBox>("adapters_combobox");
|
||||
m_enabled_checkbox = *find_descendant_of_type_named<GUI::CheckBox>("enabled_checkbox");
|
||||
|
|
|
@ -16,17 +16,14 @@ class NetworkSettingsWidget : public GUI::SettingsWindow::Tab {
|
|||
C_OBJECT_ABSTRACT(NetworkSettingsWidget)
|
||||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<NetworkSettingsWidget>> create();
|
||||
static ErrorOr<NonnullRefPtr<NetworkSettingsWidget>> try_create();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual void apply_settings() override;
|
||||
void switch_adapter(ByteString const& adapter);
|
||||
|
||||
protected:
|
||||
static ErrorOr<NonnullRefPtr<NetworkSettingsWidget>> try_create();
|
||||
|
||||
private:
|
||||
NetworkSettingsWidget() = default;
|
||||
ErrorOr<void> setup();
|
||||
|
||||
struct NetworkAdapterData {
|
||||
bool enabled = false;
|
||||
|
|
|
@ -37,7 +37,7 @@ ErrorOr<int> serenity_main(Main::Arguments args)
|
|||
auto app_icon = GUI::Icon::default_icon("network"sv);
|
||||
auto window = TRY(GUI::SettingsWindow::create("Network Settings", GUI::SettingsWindow::ShowDefaultsButton::No));
|
||||
|
||||
auto network_settings_widget = TRY(NetworkSettings::NetworkSettingsWidget::create());
|
||||
auto network_settings_widget = TRY(NetworkSettings::NetworkSettingsWidget::try_create());
|
||||
TRY(window->add_tab(network_settings_widget, "Network"_string, "network"sv));
|
||||
if (!adapter.is_null()) {
|
||||
network_settings_widget->switch_adapter(adapter);
|
||||
|
|
|
@ -18,7 +18,7 @@ ExportProgressWindow::ExportProgressWindow(GUI::Window& parent_window, Atomic<in
|
|||
{
|
||||
}
|
||||
|
||||
ErrorOr<void> ExportProgressWindow::initialize_fallibles()
|
||||
ErrorOr<void> ExportProgressWindow::initialize()
|
||||
{
|
||||
auto main_widget = set_main_widget<GUI::Widget>();
|
||||
TRY(main_widget->load_from_gml(export_progress_widget));
|
||||
|
|
|
@ -17,7 +17,7 @@ class ExportProgressWindow : public GUI::Dialog {
|
|||
public:
|
||||
virtual ~ExportProgressWindow() override = default;
|
||||
|
||||
ErrorOr<void> initialize_fallibles();
|
||||
ErrorOr<void> initialize();
|
||||
|
||||
virtual void timer_event(Core::TimerEvent&) override;
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
|
||||
auto wav_progress_window = ExportProgressWindow::construct(*window, wav_percent_written);
|
||||
TRY(wav_progress_window->initialize_fallibles());
|
||||
TRY(wav_progress_window->initialize());
|
||||
|
||||
auto main_widget_updater = TRY(Core::Timer::create_repeating(static_cast<int>((1 / 30.0) * 1000), [&] {
|
||||
if (window->is_active())
|
||||
|
|
|
@ -24,16 +24,7 @@
|
|||
|
||||
namespace VideoPlayer {
|
||||
|
||||
ErrorOr<NonnullRefPtr<VideoPlayerWidget>> VideoPlayerWidget::create()
|
||||
{
|
||||
auto main_widget = TRY(try_create());
|
||||
|
||||
TRY(main_widget->setup_interface());
|
||||
|
||||
return main_widget;
|
||||
}
|
||||
|
||||
ErrorOr<void> VideoPlayerWidget::setup_interface()
|
||||
ErrorOr<void> VideoPlayerWidget::initialize()
|
||||
{
|
||||
m_video_display = find_descendant_of_type_named<VideoPlayer::VideoFrameWidget>("video_frame");
|
||||
m_video_display->on_click = [&]() { toggle_pause(); };
|
||||
|
|
|
@ -25,7 +25,7 @@ class VideoPlayerWidget final : public GUI::Widget {
|
|||
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<VideoPlayerWidget>> try_create();
|
||||
static ErrorOr<NonnullRefPtr<VideoPlayerWidget>> create();
|
||||
ErrorOr<void> initialize();
|
||||
virtual ~VideoPlayerWidget() override = default;
|
||||
void close_file();
|
||||
void open_file(FileSystemAccessClient::File filename);
|
||||
|
@ -43,7 +43,6 @@ public:
|
|||
|
||||
private:
|
||||
VideoPlayerWidget() = default;
|
||||
ErrorOr<void> setup_interface();
|
||||
void update_play_pause_icon();
|
||||
void update_seek_slider_max();
|
||||
void set_current_timestamp(Duration);
|
||||
|
|
|
@ -34,7 +34,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
TRY(Core::System::unveil("/res", "r"));
|
||||
TRY(Core::System::unveil(nullptr, nullptr));
|
||||
|
||||
auto main_widget = TRY(VideoPlayer::VideoPlayerWidget::create());
|
||||
auto main_widget = TRY(VideoPlayer::VideoPlayerWidget::try_create());
|
||||
window->set_main_widget(main_widget);
|
||||
main_widget->update_title();
|
||||
TRY(main_widget->initialize_menubar(window));
|
||||
|
|
Loading…
Add table
Reference in a new issue