Code cleanup
This commit is contained in:
parent
c92e7db2e4
commit
e36a988f65
116
src/browser.c
116
src/browser.c
@ -114,7 +114,11 @@ static struct _menubar _browser_menubar[] =
|
||||
|
||||
|
||||
/* prototypes */
|
||||
static char * _browser_get_config_filename(void);
|
||||
static char * _config_get_filename(void);
|
||||
static void _config_load_boolean(Config * config, char const * variable,
|
||||
gboolean * value);
|
||||
static int _config_save_boolean(Config * config, char const * variable,
|
||||
gboolean value);
|
||||
|
||||
|
||||
/* protected */
|
||||
@ -122,24 +126,6 @@ static char * _browser_get_config_filename(void);
|
||||
unsigned int browser_cnt = 0;
|
||||
|
||||
|
||||
/* private */
|
||||
/* functions */
|
||||
static char * _browser_get_config_filename(void)
|
||||
{
|
||||
char const * homedir;
|
||||
size_t len;
|
||||
char * filename;
|
||||
|
||||
if((homedir = getenv("HOME")) == NULL)
|
||||
return NULL;
|
||||
len = strlen(homedir) + 1 + sizeof(BROWSER_CONFIG_FILE);
|
||||
if((filename = malloc(len)) == NULL)
|
||||
return NULL;
|
||||
snprintf(filename, len, "%s/%s", homedir, BROWSER_CONFIG_FILE);
|
||||
return filename;
|
||||
}
|
||||
|
||||
|
||||
/* public */
|
||||
/* functions */
|
||||
/* browser_new */
|
||||
@ -181,8 +167,7 @@ Browser * browser_new(char const * directory)
|
||||
browser->prefs.confirm_before_delete = TRUE;
|
||||
browser->prefs.sort_folders_first = TRUE;
|
||||
browser->prefs.show_hidden_files = FALSE;
|
||||
browser->config = config_new();
|
||||
if(_new_config(browser) != 0
|
||||
if((browser->config = config_new()) == NULL
|
||||
|| browser_config_load(browser) != 0)
|
||||
browser_error(browser, "Error while loading configuration", 0);
|
||||
|
||||
@ -385,19 +370,6 @@ static int _new_pixbufs(Browser * browser)
|
||||
#endif
|
||||
}
|
||||
|
||||
static int _new_config(Browser * browser)
|
||||
{
|
||||
char * filename;
|
||||
|
||||
if((browser->config = config_new()) == NULL)
|
||||
return 1;
|
||||
if((filename = _browser_get_config_filename()) == NULL)
|
||||
return 1;
|
||||
config_load(browser->config, filename); /* XXX ignore errors */
|
||||
free(filename);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _sort_func(GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b,
|
||||
gpointer data)
|
||||
{
|
||||
@ -528,13 +500,16 @@ static void _error_response(GtkDialog * dialog, gint arg, gpointer data)
|
||||
|
||||
|
||||
/* browser_config_load */
|
||||
static void _config_load_boolean(Config * config, char const * variable,
|
||||
gboolean * value);
|
||||
|
||||
int browser_config_load(Browser * browser)
|
||||
{
|
||||
char * filename;
|
||||
|
||||
if(browser->config == NULL)
|
||||
return 0; /* XXX ignore error */
|
||||
if((filename = _config_get_filename()) == NULL)
|
||||
return 1;
|
||||
config_load(browser->config, filename); /* XXX ignore errors */
|
||||
free(filename);
|
||||
_config_load_boolean(browser->config, "confirm_before_delete",
|
||||
&browser->prefs.confirm_before_delete);
|
||||
_config_load_boolean(browser->config, "sort_folders_first",
|
||||
@ -544,24 +519,8 @@ int browser_config_load(Browser * browser)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void _config_load_boolean(Config * config, char const * variable,
|
||||
gboolean * value)
|
||||
{
|
||||
char const * str;
|
||||
|
||||
if((str = config_get(config, "", variable)) == NULL)
|
||||
return;
|
||||
if(strcmp(str, "0") == 0)
|
||||
*value = FALSE;
|
||||
else if(strcmp(str, "1") == 0)
|
||||
*value = TRUE;
|
||||
}
|
||||
|
||||
|
||||
/* browser_config_save */
|
||||
static int _config_save_boolean(Config * config, char const * variable,
|
||||
gboolean value);
|
||||
|
||||
int browser_config_save(Browser * browser)
|
||||
{
|
||||
int ret = 0;
|
||||
@ -569,7 +528,7 @@ int browser_config_save(Browser * browser)
|
||||
|
||||
if(browser->config == NULL)
|
||||
return 0; /* XXX ignore error */
|
||||
if((filename = _browser_get_config_filename()) == NULL)
|
||||
if((filename = _config_get_filename()) == NULL)
|
||||
return 1;
|
||||
ret |= _config_save_boolean(browser->config, "confirm_before_delete",
|
||||
browser->prefs.confirm_before_delete);
|
||||
@ -577,17 +536,12 @@ int browser_config_save(Browser * browser)
|
||||
browser->prefs.sort_folders_first);
|
||||
ret |= _config_save_boolean(browser->config, "show_hidden_files",
|
||||
browser->prefs.show_hidden_files);
|
||||
ret |= config_save(browser->config, filename);
|
||||
if(ret == 0)
|
||||
ret |= config_save(browser->config, filename);
|
||||
free(filename);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int _config_save_boolean(Config * config, char const * variable,
|
||||
gboolean value)
|
||||
{
|
||||
return config_set(config, "", variable, value ? "1" : "0");
|
||||
}
|
||||
|
||||
|
||||
/* browser_go_home */
|
||||
void browser_go_home(Browser * browser)
|
||||
@ -596,6 +550,7 @@ void browser_go_home(Browser * browser)
|
||||
|
||||
if((home = getenv("HOME")) == NULL)
|
||||
home = g_get_home_dir();
|
||||
/* XXX use open while set_location should only update the toolbar? */
|
||||
browser_set_location(browser, home != NULL ? home : "/");
|
||||
}
|
||||
|
||||
@ -1633,3 +1588,42 @@ void browser_unselect_all(Browser * browser)
|
||||
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(browser->detailview));
|
||||
gtk_tree_selection_unselect_all(sel);
|
||||
}
|
||||
|
||||
|
||||
/* private */
|
||||
/* functions */
|
||||
static char * _config_get_filename(void)
|
||||
{
|
||||
char const * homedir;
|
||||
size_t len;
|
||||
char * filename;
|
||||
|
||||
if((homedir = getenv("HOME")) == NULL)
|
||||
homedir = g_get_home_dir();
|
||||
len = strlen(homedir) + 1 + sizeof(BROWSER_CONFIG_FILE);
|
||||
if((filename = malloc(len)) == NULL)
|
||||
return NULL;
|
||||
snprintf(filename, len, "%s/%s", homedir, BROWSER_CONFIG_FILE);
|
||||
return filename;
|
||||
}
|
||||
|
||||
|
||||
static void _config_load_boolean(Config * config, char const * variable,
|
||||
gboolean * value)
|
||||
{
|
||||
char const * str;
|
||||
|
||||
if((str = config_get(config, "", variable)) == NULL)
|
||||
return; /* XXX default to something? */
|
||||
if(strcmp(str, "0") == 0)
|
||||
*value = FALSE;
|
||||
else if(strcmp(str, "1") == 0)
|
||||
*value = TRUE;
|
||||
}
|
||||
|
||||
|
||||
static int _config_save_boolean(Config * config, char const * variable,
|
||||
gboolean value)
|
||||
{
|
||||
return config_set(config, "", variable, value ? "1" : "0");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user