Commit 579c33e27b84a0d6060ee040814ab89a645b481e

Authored by Perry Werneck
1 parent 6a05f9b3

Pre-defining session file name on save dialogs.

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