LibGUI: Make GUI::SettingsWindow::add_tab() return ErrorOr

This allows us to use TRY() when creating settings UI.
This commit is contained in:
Andreas Kling 2021-11-27 17:37:00 +01:00
parent 7c19e86a50
commit 45844f9338
Notes: sideshowbarker 2024-07-18 00:36:10 +09:00
7 changed files with 15 additions and 15 deletions

View File

@ -26,7 +26,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto window = TRY(GUI::SettingsWindow::try_create("Browser Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes));
window->set_icon(app_icon.bitmap_for_size(16));
window->add_tab<BrowserSettingsWidget>("Browser");
TRY(window->add_tab<BrowserSettingsWidget>("Browser"));
window->show();
return app->exec();

View File

@ -27,10 +27,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto app_icon = GUI::Icon::default_icon("app-display-settings");
auto window = TRY(GUI::SettingsWindow::try_create("Display Settings"));
window->add_tab<DisplaySettings::BackgroundSettingsWidget>("Background");
window->add_tab<DisplaySettings::FontSettingsWidget>("Fonts");
window->add_tab<DisplaySettings::MonitorSettingsWidget>("Monitor");
window->add_tab<DisplaySettings::DesktopSettingsWidget>("Workspaces");
TRY(window->add_tab<DisplaySettings::BackgroundSettingsWidget>("Background"));
TRY(window->add_tab<DisplaySettings::FontSettingsWidget>("Fonts"));
TRY(window->add_tab<DisplaySettings::MonitorSettingsWidget>("Monitor"));
TRY(window->add_tab<DisplaySettings::DesktopSettingsWidget>("Workspaces"));
window->set_icon(app_icon.bitmap_for_size(16));

View File

@ -31,7 +31,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto window = TRY(GUI::SettingsWindow::try_create("Keyboard Settings"));
window->set_icon(app_icon.bitmap_for_size(16));
window->add_tab<KeyboardSettingsWidget>("Keyboard");
TRY(window->add_tab<KeyboardSettingsWidget>("Keyboard"));
window->show();
return app->exec();

View File

@ -28,7 +28,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto app_icon = GUI::Icon::default_icon("app-mail");
auto window = GUI::SettingsWindow::construct("Mail Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes);
window->add_tab<MailSettingsWidget>("Mail");
TRY(window->add_tab<MailSettingsWidget>("Mail"));
window->set_icon(app_icon.bitmap_for_size(16));
window->show();

View File

@ -26,8 +26,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto app_icon = GUI::Icon::default_icon("app-mouse");
auto window = TRY(GUI::SettingsWindow::try_create("Mouse Settings", GUI::SettingsWindow::ShowDefaultsButton::Yes));
window->add_tab<MouseWidget>("Mouse");
window->add_tab<ThemeWidget>("Cursor Theme");
TRY(window->add_tab<MouseWidget>("Mouse"));
TRY(window->add_tab<ThemeWidget>("Cursor Theme"));
window->set_icon(app_icon.bitmap_for_size(16));
window->show();

View File

@ -28,8 +28,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto window = TRY(GUI::SettingsWindow::try_create("Terminal Settings"));
window->set_icon(app_icon.bitmap_for_size(16));
window->add_tab<TerminalSettingsMainWidget>("Terminal");
window->add_tab<TerminalSettingsViewWidget>("View");
TRY(window->add_tab<TerminalSettingsMainWidget>("Terminal"));
TRY(window->add_tab<TerminalSettingsViewWidget>("View"));
window->show();
return app->exec();

View File

@ -32,11 +32,11 @@ public:
virtual ~SettingsWindow() override;
template<class T, class... Args>
T& add_tab(StringView const& title, Args&&... args)
ErrorOr<NonnullRefPtr<T>> add_tab(String title, Args&&... args)
{
auto& t = m_tab_widget->add_tab<T>(title, forward<Args>(args)...);
m_tabs.append(t);
return t;
auto tab = TRY(m_tab_widget->try_add_tab<T>(move(title), forward<Args>(args)...));
TRY(m_tabs.try_append(tab));
return tab;
}
private: