Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Tue, 11 Mar 2014 14:50:39 UTC Commit: bd6db90e297116e0b4168216a644fe1dbee8969f https://github.com/geany/geany/commit/bd6db90e297116e0b4168216a644fe1dbee896...
Log Message: ----------- Windows: add default extension to native save dialogs
Fixes bug #1021.
Based on an initial work by Steven Valsesia, thanks!
Modified Paths: -------------- src/dialogs.c src/win32.c src/win32.h
Modified: src/dialogs.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -665,7 +665,7 @@ gboolean dialogs_show_save_as(void) if (interface_prefs.use_native_windows_dialogs) { gchar *utf8_name = win32_show_document_save_as_dialog(GTK_WINDOW(main_widgets.window), - _("Save File"), DOC_FILENAME(doc)); + _("Save File"), doc); if (utf8_name != NULL) result = handle_save_as(utf8_name, FALSE); }
Modified: src/win32.c 15 files changed, 12 insertions(+), 3 deletions(-) =================================================================== @@ -419,18 +419,27 @@ gboolean win32_show_document_open_dialog(GtkWindow *parent, const gchar *title,
gchar *win32_show_document_save_as_dialog(GtkWindow *parent, const gchar *title, - const gchar *initial_file) + GeanyDocument *doc) { OPENFILENAMEW of; gint retval; gchar tmp[MAX_PATH]; wchar_t w_file[MAX_PATH]; wchar_t w_title[512]; + int n;
w_file[0] = '\0';
- if (initial_file != NULL) - MultiByteToWideChar(CP_UTF8, 0, initial_file, -1, w_file, G_N_ELEMENTS(w_file)); + /* Convert the name of the file for of.lpstrFile */ + n = MultiByteToWideChar(CP_UTF8, 0, DOC_FILENAME(doc), -1, w_file, G_N_ELEMENTS(w_file)); + + /* If creating a new file name, convert and append the extension if any */ + if (! doc->file_name && doc->file_type && doc->file_type->extension && n + 1 < G_N_ELEMENTS(w_file)) + { + w_file[n - 1] = L'.'; + MultiByteToWideChar(CP_UTF8, 0, doc->file_type->extension, -1, &w_file[n], + G_N_ELEMENTS(w_file) - n - 1); + }
MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, G_N_ELEMENTS(w_title));
Modified: src/win32.h 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -30,7 +30,7 @@ gboolean win32_show_document_open_dialog(GtkWindow *parent, const gchar *title, const gchar *initial_dir);
gchar *win32_show_document_save_as_dialog(GtkWindow *parent, const gchar *title, - const gchar *initial_file); + GeanyDocument *doc);
void win32_show_font_dialog(void);
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).