mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:07:46 +00:00
Ladybird: Remove save button from settings dialog
Save new tab page value on change when valid and show red error border when URL is not valid
This commit is contained in:
parent
9510df6eab
commit
43f81f1d0c
2 changed files with 12 additions and 26 deletions
|
@ -9,7 +9,6 @@
|
||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
#include "StringUtils.h"
|
#include "StringUtils.h"
|
||||||
#include <AK/URL.h>
|
#include <AK/URL.h>
|
||||||
#include <QCloseEvent>
|
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
|
||||||
|
@ -19,7 +18,6 @@ SettingsDialog::SettingsDialog(QMainWindow* window)
|
||||||
: m_window(window)
|
: m_window(window)
|
||||||
{
|
{
|
||||||
m_layout = new QFormLayout(this);
|
m_layout = new QFormLayout(this);
|
||||||
m_ok_button = new QPushButton("&Save", this);
|
|
||||||
|
|
||||||
m_enable_search = make<QCheckBox>(this);
|
m_enable_search = make<QCheckBox>(this);
|
||||||
m_enable_search->setChecked(Settings::the()->enable_search());
|
m_enable_search->setChecked(Settings::the()->enable_search());
|
||||||
|
@ -35,6 +33,18 @@ SettingsDialog::SettingsDialog(QMainWindow* window)
|
||||||
|
|
||||||
m_new_tab_page = make<QLineEdit>(this);
|
m_new_tab_page = make<QLineEdit>(this);
|
||||||
m_new_tab_page->setText(Settings::the()->new_tab_page());
|
m_new_tab_page->setText(Settings::the()->new_tab_page());
|
||||||
|
QObject::connect(m_new_tab_page, &QLineEdit::textChanged, this, [this] {
|
||||||
|
auto url_string = MUST(ak_string_from_qstring(m_new_tab_page->text()));
|
||||||
|
m_new_tab_page->setStyleSheet(URL(url_string).is_valid() ? "" : "border: 1px solid red;");
|
||||||
|
});
|
||||||
|
QObject::connect(m_new_tab_page, &QLineEdit::editingFinished, this, [this] {
|
||||||
|
auto url_string = MUST(ak_string_from_qstring(m_new_tab_page->text()));
|
||||||
|
if (URL(url_string).is_valid())
|
||||||
|
Settings::the()->set_new_tab_page(m_new_tab_page->text());
|
||||||
|
});
|
||||||
|
QObject::connect(m_new_tab_page, &QLineEdit::returnPressed, this, [this] {
|
||||||
|
close();
|
||||||
|
});
|
||||||
|
|
||||||
setup_search_engines();
|
setup_search_engines();
|
||||||
|
|
||||||
|
@ -43,11 +53,6 @@ SettingsDialog::SettingsDialog(QMainWindow* window)
|
||||||
m_layout->addRow(new QLabel("Search Engine", this), m_search_engine_dropdown);
|
m_layout->addRow(new QLabel("Search Engine", this), m_search_engine_dropdown);
|
||||||
m_layout->addRow(new QLabel("Enable Autocomplete", this), m_enable_autocomplete);
|
m_layout->addRow(new QLabel("Enable Autocomplete", this), m_enable_autocomplete);
|
||||||
m_layout->addRow(new QLabel("Autocomplete Engine", this), m_autocomplete_engine_dropdown);
|
m_layout->addRow(new QLabel("Autocomplete Engine", this), m_autocomplete_engine_dropdown);
|
||||||
m_layout->addRow(m_ok_button);
|
|
||||||
|
|
||||||
QObject::connect(m_ok_button, &QPushButton::released, this, [this] {
|
|
||||||
close();
|
|
||||||
});
|
|
||||||
|
|
||||||
setWindowTitle("Settings");
|
setWindowTitle("Settings");
|
||||||
setFixedWidth(300);
|
setFixedWidth(300);
|
||||||
|
@ -114,18 +119,4 @@ void SettingsDialog::setup_search_engines()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsDialog::closeEvent(QCloseEvent* event)
|
|
||||||
{
|
|
||||||
save();
|
|
||||||
event->accept();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SettingsDialog::save()
|
|
||||||
{
|
|
||||||
auto url_string = MUST(ak_string_from_qstring(m_new_tab_page->text()));
|
|
||||||
if (!URL(url_string).is_valid())
|
|
||||||
return;
|
|
||||||
Settings::the()->set_new_tab_page(m_new_tab_page->text());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,15 +23,10 @@ class SettingsDialog : public QDialog {
|
||||||
public:
|
public:
|
||||||
explicit SettingsDialog(QMainWindow* window);
|
explicit SettingsDialog(QMainWindow* window);
|
||||||
|
|
||||||
void save();
|
|
||||||
|
|
||||||
virtual void closeEvent(QCloseEvent*) override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setup_search_engines();
|
void setup_search_engines();
|
||||||
|
|
||||||
QFormLayout* m_layout;
|
QFormLayout* m_layout;
|
||||||
QPushButton* m_ok_button { nullptr };
|
|
||||||
QMainWindow* m_window { nullptr };
|
QMainWindow* m_window { nullptr };
|
||||||
OwnPtr<QLineEdit> m_new_tab_page;
|
OwnPtr<QLineEdit> m_new_tab_page;
|
||||||
OwnPtr<QCheckBox> m_enable_search;
|
OwnPtr<QCheckBox> m_enable_search;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue