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,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 | g_signal_connect(dialog,"response",G_CALLBACK(response),terminal); | 161 | g_signal_connect(dialog,"response",G_CALLBACK(response),terminal); |
156 | 162 |
src/objects/os/linux/savedesktopicon.c
@@ -117,6 +117,7 @@ | @@ -117,6 +117,7 @@ | ||
117 | 117 | ||
118 | } | 118 | } |
119 | 119 | ||
120 | + /* | ||
120 | static gchar * get_filename(GtkWidget *terminal) { | 121 | static gchar * get_filename(GtkWidget *terminal) { |
121 | 122 | ||
122 | g_autofree gchar * defname = v3270_keyfile_get_default_filename(); | 123 | g_autofree gchar * defname = v3270_keyfile_get_default_filename(); |
@@ -148,6 +149,7 @@ | @@ -148,6 +149,7 @@ | ||
148 | return filename; | 149 | return filename; |
149 | 150 | ||
150 | } | 151 | } |
152 | + */ | ||
151 | 153 | ||
152 | GtkWidget * factory(V3270SimpleAction *action, GtkWidget *terminal) { | 154 | GtkWidget * factory(V3270SimpleAction *action, GtkWidget *terminal) { |
153 | 155 | ||
@@ -253,7 +255,7 @@ | @@ -253,7 +255,7 @@ | ||
253 | 255 | ||
254 | // 3 = Session filename | 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 | gtk_entry_set_text(GTK_ENTRY(inputs[3]),session_filename); | 259 | gtk_entry_set_text(GTK_ENTRY(inputs[3]),session_filename); |
258 | 260 | ||
259 | gtk_entry_bind_to_filechooser( | 261 | gtk_entry_bind_to_filechooser( |
src/objects/window/keyfile.c
@@ -292,9 +292,12 @@ void v3270_key_file_close(GtkWidget *terminal) { | @@ -292,9 +292,12 @@ void v3270_key_file_close(GtkWidget *terminal) { | ||
292 | 292 | ||
293 | gchar * v3270_key_file_build_filename(GtkWidget *terminal) { | 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 | g_autofree gchar * folder = v3270_key_file_get_default_path(terminal); | 303 | g_autofree gchar * folder = v3270_key_file_get_default_path(terminal); |