Commit c49d24973fd98debb0d2c8c16c80f03447b7397d

Authored by Perry Werneck
1 parent d1aa6aa6

Changing the default path of the session files to 'document' folder.

src/include/v3270/keyfile.h
@@ -43,6 +43,7 @@ @@ -43,6 +43,7 @@
43 typedef struct _V3270KeyFile V3270KeyFile; 43 typedef struct _V3270KeyFile V3270KeyFile;
44 44
45 gchar * v3270_keyfile_get_default_filename(void); 45 gchar * v3270_keyfile_get_default_filename(void);
  46 + gchar * v3270_key_file_get_default_path(GtkWidget *terminal, gboolean create);
46 47
47 V3270KeyFile * v3270_key_file_open(GtkWidget *terminal, const gchar *name, GError **error); 48 V3270KeyFile * v3270_key_file_open(GtkWidget *terminal, const gchar *name, GError **error);
48 void v3270_key_file_close(GtkWidget *terminal); 49 void v3270_key_file_close(GtkWidget *terminal);
src/objects/os/linux/savedesktopicon.c
@@ -197,7 +197,10 @@ X-Desktop-File-Install-Version=0.23 @@ -197,7 +197,10 @@ X-Desktop-File-Install-Version=0.23
197 return dialog; 197 return dialog;
198 } 198 }
199 199
200 - static gchar * get_filename(GtkWidget *terminal) { 200 + static gchar * get_filename(GtkWidget *terminal, const gchar *session_name) {
  201 +
  202 + if(!(session_name && *session_name))
  203 + session_name = G_STRINGIFY(PRODUCT_NAME);
201 204
202 g_autofree gchar * defname = v3270_keyfile_get_default_filename(); 205 g_autofree gchar * defname = v3270_keyfile_get_default_filename();
203 const gchar * current = v3270_key_file_get_filename(terminal); 206 const gchar * current = v3270_key_file_get_filename(terminal);
@@ -208,8 +211,7 @@ X-Desktop-File-Install-Version=0.23 @@ -208,8 +211,7 @@ X-Desktop-File-Install-Version=0.23
208 } 211 }
209 212
210 // It's the default one, create a new one on the user_config dir 213 // It's the default one, create a new one on the user_config dir
211 - g_autofree gchar * config_path = g_build_filename(g_get_user_config_dir(),G_STRINGIFY(PRODUCT_NAME),NULL);  
212 - g_mkdir_with_parents(config_path,0644); 214 + g_autofree gchar * config_path = v3270_key_file_get_default_path(terminal,TRUE);
213 215
214 // Use the hostname 216 // Use the hostname
215 const char * hostname = lib3270_host_get_name(v3270_get_session(terminal)); 217 const char * hostname = lib3270_host_get_name(v3270_get_session(terminal));
@@ -218,12 +220,12 @@ X-Desktop-File-Install-Version=0.23 @@ -218,12 +220,12 @@ X-Desktop-File-Install-Version=0.23
218 } 220 }
219 221
220 // Build the filename 222 // Build the filename
221 - gchar *filename = g_strconcat(config_path,G_DIR_SEPARATOR_S,hostname,".3270",NULL); 223 + gchar *filename = g_strconcat(config_path,G_DIR_SEPARATOR_S,hostname,".",session_name,".3270",NULL);
222 224
223 unsigned int index = 0; 225 unsigned int index = 0;
224 while(g_file_test(filename,G_FILE_TEST_EXISTS)) { 226 while(g_file_test(filename,G_FILE_TEST_EXISTS)) {
225 g_free(filename); 227 g_free(filename);
226 - filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s.%u.3270",config_path,hostname,++index); 228 + filename = g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s.%s.%u.3270",config_path,hostname,session_name,++index);
227 } 229 }
228 230
229 v3270_key_file_save_to_file(terminal,filename); 231 v3270_key_file_save_to_file(terminal,filename);
@@ -274,7 +276,7 @@ X-Desktop-File-Install-Version=0.23 @@ -274,7 +276,7 @@ X-Desktop-File-Install-Version=0.23
274 } 276 }
275 277
276 // Get session filename 278 // Get session filename
277 - g_autofree gchar * filename = get_filename(terminal); 279 + g_autofree gchar * filename = get_filename(terminal,NULL);
278 280
279 // Get program file name 281 // Get program file name
280 // https://stackoverflow.com/questions/4517425/how-to-get-program-path 282 // https://stackoverflow.com/questions/4517425/how-to-get-program-path
src/objects/window/keyfile.c
@@ -222,12 +222,12 @@ void v3270_key_file_close(GtkWidget *terminal) { @@ -222,12 +222,12 @@ void v3270_key_file_close(GtkWidget *terminal) {
222 } 222 }
223 223
224 /// @brief Search standard paths. 224 /// @brief Search standard paths.
225 - static gchar * v3270_get_configuration_folder(GtkWidget *terminal) { 225 + gchar * v3270_key_file_get_default_path(GtkWidget *terminal, gboolean create) {
226 226
227 size_t folder; 227 size_t folder;
228 const gchar *folders[] = { 228 const gchar *folders[] = {
229 - g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS),  
230 g_get_user_data_dir(), 229 g_get_user_data_dir(),
  230 + g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS),
231 g_get_user_special_dir(G_USER_DIRECTORY_DESKTOP) 231 g_get_user_special_dir(G_USER_DIRECTORY_DESKTOP)
232 }; 232 };
233 233
@@ -270,9 +270,16 @@ void v3270_key_file_close(GtkWidget *terminal) { @@ -270,9 +270,16 @@ void v3270_key_file_close(GtkWidget *terminal) {
270 return g_path_get_dirname(filename); 270 return g_path_get_dirname(filename);
271 } 271 }
272 272
273 - debug("%s: Using standard documents folder",__FUNCTION__);  
274 - return g_strdup(g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS)); 273 + if(!create) {
  274 + return g_strdup(g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS));
  275 + }
275 276
  277 + // Create folder.
  278 + {
  279 + gchar * default_dir = g_build_filename(g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS),G_STRINGIFY(PRODUCT_NAME),NULL);
  280 + g_mkdir_with_parents(default_dir,0775);
  281 + return default_dir;
  282 + }
276 } 283 }
277 284
278 gchar * v3270_keyfile_get_default_filename(void) { 285 gchar * v3270_keyfile_get_default_filename(void) {
@@ -294,7 +301,7 @@ void v3270_key_file_close(GtkWidget *terminal) { @@ -294,7 +301,7 @@ void v3270_key_file_close(GtkWidget *terminal) {
294 } 301 }
295 302
296 debug("\n\n\n%s",__FUNCTION__); 303 debug("\n\n\n%s",__FUNCTION__);
297 - g_autofree gchar * folder = v3270_get_configuration_folder(terminal); 304 + g_autofree gchar * folder = v3270_key_file_get_default_path(terminal,FALSE);
298 305
299 const char * hostname = lib3270_host_get_name(v3270_get_session(terminal)); 306 const char * hostname = lib3270_host_get_name(v3270_get_session(terminal));
300 debug("Hostname=\"%s\"",hostname); 307 debug("Hostname=\"%s\"",hostname);