summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Userland/Applications/Welcome/WelcomeWidget.cpp9
-rw-r--r--Userland/Applications/Welcome/WelcomeWidget.h1
-rw-r--r--Userland/Applications/Welcome/WelcomeWindow.gml4
-rw-r--r--Userland/Applications/Welcome/main.cpp3
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;