return gd;
}
+static gint filename_base_length(const gchar *name)
+{
+ gint n;
+
+ if (!name) return 0;
+
+ n = strlen(name);
+
+ if (filter_name_exists(name))
+ {
+ const gchar *ext;
+
+ ext = extension_from_path(name);
+ if (ext) n -= strlen(ext);
+ }
+
+ return n;
+}
+
+
/*
*--------------------------------------------------------------------------
* Move and Copy routines
gtk_widget_set_sensitive(fdm->rename_entry, fdm->rename);
gtk_widget_set_sensitive(fdm->yes_all_button, !fdm->rename);
- if (fdm->rename) gtk_widget_grab_focus(fdm->rename_entry);
+ if (fdm->rename)
+ {
+ const gchar *name;
+
+ gtk_widget_grab_focus(fdm->rename_entry);
+
+ name = gtk_entry_get_text(GTK_ENTRY(fdm->rename_entry));
+ gtk_editable_select_region(GTK_EDITABLE(fdm->rename_entry), 0, filename_base_length(name));
+ }
}
static GenericDialog *file_util_move_multiple_confirm_dialog(FileDataMult *fdm)
fds->rename = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
gtk_widget_set_sensitive(fds->rename_entry, fds->rename);
- if (fds->rename) gtk_widget_grab_focus(fds->rename_entry);
+ if (fds->rename)
+ {
+ const gchar *name;
+
+ gtk_widget_grab_focus(fds->rename_entry);
+
+ name = gtk_entry_get_text(GTK_ENTRY(fds->rename_entry));
+ gtk_editable_select_region(GTK_EDITABLE(fds->rename_entry), 0, filename_base_length(name));
+ }
}
static void file_util_move_single(FileDataSingle *fds)
static void file_util_move_check(FileDialog *fd)
{
+ if (fd->dest_path && strcmp(fd->dest_path, "~") == 0)
+ {
+ gtk_entry_set_text(GTK_ENTRY(fd->entry), homedir());
+ }
+
if (fd->multiple_files && !isdir(fd->dest_path))
{
if (isfile(fd->dest_path))
return;
}
+ if (!fd->dest_path || fd->dest_path[0] != '/')
+ {
+ if (fd->source_path)
+ {
+ gchar *base;
+ gchar *path;
+
+ base = remove_level_from_path(fd->source_path);
+ path = concat_dir_and_file(base, fd->dest_path);
+
+ gtk_entry_set_text(GTK_ENTRY(fd->entry), path);
+
+ g_free(path);
+ g_free(base);
+ }
+ return;
+ }
+
file_util_move_do(fd);
}
if (GTK_WIDGET_VISIBLE(rd->rename_box))
{
gtk_widget_grab_focus(rd->rename_entry);
+ gtk_editable_select_region(GTK_EDITABLE(rd->rename_entry), 0, filename_base_length(name));
}
return TRUE;
GtkWidget *table;
GtkWidget *combo;
GList *work;
+ const gchar *name;
rd = g_new0(RenameDataMult, 1);
pref_table_label(table, 0, 1, _("New name:"), 1.0);
rd->rename_entry = gtk_entry_new();
- gtk_entry_set_text(GTK_ENTRY(rd->rename_entry), filename_from_path(rd->fd->source_path));
gtk_table_attach(GTK_TABLE(table), rd->rename_entry, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, FALSE, 0, 0);
generic_dialog_attach_default(GENERIC_DIALOG(rd->fd), rd->rename_entry);
gtk_widget_grab_focus(rd->rename_entry);
+
+ name = filename_from_path(rd->fd->source_path);
+ gtk_entry_set_text(GTK_ENTRY(rd->rename_entry), name);
+ gtk_editable_select_region(GTK_EDITABLE(rd->rename_entry), 0, filename_base_length(name));
gtk_widget_show(rd->rename_entry);
rd->auto_box = gtk_vbox_new(FALSE, PREF_PAD_GAP);
{
FileDialog *fd;
GtkWidget *table;
+ const gchar *name;
fd = file_util_file_dlg(_("Rename - GQview"), "GQview", "dlg_rename", parent,
file_util_rename_single_close_cb, NULL);
fd->entry = gtk_entry_new();
gtk_table_attach(GTK_TABLE(table), fd->entry, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, FALSE, 0, 0);
- gtk_entry_set_text(GTK_ENTRY(fd->entry), filename_from_path(fd->source_path));
- gtk_editable_select_region(GTK_EDITABLE(fd->entry), 0, strlen(gtk_entry_get_text(GTK_ENTRY(fd->entry))));
generic_dialog_attach_default(GENERIC_DIALOG(fd), fd->entry);
gtk_widget_grab_focus(fd->entry);
+
+ name = filename_from_path(fd->source_path);
+ gtk_entry_set_text(GTK_ENTRY(fd->entry), name);
+ gtk_editable_select_region(GTK_EDITABLE(fd->entry), 0, filename_base_length(name));
gtk_widget_show(fd->entry);
gtk_widget_show(GENERIC_DIALOG(fd)->dialog);