static void layout_button_home_cb(GtkWidget *widget, gpointer data)
{
- LayoutWindow *lw = data;
- const gchar *path = homedir();
+ const gchar *path;
+
+ if (options->layout.home_path && *options->layout.home_path)
+ path = options->layout.home_path;
+ else
+ path = homedir();
+
if (path)
{
+ LayoutWindow *lw = data;
FileData *dir_fd = file_data_new_simple(path);
layout_set_fd(lw, dir_fd);
file_data_unref(dir_fd);
static GtkWidget *configwindow = NULL;
static GtkWidget *startup_path_entry;
+static GtkWidget *home_path_entry;
static GtkListStore *filter_store = NULL;
static GtkWidget *editor_name_entry[GQ_EDITOR_SLOTS];
static GtkWidget *editor_command_entry[GQ_EDITOR_SLOTS];
gtk_entry_set_text(GTK_ENTRY(startup_path_entry), layout_get_path(NULL));
}
+static void home_path_set_current(GtkWidget *widget, gpointer data)
+{
+ gtk_entry_set_text(GTK_ENTRY(home_path_entry), layout_get_path(NULL));
+}
+
static void zoom_mode_original_cb(GtkWidget *widget, gpointer data)
{
if (GTK_TOGGLE_BUTTON (widget)->active)
buf = gtk_entry_get_text(GTK_ENTRY(startup_path_entry));
if (buf && strlen(buf) > 0) options->startup.path = remove_trailing_slash(buf);
+ g_free(options->layout.home_path);
+ options->layout.home_path = NULL;
+ buf = gtk_entry_get_text(GTK_ENTRY(home_path_entry));
+ if (buf && strlen(buf) > 0) options->layout.home_path = remove_trailing_slash(buf);
+
options->file_ops.confirm_delete = c_options->file_ops.confirm_delete;
options->file_ops.enable_delete_key = c_options->file_ops.enable_delete_key;
options->file_ops.safe_delete_enable = c_options->file_ops.safe_delete_enable;
pref_checkbox_new_int(group, _("Mouse wheel scrolls image"),
options->mousewheel_scrolls, &c_options->mousewheel_scrolls);
+ pref_label_new(group, _("Home button path (empty to use your home directory)"));
+ hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
+
+ tabcomp = tab_completion_new(&home_path_entry, options->layout.home_path, NULL, NULL);
+ tab_completion_add_select_button(home_path_entry, NULL, TRUE);
+ gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0);
+ gtk_widget_show(tabcomp);
+
+ button = pref_button_new(hbox, NULL, _("Use current"), FALSE,
+ G_CALLBACK(home_path_set_current), NULL);
+
+
group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL);
pref_checkbox_new_int(group, _("Store metadata and cache files in source image's directory"),
WRITE_BOOL(layout.show_marks);
WRITE_BOOL(layout.show_thumbnails);
WRITE_BOOL(layout.show_directory_date);
+ WRITE_CHAR(layout.home_path);
WRITE_SEPARATOR();
WRITE_BOOL(layout.save_window_positions);
READ_BOOL(layout.show_marks);
READ_BOOL(layout.show_thumbnails);
READ_BOOL(layout.show_directory_date);
+ READ_CHAR(layout.home_path);
/* window positions */