diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 1deae895..a76745b1 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -356,7 +356,8 @@ "common_redist_description": "Common redistributables are required to run some games. Installing them is recommended to avoid issues.", "install_common_redist": "Install", "installing_common_redist": "Installing…", - "show_download_speed_in_megabytes": "Show download speed in megabytes per second" + "show_download_speed_in_megabytes": "Show download speed in megabytes per second", + "extract_files_by_default": "Extract files by default after download" }, "notifications": { "download_complete": "Download complete", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index ee660ed1..25602fd2 100644 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -343,7 +343,8 @@ "common_redist_description": "Componentes recomendados são necessários para executar alguns jogos. A instalação deles é recomendada para evitar problemas.", "install_common_redist": "Instalar", "installing_common_redist": "Instalando…", - "show_download_speed_in_megabytes": "Exibir taxas de download em megabytes por segundo" + "show_download_speed_in_megabytes": "Exibir taxas de download em megabytes por segundo", + "extract_files_by_default": "Extrair arquivos automaticamente após o download" }, "notifications": { "download_complete": "Download concluído", diff --git a/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx b/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx index f10e267e..c0ea5df1 100644 --- a/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx +++ b/src/renderer/src/pages/game-details/modals/download-settings-modal.tsx @@ -34,13 +34,18 @@ export function DownloadSettingsModal({ }: Readonly) { const { t } = useTranslation("game_details"); + const userPreferences = useAppSelector( + (state) => state.userPreferences.value + ); + const { showErrorToast } = useToast(); const [diskFreeSpace, setDiskFreeSpace] = useState(null); const [selectedPath, setSelectedPath] = useState(""); const [downloadStarting, setDownloadStarting] = useState(false); - const [automaticExtractionEnabled, setAutomaticExtractionEnabled] = - useState(true); + const [automaticExtractionEnabled, setAutomaticExtractionEnabled] = useState( + userPreferences?.extractFilesByDefault ?? true + ); const [selectedDownloader, setSelectedDownloader] = useState(null); const [hasWritePermission, setHasWritePermission] = useState( @@ -49,10 +54,6 @@ export function DownloadSettingsModal({ const { isFeatureEnabled, Feature } = useFeature(); - const userPreferences = useAppSelector( - (state) => state.userPreferences.value - ); - const getDiskFreeSpace = async (path: string) => { const result = await window.electron.getDiskFreeSpace(path); setDiskFreeSpace(result.free); diff --git a/src/renderer/src/pages/settings/settings-behavior.tsx b/src/renderer/src/pages/settings/settings-behavior.tsx index 0afbf5b6..4fcdb92d 100644 --- a/src/renderer/src/pages/settings/settings-behavior.tsx +++ b/src/renderer/src/pages/settings/settings-behavior.tsx @@ -24,6 +24,7 @@ export function SettingsBehavior() { seedAfterDownloadComplete: false, showHiddenAchievementsDescription: false, showDownloadSpeedInMegabytes: false, + extractFilesByDefault: true, }); const { t } = useTranslation("settings"); @@ -43,6 +44,7 @@ export function SettingsBehavior() { userPreferences.showHiddenAchievementsDescription ?? false, showDownloadSpeedInMegabytes: userPreferences.showDownloadSpeedInMegabytes ?? false, + extractFilesByDefault: userPreferences.extractFilesByDefault ?? true, }); } }, [userPreferences]); @@ -152,6 +154,16 @@ export function SettingsBehavior() { }) } /> + + + handleChange({ + extractFilesByDefault: !form.extractFilesByDefault, + }) + } + /> ); } diff --git a/src/types/level.types.ts b/src/types/level.types.ts index f17abbd9..764998af 100644 --- a/src/types/level.types.ts +++ b/src/types/level.types.ts @@ -88,6 +88,7 @@ export interface UserPreferences { achievementNotificationsEnabled?: boolean; friendRequestNotificationsEnabled?: boolean; showDownloadSpeedInMegabytes?: boolean; + extractFilesByDefault?: boolean; } export interface ScreenState {