cloud sync: add options to sync thumbnails and system files, default off (#16869)

This commit is contained in:
Eric Warmenhoven 2024-08-11 16:12:35 -04:00 committed by GitHub
parent 9c5a95a126
commit 12def933dc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 89 additions and 5 deletions

View File

@ -1784,6 +1784,8 @@ static struct config_bool_setting *populate_settings_bool(
SETTING_BOOL("cloud_sync_destructive", &settings->bools.cloud_sync_destructive, true, false, false);
SETTING_BOOL("cloud_sync_sync_saves", &settings->bools.cloud_sync_sync_saves, true, true, false);
SETTING_BOOL("cloud_sync_sync_configs", &settings->bools.cloud_sync_sync_configs, true, true, false);
SETTING_BOOL("cloud_sync_sync_thumbs", &settings->bools.cloud_sync_sync_thumbs, true, false, false);
SETTING_BOOL("cloud_sync_sync_system", &settings->bools.cloud_sync_sync_system, true, false, false);
SETTING_BOOL("discord_allow", &settings->bools.discord_enable, true, false, false);
#ifdef HAVE_MIST
SETTING_BOOL("steam_rich_presence_enable", &settings->bools.steam_rich_presence_enable, true, false, false);

View File

@ -964,6 +964,8 @@ typedef struct settings
bool cloud_sync_destructive;
bool cloud_sync_sync_saves;
bool cloud_sync_sync_configs;
bool cloud_sync_sync_thumbs;
bool cloud_sync_sync_system;
/* Misc. */
bool discord_enable;

View File

@ -3643,7 +3643,15 @@ MSG_HASH(
MSG_HASH(
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_CONFIGS,
"cloud_sync_sync_configs"
)
)
MSG_HASH(
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_THUMBS,
"cloud_sync_sync_thumbs"
)
MSG_HASH(
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_SYSTEM,
"cloud_sync_sync_system"
)
MSG_HASH(
MENU_ENUM_LABEL_CLOUD_SYNC_DRIVER,
"cloud_sync_driver"

View File

@ -1251,7 +1251,15 @@ MSG_HASH(
MSG_HASH(
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_CONFIGS,
"Sync: Configuration Files"
)
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_THUMBS,
"Sync: Thumbnail Images"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_SYSTEM,
"Sync: System Files"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_SAVES,
"When enabled, saves/states will be synced to cloud."
@ -1260,10 +1268,18 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_CONFIGS,
"When enabled, configuration files will be synced to cloud."
)
MSG_HASH(
MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_THUMBS,
"When enabled, thumbnail images will be synced to cloud. Not generally recommended except for large collections of custom thumbnail images; otherwise the thumbnail downloader is a better choice."
)
MSG_HASH(
MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_SYSTEM,
"When enabled, system files will be synced to cloud. This can significantly increase the time it takes to sync; use with caution."
)
MSG_HASH(
MENU_ENUM_SUBLABEL_CLOUD_SYNC_DESTRUCTIVE,
"When disabled, files are moved to a backup folder before being overwritten or deleted."
)
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_DRIVER,
"Cloud Sync Backend"

View File

@ -259,8 +259,10 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_saving_settings_list, MENU_
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_settings_list, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SETTINGS)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_enable, MENU_ENUM_SUBLABEL_CLOUD_SYNC_ENABLE)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_destructive, MENU_ENUM_SUBLABEL_CLOUD_SYNC_DESTRUCTIVE)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_saves, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_SAVES)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_configs, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_CONFIGS)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_saves, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_SAVES)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_configs, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_CONFIGS)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_thumbs, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_THUMBS)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_system, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_SYSTEM)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_driver, MENU_ENUM_SUBLABEL_CLOUD_SYNC_DRIVER)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_url, MENU_ENUM_SUBLABEL_CLOUD_SYNC_URL)
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_username, MENU_ENUM_SUBLABEL_CLOUD_SYNC_USERNAME)
@ -5064,6 +5066,12 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_CONFIGS:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cloud_sync_sync_configs);
break;
case MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_THUMBS:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cloud_sync_sync_thumbs);
break;
case MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_SYSTEM:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cloud_sync_sync_system);
break;
case MENU_ENUM_LABEL_CLOUD_SYNC_DRIVER:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cloud_sync_driver);
break;

View File

@ -10710,6 +10710,8 @@ unsigned menu_displaylist_build_list(
{MENU_ENUM_LABEL_CLOUD_SYNC_DESTRUCTIVE, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_SAVES, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_CONFIGS, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_THUMBS, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_SYSTEM, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_CLOUD_SYNC_DRIVER, PARSE_ONLY_STRING_OPTIONS, true},
{MENU_ENUM_LABEL_CLOUD_SYNC_URL, PARSE_ONLY_STRING, false},
{MENU_ENUM_LABEL_CLOUD_SYNC_USERNAME, PARSE_ONLY_STRING, false},

View File

@ -11891,6 +11891,36 @@ static bool setting_append_list(
general_read_handler,
SD_FLAG_NONE);
CONFIG_BOOL(
list, list_info,
&settings->bools.cloud_sync_sync_thumbs,
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_THUMBS,
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_THUMBS,
false,
MENU_ENUM_LABEL_VALUE_OFF,
MENU_ENUM_LABEL_VALUE_ON,
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
CONFIG_BOOL(
list, list_info,
&settings->bools.cloud_sync_sync_system,
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_SYSTEM,
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_SYSTEM,
false,
MENU_ENUM_LABEL_VALUE_OFF,
MENU_ENUM_LABEL_VALUE_ON,
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
CONFIG_STRING_OPTIONS(
list, list_info,
settings->arrays.cloud_sync_driver,

View File

@ -3236,6 +3236,8 @@ enum msg_hash_enums
MENU_LABEL(CLOUD_SYNC_DESTRUCTIVE),
MENU_LABEL(CLOUD_SYNC_SYNC_SAVES),
MENU_LABEL(CLOUD_SYNC_SYNC_CONFIGS),
MENU_LABEL(CLOUD_SYNC_SYNC_THUMBS),
MENU_LABEL(CLOUD_SYNC_SYNC_SYSTEM),
MENU_LABEL(CLOUD_SYNC_DRIVER),
MENU_LABEL(CLOUD_SYNC_URL),
MENU_LABEL(CLOUD_SYNC_USERNAME),

View File

@ -339,6 +339,20 @@ static struct string_list *task_cloud_sync_directory_map(void)
string_list_append(list, "states", attr);
list->elems[list->size - 1].userdata = strdup(dir_get_ptr(RARCH_DIR_SAVESTATE));
}
if (settings->bools.cloud_sync_sync_thumbs)
{
string_list_append(list, "thumbnails", attr);
strlcpy(dir, settings->paths.directory_thumbnails, sizeof(dir));
list->elems[list->size - 1].userdata = strdup(dir);
}
if (settings->bools.cloud_sync_sync_system)
{
string_list_append(list, "system", attr);
strlcpy(dir, settings->paths.directory_system, sizeof(dir));
list->elems[list->size - 1].userdata = strdup(dir);
}
}
return list;