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); | ... | ... |