SF.net SVN: geany:[4000] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Mon Jul 20 16:12:23 UTC 2009
Revision: 4000
http://geany.svn.sourceforge.net/geany/?rev=4000&view=rev
Author: ntrel
Date: 2009-07-20 16:12:23 +0000 (Mon, 20 Jul 2009)
Log Message:
-----------
Fix checking whether to overwrite when using the Rename button in
the 'Save As' dialog.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/dialogs.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-07-20 15:46:35 UTC (rev 3999)
+++ trunk/ChangeLog 2009-07-20 16:12:23 UTC (rev 4000)
@@ -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>
Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c 2009-07-20 15:46:35 UTC (rev 3999)
+++ trunk/src/dialogs.c 2009-07-20 16:12:23 UTC (rev 4000)
@@ -373,37 +373,42 @@
{
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 @@
/* 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 @@
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);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list