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