Serenity Operating System
at master 51 lines 1.2 kB view raw
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}