mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 09:37:34 +00:00
TerminalSettings: Convert setting widgets to a failable factory
This commit is contained in:
parent
754a5bda7a
commit
1ad81687e7
2 changed files with 31 additions and 9 deletions
|
@ -29,9 +29,16 @@
|
||||||
#include <LibVT/TerminalWidget.h>
|
#include <LibVT/TerminalWidget.h>
|
||||||
#include <spawn.h>
|
#include <spawn.h>
|
||||||
|
|
||||||
TerminalSettingsMainWidget::TerminalSettingsMainWidget()
|
ErrorOr<NonnullRefPtr<TerminalSettingsMainWidget>> TerminalSettingsMainWidget::try_create()
|
||||||
{
|
{
|
||||||
load_from_gml(terminal_settings_main_gml).release_value_but_fixme_should_propagate_errors();
|
auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) TerminalSettingsMainWidget()));
|
||||||
|
TRY(widget->setup());
|
||||||
|
return widget;
|
||||||
|
}
|
||||||
|
|
||||||
|
ErrorOr<void> TerminalSettingsMainWidget::setup()
|
||||||
|
{
|
||||||
|
TRY(load_from_gml(terminal_settings_main_gml));
|
||||||
|
|
||||||
auto& beep_bell_radio = *find_descendant_of_type_named<GUI::RadioButton>("beep_bell_radio");
|
auto& beep_bell_radio = *find_descendant_of_type_named<GUI::RadioButton>("beep_bell_radio");
|
||||||
auto& visual_bell_radio = *find_descendant_of_type_named<GUI::RadioButton>("visual_bell_radio");
|
auto& visual_bell_radio = *find_descendant_of_type_named<GUI::RadioButton>("visual_bell_radio");
|
||||||
|
@ -77,11 +84,19 @@ TerminalSettingsMainWidget::TerminalSettingsMainWidget()
|
||||||
set_modified(true);
|
set_modified(true);
|
||||||
};
|
};
|
||||||
confirm_close_checkbox.set_checked(m_confirm_close, GUI::AllowCallback::No);
|
confirm_close_checkbox.set_checked(m_confirm_close, GUI::AllowCallback::No);
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
TerminalSettingsViewWidget::TerminalSettingsViewWidget()
|
ErrorOr<NonnullRefPtr<TerminalSettingsViewWidget>> TerminalSettingsViewWidget::try_create()
|
||||||
{
|
{
|
||||||
load_from_gml(terminal_settings_view_gml).release_value_but_fixme_should_propagate_errors();
|
auto widget = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) TerminalSettingsViewWidget()));
|
||||||
|
TRY(widget->setup());
|
||||||
|
return widget;
|
||||||
|
}
|
||||||
|
|
||||||
|
ErrorOr<void> TerminalSettingsViewWidget::setup()
|
||||||
|
{
|
||||||
|
TRY(load_from_gml(terminal_settings_view_gml));
|
||||||
|
|
||||||
auto& slider = *find_descendant_of_type_named<GUI::HorizontalOpacitySlider>("background_opacity_slider");
|
auto& slider = *find_descendant_of_type_named<GUI::HorizontalOpacitySlider>("background_opacity_slider");
|
||||||
m_opacity = Config::read_i32("Terminal"sv, "Window"sv, "Opacity"sv);
|
m_opacity = Config::read_i32("Terminal"sv, "Window"sv, "Opacity"sv);
|
||||||
|
@ -101,7 +116,7 @@ TerminalSettingsViewWidget::TerminalSettingsViewWidget()
|
||||||
else
|
else
|
||||||
m_font = Gfx::FontDatabase::the().get_by_name(font_name);
|
m_font = Gfx::FontDatabase::the().get_by_name(font_name);
|
||||||
m_original_font = m_font;
|
m_original_font = m_font;
|
||||||
font_text.set_text(String::from_deprecated_string(m_font->human_readable_name()).release_value_but_fixme_should_propagate_errors());
|
font_text.set_text(TRY(String::from_deprecated_string(m_font->human_readable_name())));
|
||||||
font_text.set_font(m_font);
|
font_text.set_font(m_font);
|
||||||
font_button.on_click = [&](auto) {
|
font_button.on_click = [&](auto) {
|
||||||
auto picker = GUI::FontPicker::construct(window(), m_font.ptr(), true);
|
auto picker = GUI::FontPicker::construct(window(), m_font.ptr(), true);
|
||||||
|
@ -207,6 +222,7 @@ TerminalSettingsViewWidget::TerminalSettingsViewWidget()
|
||||||
set_modified(true);
|
set_modified(true);
|
||||||
};
|
};
|
||||||
show_scrollbar_checkbox.set_checked(m_show_scrollbar, GUI::AllowCallback::No);
|
show_scrollbar_checkbox.set_checked(m_show_scrollbar, GUI::AllowCallback::No);
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
VT::TerminalWidget::BellMode TerminalSettingsMainWidget::parse_bell(StringView bell_string)
|
VT::TerminalWidget::BellMode TerminalSettingsMainWidget::parse_bell(StringView bell_string)
|
||||||
|
|
|
@ -14,13 +14,16 @@
|
||||||
#include <LibVT/TerminalWidget.h>
|
#include <LibVT/TerminalWidget.h>
|
||||||
|
|
||||||
class TerminalSettingsMainWidget final : public GUI::SettingsWindow::Tab {
|
class TerminalSettingsMainWidget final : public GUI::SettingsWindow::Tab {
|
||||||
C_OBJECT(TerminalSettingsMainWidget)
|
C_OBJECT_ABSTRACT(TerminalSettingsMainWidget)
|
||||||
public:
|
public:
|
||||||
|
static ErrorOr<NonnullRefPtr<TerminalSettingsMainWidget>> try_create();
|
||||||
|
|
||||||
virtual void apply_settings() override;
|
virtual void apply_settings() override;
|
||||||
virtual void cancel_settings() override;
|
virtual void cancel_settings() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TerminalSettingsMainWidget();
|
TerminalSettingsMainWidget() = default;
|
||||||
|
ErrorOr<void> setup();
|
||||||
void write_back_settings() const;
|
void write_back_settings() const;
|
||||||
|
|
||||||
static VT::TerminalWidget::BellMode parse_bell(StringView bell_string);
|
static VT::TerminalWidget::BellMode parse_bell(StringView bell_string);
|
||||||
|
@ -34,13 +37,16 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
class TerminalSettingsViewWidget final : public GUI::SettingsWindow::Tab {
|
class TerminalSettingsViewWidget final : public GUI::SettingsWindow::Tab {
|
||||||
C_OBJECT(TerminalSettingsViewWidget)
|
C_OBJECT_ABSTRACT(TerminalSettingsViewWidget)
|
||||||
public:
|
public:
|
||||||
|
static ErrorOr<NonnullRefPtr<TerminalSettingsViewWidget>> try_create();
|
||||||
|
|
||||||
virtual void apply_settings() override;
|
virtual void apply_settings() override;
|
||||||
virtual void cancel_settings() override;
|
virtual void cancel_settings() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TerminalSettingsViewWidget();
|
TerminalSettingsViewWidget() = default;
|
||||||
|
ErrorOr<void> setup();
|
||||||
void write_back_settings() const;
|
void write_back_settings() const;
|
||||||
|
|
||||||
RefPtr<Gfx::Font const> m_font;
|
RefPtr<Gfx::Font const> m_font;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue