Commit 579c33e27b84a0d6060ee040814ab89a645b481e
1 parent
6a05f9b3
Exists in
master
and in
2 other branches
Pre-defining session file name on save dialogs.
Showing
3 changed files
with
23 additions
and
12 deletions
Show diff stats
src/objects/actions/save.c
| ... | ... | @@ -143,14 +143,20 @@ |
| 143 | 143 | |
| 144 | 144 | } |
| 145 | 145 | |
| 146 | - gtk_entry_bind_to_filechooser( | |
| 147 | - inputs[1], | |
| 148 | - GTK_FILE_CHOOSER_ACTION_SAVE, | |
| 149 | - _("Save session preferences"), | |
| 150 | - NULL, | |
| 151 | - "*.3270", | |
| 152 | - _("3270 session files") | |
| 153 | - ); | |
| 146 | + { | |
| 147 | + g_autofree gchar * session_filename = v3270_key_file_build_filename(terminal); | |
| 148 | + gtk_entry_set_text(GTK_ENTRY(inputs[1]),session_filename); | |
| 149 | + | |
| 150 | + gtk_entry_bind_to_filechooser( | |
| 151 | + inputs[1], | |
| 152 | + GTK_FILE_CHOOSER_ACTION_SAVE, | |
| 153 | + _("Save session preferences"), | |
| 154 | + NULL, | |
| 155 | + "*.3270", | |
| 156 | + _("3270 session files") | |
| 157 | + ); | |
| 158 | + | |
| 159 | + } | |
| 154 | 160 | |
| 155 | 161 | g_signal_connect(dialog,"response",G_CALLBACK(response),terminal); |
| 156 | 162 | ... | ... |
src/objects/os/linux/savedesktopicon.c
| ... | ... | @@ -117,6 +117,7 @@ |
| 117 | 117 | |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | + /* | |
| 120 | 121 | static gchar * get_filename(GtkWidget *terminal) { |
| 121 | 122 | |
| 122 | 123 | g_autofree gchar * defname = v3270_keyfile_get_default_filename(); |
| ... | ... | @@ -148,6 +149,7 @@ |
| 148 | 149 | return filename; |
| 149 | 150 | |
| 150 | 151 | } |
| 152 | + */ | |
| 151 | 153 | |
| 152 | 154 | GtkWidget * factory(V3270SimpleAction *action, GtkWidget *terminal) { |
| 153 | 155 | |
| ... | ... | @@ -253,7 +255,7 @@ |
| 253 | 255 | |
| 254 | 256 | // 3 = Session filename |
| 255 | 257 | { |
| 256 | - g_autofree gchar * session_filename = get_filename(terminal); | |
| 258 | + g_autofree gchar * session_filename = v3270_key_file_build_filename(terminal); | |
| 257 | 259 | gtk_entry_set_text(GTK_ENTRY(inputs[3]),session_filename); |
| 258 | 260 | |
| 259 | 261 | gtk_entry_bind_to_filechooser( | ... | ... |
src/objects/window/keyfile.c
| ... | ... | @@ -292,9 +292,12 @@ void v3270_key_file_close(GtkWidget *terminal) { |
| 292 | 292 | |
| 293 | 293 | gchar * v3270_key_file_build_filename(GtkWidget *terminal) { |
| 294 | 294 | |
| 295 | - const gchar * filename = v3270_key_file_get_filename(terminal); | |
| 296 | - if(filename && g_file_test(filename,G_FILE_TEST_IS_REGULAR) && !g_str_has_prefix(filename,g_get_user_config_dir())) { | |
| 297 | - return g_strdup(filename); | |
| 295 | + g_autofree gchar * defname = v3270_keyfile_get_default_filename(); | |
| 296 | + const gchar * current = v3270_key_file_get_filename(terminal); | |
| 297 | + | |
| 298 | + // If is not the default name, return it. | |
| 299 | + if(current && *current && g_file_test(current,G_FILE_TEST_IS_REGULAR) && strcmp(defname,current)) { | |
| 300 | + return g_strdup(current); | |
| 298 | 301 | } |
| 299 | 302 | |
| 300 | 303 | g_autofree gchar * folder = v3270_key_file_get_default_path(terminal); | ... | ... |