Fix checking whether to overwrite when using the Rename button in
the 'Save As' dialog. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4000 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
4975ce1da9
commit
c960a51f13
@ -16,6 +16,9 @@
|
||||
* src/treeviews.c:
|
||||
Fix showing project name for documents list files with no
|
||||
subdirectory (oops).
|
||||
* src/dialogs.c:
|
||||
Fix checking whether to overwrite when using the Rename button in
|
||||
the 'Save As' dialog.
|
||||
|
||||
|
||||
2009-07-19 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
|
||||
|
||||
@ -373,37 +373,42 @@ on_file_save_dialog_response (GtkDialog *dialog,
|
||||
{
|
||||
gboolean rename_file = FALSE;
|
||||
gboolean success = FALSE;
|
||||
gchar *new_filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(ui_widgets.save_filesel));
|
||||
|
||||
switch (response)
|
||||
{
|
||||
case GEANY_RESPONSE_RENAME:
|
||||
/* rename doesn't check for empty filename or overwriting */
|
||||
if (! NZV(new_filename))
|
||||
{
|
||||
utils_beep();
|
||||
break;
|
||||
}
|
||||
if (g_file_test(new_filename, G_FILE_TEST_EXISTS) &&
|
||||
!dialogs_show_question_full(NULL, NULL, NULL,
|
||||
_("Overwrite?"),
|
||||
_("Filename already exists!")))
|
||||
break;
|
||||
rename_file = TRUE;
|
||||
/* fall through */
|
||||
case GTK_RESPONSE_ACCEPT:
|
||||
{
|
||||
gchar *new_filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(ui_widgets.save_filesel));
|
||||
gboolean open_new_tab = gtk_toggle_button_get_active(
|
||||
GTK_TOGGLE_BUTTON(ui_lookup_widget(ui_widgets.save_filesel, "check_open_new_tab")));
|
||||
gchar *utf8_filename;
|
||||
|
||||
if (! NZV(new_filename)) /* rename doesn't check for empty filename */
|
||||
{
|
||||
utils_beep();
|
||||
g_free(new_filename);
|
||||
return;
|
||||
}
|
||||
utf8_filename = utils_get_utf8_from_locale(new_filename);
|
||||
|
||||
success = handle_save_as(utf8_filename, open_new_tab, rename_file);
|
||||
|
||||
g_free(utf8_filename);
|
||||
g_free(new_filename);
|
||||
break;
|
||||
}
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
success = TRUE;
|
||||
break;
|
||||
}
|
||||
g_free(new_filename);
|
||||
|
||||
if (success)
|
||||
gtk_widget_hide(ui_widgets.save_filesel);
|
||||
}
|
||||
@ -1412,7 +1417,8 @@ gboolean dialogs_show_question(const gchar *text, ...)
|
||||
|
||||
|
||||
/* extra_text can be NULL; otherwise it is displayed below main_text.
|
||||
* if parent is NULL, main_widgets.window will be used */
|
||||
* if parent is NULL, main_widgets.window will be used
|
||||
* yes_btn, no_btn can be NULL. */
|
||||
gboolean dialogs_show_question_full(GtkWidget *parent, const gchar *yes_btn, const gchar *no_btn,
|
||||
const gchar *extra_text, const gchar *main_text, ...)
|
||||
{
|
||||
@ -1420,6 +1426,11 @@ gboolean dialogs_show_question_full(GtkWidget *parent, const gchar *yes_btn, con
|
||||
gchar string[512];
|
||||
va_list args;
|
||||
|
||||
if (!yes_btn)
|
||||
yes_btn = GTK_STOCK_YES;
|
||||
if (!no_btn)
|
||||
no_btn = GTK_STOCK_NO;
|
||||
|
||||
va_start(args, main_text);
|
||||
g_vsnprintf(string, 511, main_text, args);
|
||||
va_end(args);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user