load/save configuration

master
Sebastian Reichel 2012-01-19 19:44:34 +01:00
parent 04a79c06e5
commit 0204abcebc
1 changed files with 27 additions and 2 deletions

View File

@ -23,6 +23,9 @@
*/ */
class Config { class Config {
private KeyFile keyfile;
private string path;
public string control_monitor; public string control_monitor;
public bool control_fullscreen; public bool control_fullscreen;
public string presentation_monitor; public string presentation_monitor;
@ -30,14 +33,36 @@ class Config {
public signal void configuration_changed(); public signal void configuration_changed();
public Config() { public Config() {
path = Environment.get_user_config_dir() + "/pdf-presenter.cfg";
keyfile = new KeyFile();
load(); load();
} }
public void load() { public void load() {
/* TODO: load from ~/.config/pdf-presenter.cfg */ try {
keyfile.load_from_file (path, KeyFileFlags.NONE);
/* monitors section */
control_monitor = keyfile.get_string ("monitors", "control");
presentation_monitor = keyfile.get_string ("monitors", "presentation");
control_fullscreen = keyfile.get_boolean ("monitors", "control_fullscreen");
} catch(Error e) {
stderr.printf("could not load settings: %s\n", e.message);
}
} }
public void save() { public void save() {
/* TODO: save to ~/.config/pdf-presenter.cfg */ /* monitors section */
keyfile.set_string("monitors", "control", control_monitor);
keyfile.set_string("monitors", "presentation", presentation_monitor);
keyfile.set_boolean("monitors", "control_fullscreen", control_fullscreen);
try {
string data = keyfile.to_data();
var file = File.new_for_path(path);
file.replace_contents(data, data.length, null, false, FileCreateFlags.NONE, null);
} catch(Error e) {
stderr.printf("could not save settings: %s\n", e.message);
}
} }
} }