diff --git a/src/api/index.js b/src/api/index.js index 65646f57..a6b66558 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -3,6 +3,7 @@ * Export all API requests from here */ +import { request } from '../service/request'; import userRequest from './user'; import worldRequest from './world'; import instanceRequest from './instance'; @@ -23,6 +24,7 @@ import inventoryRequest from './inventory'; import propRequest from './prop'; window.request = { + request, userRequest, worldRequest, instanceRequest, @@ -44,6 +46,7 @@ window.request = { }; export { + request, userRequest, worldRequest, instanceRequest, diff --git a/src/localization/en/en.json b/src/localization/en/en.json index c8635e1d..b0939d1a 100644 --- a/src/localization/en/en.json +++ b/src/localization/en/en.json @@ -1555,6 +1555,7 @@ "date": "Date", "action": "Action", "auto_backup": "Auto backup every 3 days (deletes after 2 weeks)", + "ask_to_restore": "Ask to restore when no VRC registry settings are present", "restore_prompt": "VRCX has noticed auto backup of VRC registry settings is enabled but this computer doesn't have any, if you'd like to restore from backup you can do so from here." }, "group_member_moderation": { diff --git a/src/stores/settings/advanced.js b/src/stores/settings/advanced.js index ba2cc4f7..1a9d4523 100644 --- a/src/stores/settings/advanced.js +++ b/src/stores/settings/advanced.js @@ -42,7 +42,8 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { folderSelectorDialogVisible: false, isVRChatConfigDialogVisible: false, saveInstanceEmoji: false, - vrcRegistryAutoBackup: true + vrcRegistryAutoBackup: true, + vrcRegistryAskRestore: true }); async function initAdvancedSettings() { @@ -70,7 +71,8 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { autoDeleteOldPrints, notificationOpacity, saveInstanceEmoji, - vrcRegistryAutoBackup + vrcRegistryAutoBackup, + vrcRegistryAskRestore ] = await Promise.all([ configRepository.getBool('enablePrimaryPassword', false), configRepository.getBool('VRCX_relaunchVRChatAfterCrash', false), @@ -104,7 +106,8 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { configRepository.getBool('VRCX_autoDeleteOldPrints', false), configRepository.getFloat('VRCX_notificationOpacity', 100), configRepository.getBool('VRCX_saveInstanceEmoji', false), - configRepository.getBool('VRCX_vrcRegistryAutoBackup', true) + configRepository.getBool('VRCX_vrcRegistryAutoBackup', true), + configRepository.getBool('VRCX_vrcRegistryAskRestore', true) ]); state.enablePrimaryPassword = enablePrimaryPassword; @@ -131,6 +134,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { state.notificationOpacity = notificationOpacity; state.saveInstanceEmoji = saveInstanceEmoji; state.vrcRegistryAutoBackup = vrcRegistryAutoBackup; + state.vrcRegistryAskRestore = vrcRegistryAskRestore; handleSetAppLauncherSettings(); } @@ -203,6 +207,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { set: (value) => (state.saveInstanceEmoji = value) }); const vrcRegistryAutoBackup = computed(() => state.vrcRegistryAutoBackup); + const vrcRegistryAskRestore = computed(() => state.vrcRegistryAskRestore); /** * @param {boolean} value @@ -376,6 +381,14 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { ); } + async function setVrcRegistryAskRestore() { + state.vrcRegistryAskRestore = !state.vrcRegistryAskRestore; + await configRepository.setBool( + 'VRCX_vrcRegistryAskRestore', + state.vrcRegistryAskRestore + ); + } + async function getSqliteTableSizes() { const [ gps, @@ -682,6 +695,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { isVRChatConfigDialogVisible, saveInstanceEmoji, vrcRegistryAutoBackup, + vrcRegistryAskRestore, setEnablePrimaryPasswordConfigRepository, setRelaunchVRChatAfterCrash, @@ -717,6 +731,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => { promptAutoClearVRCXCacheFrequency, setSaveInstanceEmoji, setVrcRegistryAutoBackup, + setVrcRegistryAskRestore, askDeleteAllScreenshotMetadata }; }); diff --git a/src/stores/vrcx.js b/src/stores/vrcx.js index ccfdb9e5..979d38ff 100644 --- a/src/stores/vrcx.js +++ b/src/stores/vrcx.js @@ -7,12 +7,7 @@ import { database } from '../service/database'; import { AppGlobal } from '../service/appConfig'; import { failedGetRequests } from '../service/request'; import { watchState } from '../service/watchState'; -import { - debounce, - parseLocation, - refreshCustomCss, - removeFromArray -} from '../shared/utils'; +import { debounce, parseLocation, refreshCustomCss } from '../shared/utils'; import { useAvatarStore } from './avatar'; import { useAvatarProviderStore } from './avatarProvider'; import { useFavoriteStore } from './favorite'; @@ -669,7 +664,10 @@ export const useVrcxStore = defineStore('Vrcx', () => { } async function checkAutoBackupRestoreVrcRegistry() { - if (!advancedSettingsStore.vrcRegistryAutoBackup) { + if ( + !advancedSettingsStore.vrcRegistryAutoBackup || + !advancedSettingsStore.vrcRegistryAskRestore + ) { return; } diff --git a/src/views/Settings/dialogs/RegistryBackupDialog.vue b/src/views/Settings/dialogs/RegistryBackupDialog.vue index 7cdf9b1a..3a7669d9 100644 --- a/src/views/Settings/dialogs/RegistryBackupDialog.vue +++ b/src/views/Settings/dialogs/RegistryBackupDialog.vue @@ -11,6 +11,17 @@ {{ t('dialog.registry_backup.auto_backup') }} +
+ {{ t('dialog.registry_backup.ask_to_restore') }} + +
@@ -82,8 +93,8 @@ const { hideTooltips } = storeToRefs(useAppearanceSettingsStore()); const { backupVrcRegistry } = useVrcxStore(); const { isRegistryBackupDialogVisible } = storeToRefs(useVrcxStore()); - const { vrcRegistryAutoBackup } = storeToRefs(useAdvancedSettingsStore()); - const { setVrcRegistryAutoBackup } = useAdvancedSettingsStore(); + const { vrcRegistryAutoBackup, vrcRegistryAskRestore } = storeToRefs(useAdvancedSettingsStore()); + const { setVrcRegistryAutoBackup, setVrcRegistryAskRestore } = useAdvancedSettingsStore(); const { t } = useI18n();