22#include < stdlib.h>
33#include " pomelo-settings.h"
44#include < glib/gstdio.h>
5+ #include < fmt/core.h>
56
67using namespace std ;
7-
8- const char *GROUP_NAME = " pomelo" ;
8+ using namespace fmt ;
99
1010static void rec_mkdir (std::string path)
1111{
@@ -34,6 +34,13 @@ PomeloSettings::PomeloSettings()
3434 config_dir += " /pomelo" ;
3535 rec_mkdir (config_dir);
3636 m_settings_file = config_dir + " /pomelo.conf" ;
37+ m_group_name = " pomelo" ;
38+ if (!has_group (" pomelo" ))
39+ {
40+ print (" Initializing pomelo\n " );
41+ set_value (" pomelo" ," initialized" , " true" );
42+ }
43+
3744 try {
3845 load ();
3946 }
@@ -44,42 +51,62 @@ PomeloSettings::PomeloSettings()
4451
4552void PomeloSettings::save ()
4653{
47- save_to_file (m_settings_file);
54+ try
55+ {
56+ save_to_file (m_settings_file);
57+ }
58+ catch (Glib::KeyFileError& err)
59+ {
60+ print (" Failed saving to file {}: code={}\n " , m_settings_file, err.code ());
61+ }
4862}
4963
5064void PomeloSettings::load ()
5165{
52- load_from_file (m_settings_file);
66+ try
67+ {
68+ load_from_file (m_settings_file);
69+ }
70+ catch (Glib::KeyFileError& err)
71+ {
72+ print (" Failed saving to file {}: code={}\n " , m_settings_file, err.code ());
73+ }
5374}
5475
5576// Convenience functions as we have only one group "pomelo"
5677std::string PomeloSettings::get_string_default (const gchar *key, const char *default_value)
5778{
58- if (!has_key (GROUP_NAME , key))
79+ if (!has_key (m_group_name , key))
5980 return default_value;
60- return get_string (GROUP_NAME , key);
81+ return get_string (m_group_name , key);
6182}
6283
6384int PomeloSettings::get_int_default (const gchar *key, int default_value)
6485{
65- if (!has_key (GROUP_NAME, key))
86+ print (" Getting {}\n " , key);
87+ if (!has_group (m_group_name) || !has_key (m_group_name, key))
6688 return default_value;
67- return get_integer (GROUP_NAME , key);
89+ return get_integer (m_group_name , key);
6890}
91+
6992int PomeloSettings::get_double_default (const gchar *key, double default_value)
7093{
71- if (!has_key (GROUP_NAME, key))
94+ print (" Getting {}\n " , key);
95+ if (!has_group (m_group_name) || !has_key (m_group_name, key))
7296 return default_value;
73- return get_double (GROUP_NAME, key);
97+
98+ return get_double (m_group_name, key);
7499}
75100
76101void PomeloSettings::set_int (const char *key, int value)
77102{
78- set_integer (GROUP_NAME, key, value);
103+ print (" Setting {} to {}\n " , key, value);
104+ set_integer (m_group_name, key, value);
79105}
80106
81107void PomeloSettings::set_double (const char *key, double value)
82108{
83- KeyFile::set_double (GROUP_NAME, key, value);
109+ print (" Setting {} to {}\n " , key, value);
110+ KeyFile::set_double (m_group_name, key, value);
84111}
85112
0 commit comments