Serenity Operating System
1/*
2 * Copyright (c) 2022, Filiph Sandström <filiph.sandstrom@filfatstudios.com>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include "SettingsDialog.h"
8#include "Settings.h"
9#include <QCloseEvent>
10#include <QLabel>
11
12extern Browser::Settings* s_settings;
13
14SettingsDialog::SettingsDialog(QMainWindow* window)
15 : m_window(window)
16{
17 m_layout = new QFormLayout(this);
18 m_homepage = new QLineEdit(this);
19 m_new_tab_page = new QLineEdit(this);
20 m_ok_button = new QPushButton("&Save", this);
21
22 m_layout->addRow(new QLabel("HomePage", this), m_homepage);
23 m_layout->addRow(new QLabel("Page on New Tab", this), m_new_tab_page);
24 m_layout->addWidget(m_ok_button);
25
26 m_homepage->setText(s_settings->homepage());
27
28 QObject::connect(m_ok_button, &QPushButton::released, this, [this] {
29 close();
30 });
31
32 setWindowTitle("Settings");
33 setFixedWidth(300);
34 setFixedHeight(150);
35 setLayout(m_layout);
36 show();
37 setFocus();
38}
39
40void SettingsDialog::closeEvent(QCloseEvent* event)
41{
42 save();
43 event->accept();
44}
45
46void SettingsDialog::save()
47{
48 // FIXME: Validate data.
49 s_settings->set_homepage(m_homepage->text());
50 s_settings->set_new_tab_page(m_new_tab_page->text());
51}