git-subtree-dir: gtk git-subtree-mainline:c710c6e053git-subtree-split:7d0dfb455a
69 lines
2.0 KiB
Vala
69 lines
2.0 KiB
Vala
using Adw;
|
|
using Gtk;
|
|
|
|
public class PreferencesWindow : Adw.PreferencesDialog {
|
|
private Adw.EntryRow server_url_row;
|
|
private Adw.EntryRow username_row;
|
|
private Adw.PasswordEntryRow password_row;
|
|
private Settings settings;
|
|
|
|
public PreferencesWindow (Gtk.Window parent) {
|
|
Object (
|
|
title: "Settings"
|
|
);
|
|
|
|
add_css_class ("settings-dialog");
|
|
|
|
var page = new PreferencesPage ();
|
|
page.margin_top = 14;
|
|
page.margin_bottom = 14;
|
|
page.margin_start = 50;
|
|
page.margin_end = 50;
|
|
add (page);
|
|
|
|
var connection_group = new PreferencesGroup ();
|
|
connection_group.title = "Connection Settings";
|
|
page.add (connection_group);
|
|
|
|
server_url_row = new Adw.EntryRow ();
|
|
server_url_row.title = "Server URL";
|
|
connection_group.add (server_url_row);
|
|
|
|
username_row = new Adw.EntryRow ();
|
|
username_row.title = "Username";
|
|
connection_group.add (username_row);
|
|
|
|
password_row = new Adw.PasswordEntryRow ();
|
|
password_row.title = "Password";
|
|
connection_group.add (password_row);
|
|
|
|
settings = new Settings();
|
|
settings.settings_ready.connect(load_settings);
|
|
load_settings();
|
|
|
|
unowned var self = this;
|
|
closed.connect(() => {
|
|
self.save_settings();
|
|
});
|
|
}
|
|
|
|
private void load_settings() {
|
|
try {
|
|
username_row.text = settings.get_username();
|
|
server_url_row.text = settings.get_server_url();
|
|
password_row.text = settings.get_password();
|
|
} catch (Error e) {
|
|
warning("Failed to load settings: %s", e.message);
|
|
}
|
|
}
|
|
|
|
private void save_settings() {
|
|
try {
|
|
settings.set_server_url(server_url_row.text);
|
|
settings.set_username(username_row.text);
|
|
settings.set_password(password_row.text);
|
|
} catch (Error e) {
|
|
warning("Failed to save settings: %s", e.message);
|
|
}
|
|
}
|
|
} |