diff options
Diffstat (limited to 'Userland/Applications/Welcome')
-rw-r--r-- | Userland/Applications/Welcome/WelcomeWidget.cpp | 9 | ||||
-rw-r--r-- | Userland/Applications/Welcome/WelcomeWidget.h | 1 | ||||
-rw-r--r-- | Userland/Applications/Welcome/WelcomeWindow.gml | 4 | ||||
-rw-r--r-- | Userland/Applications/Welcome/main.cpp | 3 |
4 files changed, 15 insertions, 2 deletions
diff --git a/Userland/Applications/Welcome/WelcomeWidget.cpp b/Userland/Applications/Welcome/WelcomeWidget.cpp index 39442953bd..439cfc0543 100644 --- a/Userland/Applications/Welcome/WelcomeWidget.cpp +++ b/Userland/Applications/Welcome/WelcomeWidget.cpp @@ -7,10 +7,12 @@ #include "WelcomeWidget.h" #include <AK/Random.h> #include <Applications/Welcome/WelcomeWindowGML.h> +#include <LibConfig/Client.h> #include <LibCore/File.h> #include <LibCore/Process.h> #include <LibGUI/Application.h> #include <LibGUI/Button.h> +#include <LibGUI/CheckBox.h> #include <LibGUI/Label.h> #include <LibGUI/Painter.h> #include <LibGfx/BitmapFont.h> @@ -66,6 +68,13 @@ WelcomeWidget::WelcomeWidget() GUI::Application::the()->quit(); }; + auto exec_path = Config::read_string("SystemServer", "Welcome", "Executable", {}); + m_startup_checkbox = *find_descendant_of_type_named<GUI::CheckBox>("startup_checkbox"); + m_startup_checkbox->set_checked(!exec_path.is_empty()); + m_startup_checkbox->on_checked = [](bool is_checked) { + Config::write_string("SystemServer", "Welcome", "Executable", is_checked ? "/bin/Welcome" : ""); + }; + open_and_parse_readme_file(); open_and_parse_tips_file(); set_random_tip(); diff --git a/Userland/Applications/Welcome/WelcomeWidget.h b/Userland/Applications/Welcome/WelcomeWidget.h index c8d490a1f0..a0853b0d18 100644 --- a/Userland/Applications/Welcome/WelcomeWidget.h +++ b/Userland/Applications/Welcome/WelcomeWidget.h @@ -29,6 +29,7 @@ private: RefPtr<GUI::Button> m_help_button; RefPtr<GUI::Button> m_new_button; RefPtr<GUI::Label> m_tip_label; + RefPtr<GUI::CheckBox> m_startup_checkbox; RefPtr<Web::OutOfProcessWebView> m_web_view; size_t m_initial_tip_index { 0 }; diff --git a/Userland/Applications/Welcome/WelcomeWindow.gml b/Userland/Applications/Welcome/WelcomeWindow.gml index bf3ef46c71..77b7394aa5 100644 --- a/Userland/Applications/Welcome/WelcomeWindow.gml +++ b/Userland/Applications/Welcome/WelcomeWindow.gml @@ -104,8 +104,8 @@ @GUI::CheckBox{ name: "startup_checkbox" - text: "Show this Welcome Screen next time SerenityOS starts" - fixed_width: 315 + text: "Show Welcome the next time SerenityOS starts" + autosize: true } @GUI::Widget diff --git a/Userland/Applications/Welcome/main.cpp b/Userland/Applications/Welcome/main.cpp index d939153008..86419ff85c 100644 --- a/Userland/Applications/Welcome/main.cpp +++ b/Userland/Applications/Welcome/main.cpp @@ -5,6 +5,7 @@ */ #include "WelcomeWidget.h" +#include <LibConfig/Client.h> #include <LibGUI/Application.h> #include <LibGUI/Icon.h> #include <LibGUI/Window.h> @@ -19,6 +20,8 @@ int main(int argc, char** argv) auto app = GUI::Application::construct(argc, argv); + Config::pledge_domains("SystemServer"); + if (unveil("/res", "r") < 0) { perror("unveil"); return 1; |