GTK: improved cheat file automatic loading / name generation.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@88007 e17a0e51-4ae3-4d35-97c3-1a29b211df97
This commit is contained in:
parent
ab3d13f1e7
commit
5ffd1f6301
16
gui/Cheat.c
16
gui/Cheat.c
|
@ -300,7 +300,7 @@ static void OnCheatListDlg_EnableToggled(GtkCellRendererToggle *cell, gchar *pat
|
|||
}
|
||||
|
||||
// last chosen filename is kept in here
|
||||
static gchar *lastfilename = NULL;
|
||||
gchar *cheat_last_filename = NULL;
|
||||
|
||||
const gchar* file_filter_all = NULL;
|
||||
|
||||
|
@ -341,8 +341,8 @@ static void OnCheatListDlg_OpenClicked(GtkWidget *widget, gpointer user_data) {
|
|||
|
||||
LoadCheats(filename);
|
||||
|
||||
g_free(lastfilename);
|
||||
lastfilename = g_path_get_basename(filename);
|
||||
g_free(cheat_last_filename);
|
||||
cheat_last_filename = g_path_get_basename(filename);
|
||||
|
||||
g_free(filename);
|
||||
|
||||
|
@ -362,10 +362,10 @@ static void OnCheatListDlg_SaveClicked(GtkWidget *widget, gpointer user_data) {
|
|||
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), filename);
|
||||
|
||||
// Use game code as default filename, otherwise remember what user selected
|
||||
if (!lastfilename) {
|
||||
lastfilename = get_cdrom_label_id(dot_extension_cht);
|
||||
if (!cheat_last_filename) {
|
||||
cheat_last_filename = get_cdrom_label_id(dot_extension_cht);
|
||||
}
|
||||
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), lastfilename);
|
||||
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), cheat_last_filename);
|
||||
|
||||
g_free(filename);
|
||||
|
||||
|
@ -399,8 +399,8 @@ static void OnCheatListDlg_SaveClicked(GtkWidget *widget, gpointer user_data) {
|
|||
|
||||
SaveCheats(filename);
|
||||
|
||||
g_free(lastfilename);
|
||||
lastfilename = g_path_get_basename(filename);
|
||||
g_free(cheat_last_filename);
|
||||
cheat_last_filename = g_path_get_basename(filename);
|
||||
|
||||
g_free(filename);
|
||||
g_free(filename2);
|
||||
|
|
|
@ -22,4 +22,7 @@
|
|||
void RunCheatListDialog();
|
||||
void RunCheatSearchDialog();
|
||||
|
||||
// last chosen cheat filename is kept in here
|
||||
extern gchar *cheat_last_filename;
|
||||
|
||||
#endif
|
||||
|
|
25
gui/GtkGui.c
25
gui/GtkGui.c
|
@ -195,6 +195,14 @@ void ResetMenuSlots() {
|
|||
}
|
||||
}
|
||||
|
||||
static void clear_change_image() {
|
||||
g_free(reset_load_info);
|
||||
reset_load_info = NULL;
|
||||
autoloadCheats();
|
||||
g_free(cheat_last_filename);
|
||||
cheat_last_filename = NULL;
|
||||
}
|
||||
|
||||
int match(const char *string, char *pattern) {
|
||||
int status;
|
||||
regex_t re;
|
||||
|
@ -252,7 +260,10 @@ gchar* get_cdrom_label_id(const gchar* suffix) {
|
|||
|
||||
g_free(trimlabel);
|
||||
|
||||
return g_strdup(buf);
|
||||
if (strlen(buf) <= (2+strlen(dot_extension_cht)))
|
||||
return g_strconcat("psx-default", dot_extension_cht, NULL);
|
||||
else
|
||||
return g_strdup(buf);
|
||||
}
|
||||
|
||||
void UpdateMenuSlots() {
|
||||
|
@ -267,6 +278,7 @@ void UpdateMenuSlots() {
|
|||
}
|
||||
|
||||
void autoloadCheats() {
|
||||
ClearAllCheats();
|
||||
gchar *chtfile = get_cdrom_label_id(dot_extension_cht);
|
||||
gchar *defaultChtFilePath = g_build_filename (getenv("HOME"), CHEATS_DIR, chtfile, NULL);
|
||||
LoadCheats(defaultChtFilePath); // file existence/access check in LoadCheats()
|
||||
|
@ -624,9 +636,7 @@ void OnFile_RunCd() {
|
|||
SysRunGui();
|
||||
}
|
||||
|
||||
g_free(reset_load_info);
|
||||
reset_load_info = NULL;
|
||||
autoloadCheats();
|
||||
clear_change_image();
|
||||
psxCpu->Execute();
|
||||
}
|
||||
|
||||
|
@ -657,8 +667,7 @@ void OnFile_RunBios() {
|
|||
CdromId[0] = '\0';
|
||||
CdromLabel[0] = '\0';
|
||||
|
||||
g_free(reset_load_info);
|
||||
reset_load_info = NULL;
|
||||
clear_change_image();
|
||||
psxCpu->Execute();
|
||||
}
|
||||
|
||||
|
@ -802,9 +811,7 @@ void OnFile_RunImage() {
|
|||
SysRunGui();
|
||||
}
|
||||
|
||||
g_free(reset_load_info);
|
||||
reset_load_info = NULL;
|
||||
autoloadCheats();
|
||||
clear_change_image();
|
||||
psxCpu->Execute();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue