Code cleanup
This commit is contained in:
parent
13e5dda173
commit
7d778b9312
@ -25,6 +25,7 @@
|
|||||||
#define DATA_SECTION "Backup Info"
|
#define DATA_SECTION "Backup Info"
|
||||||
#define DATA_TRASHINFO "Backup/info"
|
#define DATA_TRASHINFO "Backup/info"
|
||||||
|
|
||||||
|
#define TEXT_DELETE "Archive"
|
||||||
#define TEXT_DELETED "Archived"
|
#define TEXT_DELETED "Archived"
|
||||||
#define TEXT_MOVETOTRASH "Archive"
|
#define TEXT_MOVETOTRASH "Archive"
|
||||||
|
|
||||||
|
@ -48,16 +48,28 @@
|
|||||||
#ifndef DATA_SECTION
|
#ifndef DATA_SECTION
|
||||||
# define DATA_SECTION "Trash Info"
|
# define DATA_SECTION "Trash Info"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef DATA_TRASHFILES
|
||||||
|
# define DATA_TRASHFILES "Trash/files"
|
||||||
|
#endif
|
||||||
#ifndef DATA_TRASHINFO
|
#ifndef DATA_TRASHINFO
|
||||||
# define DATA_TRASHINFO "Trash/info"
|
# define DATA_TRASHINFO "Trash/info"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef TEXT_DELETE
|
||||||
|
# define TEXT_DELETE "Delete"
|
||||||
|
#endif
|
||||||
#ifndef TEXT_DELETED
|
#ifndef TEXT_DELETED
|
||||||
# define TEXT_DELETED "Deleted"
|
# define TEXT_DELETED "Deleted"
|
||||||
#endif
|
#endif
|
||||||
#ifndef TEXT_MOVETOTRASH
|
#ifndef TEXT_MOVETOTRASH
|
||||||
# define TEXT_MOVETOTRASH "Move to trash"
|
# define TEXT_MOVETOTRASH "Move to trash"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef TEXT_RESTORE
|
||||||
|
# define TEXT_RESTORE "Restore"
|
||||||
|
#endif
|
||||||
|
#ifndef TEXT_SELECTALL
|
||||||
|
# define TEXT_SELECTALL "Select all"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Trash */
|
/* Trash */
|
||||||
@ -99,6 +111,9 @@ static void _trash_destroy(Trash * trash);
|
|||||||
static GtkWidget * _trash_get_widget(Trash * trash);
|
static GtkWidget * _trash_get_widget(Trash * trash);
|
||||||
static void _trash_refresh(Trash * trash, GList * selection);
|
static void _trash_refresh(Trash * trash, GList * selection);
|
||||||
|
|
||||||
|
/* accessors */
|
||||||
|
static char * _trash_get_path(char const * subdir);
|
||||||
|
|
||||||
/* useful */
|
/* useful */
|
||||||
static gboolean _trash_confirm(Trash * trash, char const * message);
|
static gboolean _trash_confirm(Trash * trash, char const * message);
|
||||||
static int _trash_delete_selection(Trash * trash);
|
static int _trash_delete_selection(Trash * trash);
|
||||||
@ -155,6 +170,9 @@ static Trash * _trash_init(BrowserPluginHelper * helper)
|
|||||||
/* FIXME handle sensitiveness of this button */
|
/* FIXME handle sensitiveness of this button */
|
||||||
#if GTK_CHECK_VERSION(2, 8, 0)
|
#if GTK_CHECK_VERSION(2, 8, 0)
|
||||||
toolitem = gtk_tool_button_new(NULL, _(TEXT_MOVETOTRASH));
|
toolitem = gtk_tool_button_new(NULL, _(TEXT_MOVETOTRASH));
|
||||||
|
# if GTK_CHECK_VERSION(2, 12, 0)
|
||||||
|
gtk_widget_set_tooltip_text(GTK_WIDGET(toolitem), _(TEXT_MOVETOTRASH));
|
||||||
|
# endif
|
||||||
gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), PLUGIN_ICON);
|
gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(toolitem), PLUGIN_ICON);
|
||||||
#else
|
#else
|
||||||
toolitem = gtk_tool_button_new(gtk_image_new_from_icon_name(PLUGIN_ICON,
|
toolitem = gtk_tool_button_new(gtk_image_new_from_icon_name(PLUGIN_ICON,
|
||||||
@ -167,16 +185,27 @@ static Trash * _trash_init(BrowserPluginHelper * helper)
|
|||||||
toolitem = gtk_separator_tool_item_new();
|
toolitem = gtk_separator_tool_item_new();
|
||||||
gtk_toolbar_insert(GTK_TOOLBAR(widget), toolitem, -1);
|
gtk_toolbar_insert(GTK_TOOLBAR(widget), toolitem, -1);
|
||||||
toolitem = gtk_tool_button_new_from_stock(GTK_STOCK_SELECT_ALL);
|
toolitem = gtk_tool_button_new_from_stock(GTK_STOCK_SELECT_ALL);
|
||||||
|
#if GTK_CHECK_VERSION(2, 12, 0)
|
||||||
|
gtk_widget_set_tooltip_text(GTK_WIDGET(toolitem), _(TEXT_SELECTALL));
|
||||||
|
#endif
|
||||||
g_signal_connect_swapped(toolitem, "clicked", G_CALLBACK(
|
g_signal_connect_swapped(toolitem, "clicked", G_CALLBACK(
|
||||||
_trash_on_select_all), trash);
|
_trash_on_select_all), trash);
|
||||||
gtk_toolbar_insert(GTK_TOOLBAR(widget), toolitem, -1);
|
gtk_toolbar_insert(GTK_TOOLBAR(widget), toolitem, -1);
|
||||||
/* restore */
|
/* restore */
|
||||||
trash->tb_restore = gtk_tool_button_new_from_stock(GTK_STOCK_UNDO);
|
trash->tb_restore = gtk_tool_button_new_from_stock(GTK_STOCK_UNDO);
|
||||||
|
#if GTK_CHECK_VERSION(2, 12, 0)
|
||||||
|
gtk_widget_set_tooltip_text(GTK_WIDGET(trash->tb_restore),
|
||||||
|
_(TEXT_RESTORE));
|
||||||
|
#endif
|
||||||
g_signal_connect_swapped(trash->tb_restore, "clicked", G_CALLBACK(
|
g_signal_connect_swapped(trash->tb_restore, "clicked", G_CALLBACK(
|
||||||
_trash_on_restore), trash);
|
_trash_on_restore), trash);
|
||||||
gtk_toolbar_insert(GTK_TOOLBAR(widget), trash->tb_restore, -1);
|
gtk_toolbar_insert(GTK_TOOLBAR(widget), trash->tb_restore, -1);
|
||||||
/* delete */
|
/* delete */
|
||||||
trash->tb_delete = gtk_tool_button_new_from_stock(GTK_STOCK_DELETE);
|
trash->tb_delete = gtk_tool_button_new_from_stock(GTK_STOCK_DELETE);
|
||||||
|
#if GTK_CHECK_VERSION(2, 12, 0)
|
||||||
|
gtk_widget_set_tooltip_text(GTK_WIDGET(trash->tb_delete),
|
||||||
|
_(TEXT_DELETE));
|
||||||
|
#endif
|
||||||
g_signal_connect_swapped(trash->tb_delete, "clicked", G_CALLBACK(
|
g_signal_connect_swapped(trash->tb_delete, "clicked", G_CALLBACK(
|
||||||
_trash_on_delete), trash);
|
_trash_on_delete), trash);
|
||||||
gtk_toolbar_insert(GTK_TOOLBAR(widget), trash->tb_delete, -1);
|
gtk_toolbar_insert(GTK_TOOLBAR(widget), trash->tb_delete, -1);
|
||||||
@ -256,6 +285,28 @@ static void _trash_refresh(Trash * trash, GList * selection)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* accessors */
|
||||||
|
/* trash_get_path */
|
||||||
|
static char * _trash_get_path(char const * subdir)
|
||||||
|
{
|
||||||
|
const char fallback[] = ".local/share";
|
||||||
|
char * ret;
|
||||||
|
char const * homedir;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
if(subdir == NULL)
|
||||||
|
subdir = "";
|
||||||
|
/* FIXME check $XDG_DATA_HOME first */
|
||||||
|
if((homedir = getenv("HOME")) == NULL)
|
||||||
|
homedir = g_get_home_dir();
|
||||||
|
len = strlen(homedir) + 1 + sizeof(fallback) + 1 + strlen(subdir) + 1;
|
||||||
|
if((ret = malloc(len)) == NULL)
|
||||||
|
return NULL;
|
||||||
|
snprintf(ret, len, "%s/%s/%s", homedir, fallback, subdir);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* useful */
|
/* useful */
|
||||||
/* trash_confirm */
|
/* trash_confirm */
|
||||||
static gboolean _trash_confirm(Trash * trash, char const * message)
|
static gboolean _trash_confirm(Trash * trash, char const * message)
|
||||||
@ -313,6 +364,7 @@ static int _delete_path(Trash * trash, GtkTreeModel * model, GtkTreePath * path)
|
|||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
gchar * filename;
|
gchar * filename;
|
||||||
gchar * p;
|
gchar * p;
|
||||||
|
char * files;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if(gtk_tree_model_get_iter(model, &iter, path) != TRUE)
|
if(gtk_tree_model_get_iter(model, &iter, path) != TRUE)
|
||||||
@ -322,13 +374,16 @@ static int _delete_path(Trash * trash, GtkTreeModel * model, GtkTreePath * path)
|
|||||||
-1);
|
-1);
|
||||||
if(filename != NULL && (len = strlen(filename)) > sizeof(ext))
|
if(filename != NULL && (len = strlen(filename)) > sizeof(ext))
|
||||||
filename[len - sizeof(ext) + 1] = '\0';
|
filename[len - sizeof(ext) + 1] = '\0';
|
||||||
|
files = _trash_get_path(DATA_TRASHFILES);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(stderr, "DEBUG: %s() \"%s\" \"%s\"\n", __func__, p, filename);
|
fprintf(stderr, "DEBUG: %s() \"%s\" \"%s\" \"%s\"\n", __func__, p,
|
||||||
|
filename, files);
|
||||||
#endif
|
#endif
|
||||||
/* FIXME implement */
|
/* FIXME implement */
|
||||||
#if 0
|
#if 0
|
||||||
ret = unlink(path);
|
ret = unlink(path);
|
||||||
#endif
|
#endif
|
||||||
|
free(files);
|
||||||
g_free(filename);
|
g_free(filename);
|
||||||
g_free(p);
|
g_free(p);
|
||||||
return ret;
|
return ret;
|
||||||
@ -340,7 +395,6 @@ static void _list_add(Trash * trash, Config * config, char const * path,
|
|||||||
char const * filename, const time_t sixmonths);
|
char const * filename, const time_t sixmonths);
|
||||||
static void _list_get_iter(Trash * trash, GtkTreeIter * iter,
|
static void _list_get_iter(Trash * trash, GtkTreeIter * iter,
|
||||||
char const * path);
|
char const * path);
|
||||||
static char * _list_path(void);
|
|
||||||
static void _list_purge(Trash * trash);
|
static void _list_purge(Trash * trash);
|
||||||
static void _list_reset(Trash * trash);
|
static void _list_reset(Trash * trash);
|
||||||
|
|
||||||
@ -356,7 +410,7 @@ static void _trash_list(Trash * trash)
|
|||||||
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
||||||
#endif
|
#endif
|
||||||
/* FIXME report errors */
|
/* FIXME report errors */
|
||||||
if((path = _list_path()) == NULL)
|
if((path = _trash_get_path(DATA_TRASHINFO)) == NULL)
|
||||||
return;
|
return;
|
||||||
if((config = config_new()) == NULL)
|
if((config = config_new()) == NULL)
|
||||||
{
|
{
|
||||||
@ -448,24 +502,6 @@ static void _list_get_iter(Trash * trash, GtkTreeIter * iter, char const * path)
|
|||||||
gtk_list_store_append(trash->store, iter);
|
gtk_list_store_append(trash->store, iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char * _list_path(void)
|
|
||||||
{
|
|
||||||
const char fallback[] = ".local/share";
|
|
||||||
const char trash[] = DATA_TRASHINFO;
|
|
||||||
char * ret;
|
|
||||||
char const * homedir;
|
|
||||||
size_t len;
|
|
||||||
|
|
||||||
/* FIXME check $XDG_DATA_HOME first */
|
|
||||||
if((homedir = getenv("HOME")) == NULL)
|
|
||||||
homedir = g_get_home_dir();
|
|
||||||
len = strlen(homedir) + 1 + sizeof(fallback) + 1 + sizeof(trash);
|
|
||||||
if((ret = malloc(len)) == NULL)
|
|
||||||
return NULL;
|
|
||||||
snprintf(ret, len, "%s/%s/%s", homedir, fallback, trash);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void _list_purge(Trash * trash)
|
static void _list_purge(Trash * trash)
|
||||||
{
|
{
|
||||||
GtkTreeModel * model = GTK_TREE_MODEL(trash->store);
|
GtkTreeModel * model = GTK_TREE_MODEL(trash->store);
|
||||||
|
Loading…
Reference in New Issue
Block a user