Skip to content

Commit 87a25d2

Browse files
committed
Streamline the way file paths are remembered in open/save dialogs.
1 parent 1bc171a commit 87a25d2

File tree

1 file changed

+37
-23
lines changed

1 file changed

+37
-23
lines changed

src/opensuperclone/clone_gui.c

+37-23
Original file line numberDiff line numberDiff line change
@@ -616,9 +616,10 @@ void select_file_ccc(void)
616616
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
617617
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
618618
NULL);
619-
if(log_file_ccc != NULL)
619+
if (log_file_ccc != NULL)
620620
{
621-
gtk_file_chooser_set_file(GTK_FILE_CHOOSER(dialog), g_file_new_for_path(log_file_ccc), NULL);
621+
char *default_path = g_path_get_dirname(log_file_ccc);
622+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
622623
}
623624
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
624625
{
@@ -654,9 +655,10 @@ void new_file_ccc(void)
654655
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
655656
NULL);
656657
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
657-
if(log_file_ccc != NULL)
658+
if (log_file_ccc != NULL)
658659
{
659-
gtk_file_chooser_set_file(GTK_FILE_CHOOSER(dialog), g_file_new_for_path(log_file_ccc), NULL);
660+
char *default_path = g_path_get_dirname(log_file_ccc);
661+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
660662
}
661663
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
662664
{
@@ -691,11 +693,7 @@ void new_domain_ccc(void)
691693
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
692694
NULL);
693695
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
694-
if(domain_file_ccc != NULL)
695-
{
696-
gtk_file_chooser_set_file(GTK_FILE_CHOOSER(dialog), g_file_new_for_path(domain_file_ccc), NULL);
697-
}
698-
else if(log_file_ccc != NULL)
696+
if (log_file_ccc != NULL)
699697
{
700698
char *default_path = g_path_get_dirname(log_file_ccc);
701699
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
@@ -737,6 +735,11 @@ void select_ddrescue_file_ccc(void)
737735
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
738736
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
739737
NULL);
738+
if (log_file_ccc != NULL)
739+
{
740+
char *default_path = g_path_get_dirname(log_file_ccc);
741+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
742+
}
740743
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
741744
{
742745
char *filename;
@@ -790,9 +793,10 @@ void save_file_as_ccc(void)
790793
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
791794
NULL);
792795
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
793-
if(log_file_ccc != NULL)
796+
if (log_file_ccc != NULL)
794797
{
795-
gtk_file_chooser_set_file(GTK_FILE_CHOOSER(dialog), g_file_new_for_path(log_file_ccc), NULL);
798+
char *default_path = g_path_get_dirname(log_file_ccc);
799+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
796800
}
797801
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
798802
{
@@ -854,11 +858,7 @@ void save_domain_as_ccc(void)
854858
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
855859
NULL);
856860
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
857-
if(domain_file_ccc != NULL)
858-
{
859-
gtk_file_chooser_set_file(GTK_FILE_CHOOSER(dialog), g_file_new_for_path(domain_file_ccc), NULL);
860-
}
861-
else if(log_file_ccc != NULL)
861+
if (log_file_ccc != NULL)
862862
{
863863
char *default_path = g_path_get_dirname(log_file_ccc);
864864
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
@@ -901,6 +901,11 @@ void export_ddrescue_file_ccc(void)
901901
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
902902
NULL);
903903
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
904+
if (log_file_ccc != NULL)
905+
{
906+
char *default_path = g_path_get_dirname(log_file_ccc);
907+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
908+
}
904909
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
905910
{
906911
char *filename;
@@ -938,11 +943,7 @@ void select_domain_ccc(void)
938943
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
939944
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
940945
NULL);
941-
if(domain_file_ccc != NULL)
942-
{
943-
gtk_file_chooser_set_file(GTK_FILE_CHOOSER(dialog), g_file_new_for_path(domain_file_ccc), NULL);
944-
}
945-
else if(log_file_ccc != NULL)
946+
if (log_file_ccc != NULL)
946947
{
947948
char *default_path = g_path_get_dirname(log_file_ccc);
948949
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
@@ -984,6 +985,11 @@ void add_domain_ccc(void)
984985
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
985986
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
986987
NULL);
988+
if (log_file_ccc != NULL)
989+
{
990+
char *default_path = g_path_get_dirname(log_file_ccc);
991+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
992+
}
987993
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
988994
{
989995
char *filename;
@@ -1278,6 +1284,11 @@ void choose_source_ccc(void)
12781284
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
12791285
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
12801286
NULL);
1287+
if (log_file_ccc != NULL)
1288+
{
1289+
char *default_path = g_path_get_dirname(log_file_ccc);
1290+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
1291+
}
12811292
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
12821293
{
12831294
char *filename;
@@ -1756,8 +1767,11 @@ void choose_image_ccc(void)
17561767
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
17571768
NULL);
17581769
// gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
1759-
char *default_path = g_path_get_dirname(log_file_ccc);
1760-
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
1770+
if (log_file_ccc != NULL)
1771+
{
1772+
char *default_path = g_path_get_dirname(log_file_ccc);
1773+
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), default_path);
1774+
}
17611775
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
17621776
{
17631777
int confirmed = 1;

0 commit comments

Comments
 (0)