mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 14:53:50 +02:00
refactor: split discord & picture settings into their own components
This commit is contained in:
@@ -1172,218 +1172,12 @@
|
|||||||
|
|
||||||
<!--//- Discord Presence Tab-->
|
<!--//- Discord Presence Tab-->
|
||||||
<el-tab-pane lazy :label="t('view.settings.category.discord_presence')">
|
<el-tab-pane lazy :label="t('view.settings.category.discord_presence')">
|
||||||
<div class="options-container" style="margin-top: 0">
|
<DiscordSettings />
|
||||||
<span class="header">{{ t('view.settings.discord_presence.discord_presence.header') }}</span>
|
|
||||||
<div class="options-container-item">
|
|
||||||
<span>{{ t('view.settings.discord_presence.discord_presence.description') }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="options-container-item" @click="showVRChatConfig" style="cursor: pointer">
|
|
||||||
<span>{{ t('view.settings.discord_presence.discord_presence.enable_tooltip') }}</span>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.discord_presence.discord_presence.enable')"
|
|
||||||
:value="discordActive"
|
|
||||||
@change="
|
|
||||||
setDiscordActive();
|
|
||||||
saveDiscordOption();
|
|
||||||
" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.discord_presence.discord_presence.world_integration')"
|
|
||||||
:value="discordWorldIntegration"
|
|
||||||
:disabled="!discordActive"
|
|
||||||
@change="
|
|
||||||
setDiscordWorldIntegration();
|
|
||||||
saveDiscordOption();
|
|
||||||
"
|
|
||||||
:tooltip="t('view.settings.discord_presence.discord_presence.world_integration_tooltip')" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.discord_presence.discord_presence.instance_type_player_count')"
|
|
||||||
:value="discordInstance"
|
|
||||||
:disabled="!discordActive"
|
|
||||||
@change="
|
|
||||||
setDiscordInstance();
|
|
||||||
saveDiscordOption();
|
|
||||||
" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.discord_presence.discord_presence.show_current_platform')"
|
|
||||||
:value="discordShowPlatform"
|
|
||||||
:disabled="!discordActive || !discordInstance"
|
|
||||||
@change="
|
|
||||||
setDiscordShowPlatform();
|
|
||||||
saveDiscordOption();
|
|
||||||
" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.discord_presence.discord_presence.show_details_in_private')"
|
|
||||||
:value="!discordHideInvite"
|
|
||||||
:disabled="!discordActive"
|
|
||||||
@change="
|
|
||||||
setDiscordHideInvite();
|
|
||||||
saveDiscordOption();
|
|
||||||
" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.discord_presence.discord_presence.join_button')"
|
|
||||||
:value="discordJoinButton"
|
|
||||||
:disabled="!discordActive"
|
|
||||||
@change="
|
|
||||||
setDiscordJoinButton();
|
|
||||||
saveDiscordOption();
|
|
||||||
" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.discord_presence.discord_presence.show_images')"
|
|
||||||
:value="!discordHideImage"
|
|
||||||
:disabled="!discordActive"
|
|
||||||
@change="
|
|
||||||
setDiscordHideImage();
|
|
||||||
saveDiscordOption();
|
|
||||||
" />
|
|
||||||
<simple-switch
|
|
||||||
:label="
|
|
||||||
t('view.settings.discord_presence.discord_presence.display_world_name_as_discord_status')
|
|
||||||
"
|
|
||||||
:value="discordWorldNameAsDiscordStatus"
|
|
||||||
:disabled="!discordActive"
|
|
||||||
@change="
|
|
||||||
setDiscordWorldNameAsDiscordStatus();
|
|
||||||
saveDiscordOption();
|
|
||||||
" />
|
|
||||||
</div>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
<!--//- "Pictures" Tab-->
|
<!--//- "Pictures" Tab-->
|
||||||
<el-tab-pane lazy :label="t('view.settings.category.pictures')">
|
<el-tab-pane lazy :label="t('view.settings.category.pictures')">
|
||||||
<!-- redirect to tools tab -->
|
<PictureSettings />
|
||||||
<div class="options-container" style="margin-top: 0">
|
|
||||||
<span class="header">{{ t('view.settings.category.pictures') }}</span>
|
|
||||||
<div class="options-container-item" style="margin-top: 15px">
|
|
||||||
<el-button-group
|
|
||||||
><el-button size="small" :icon="Picture" @click="redirectToToolsTab">{{
|
|
||||||
t('view.settings.advanced.advanced.screenshot_metadata')
|
|
||||||
}}</el-button>
|
|
||||||
</el-button-group>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- redirect to tools tab end -->
|
|
||||||
|
|
||||||
<div class="options-container">
|
|
||||||
<span class="header">{{ t('view.tools.pictures.pictures.open_folder') }}</span>
|
|
||||||
<div class="options-container-item" style="margin-top: 15px">
|
|
||||||
<el-button-group>
|
|
||||||
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
|
|
||||||
t('view.tools.pictures.pictures.vrc_photos')
|
|
||||||
}}</el-button>
|
|
||||||
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
|
|
||||||
t('view.tools.pictures.pictures.steam_screenshots')
|
|
||||||
}}</el-button>
|
|
||||||
</el-button-group>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--//- Pictures | Screenshot Helper-->
|
|
||||||
<div class="options-container">
|
|
||||||
<span class="header">{{ t('view.settings.advanced.advanced.screenshot_helper.header') }}</span>
|
|
||||||
<div class="options-container-item">
|
|
||||||
<span class="name">{{
|
|
||||||
t('view.settings.advanced.advanced.screenshot_helper.description')
|
|
||||||
}}</span>
|
|
||||||
</div>
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.advanced.screenshot_helper.enable')"
|
|
||||||
:value="screenshotHelper"
|
|
||||||
@change="setScreenshotHelper()"
|
|
||||||
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.description_tooltip')"
|
|
||||||
:long-label="true" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.advanced.screenshot_helper.modify_filename')"
|
|
||||||
:value="screenshotHelperModifyFilename"
|
|
||||||
@change="setScreenshotHelperModifyFilename()"
|
|
||||||
:disabled="!screenshotHelper"
|
|
||||||
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.modify_filename_tooltip')"
|
|
||||||
:long-label="true" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.advanced.screenshot_helper.copy_to_clipboard')"
|
|
||||||
:value="screenshotHelperCopyToClipboard"
|
|
||||||
@change="setScreenshotHelperCopyToClipboard()"
|
|
||||||
:long-label="true" />
|
|
||||||
<el-button size="small" :icon="Delete" @click="askDeleteAllScreenshotMetadata()">{{
|
|
||||||
t('view.settings.advanced.advanced.delete_all_screenshot_metadata.button')
|
|
||||||
}}</el-button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="options-container">
|
|
||||||
<span class="header">{{ t('view.settings.pictures.pictures.auto_delete_old_prints') }}</span>
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.pictures.pictures.auto_delete_prints_from_vrc')"
|
|
||||||
:value="autoDeleteOldPrints"
|
|
||||||
@change="setAutoDeleteOldPrints()"
|
|
||||||
:long-label="true" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- //- Pictures | User Generated Content -->
|
|
||||||
<div class="options-container">
|
|
||||||
<span class="header">{{ t('view.settings.advanced.advanced.user_generated_content.header') }}</span>
|
|
||||||
<br />
|
|
||||||
<div class="options-container-item" style="margin-bottom: 5px">
|
|
||||||
<span class="name" style="min-width: 300px">{{
|
|
||||||
t('view.settings.advanced.advanced.user_generated_content.description')
|
|
||||||
}}</span>
|
|
||||||
</div>
|
|
||||||
<el-button size="small" :icon="Folder" @click="openUGCFolder()">{{
|
|
||||||
t('view.settings.advanced.advanced.user_generated_content.folder')
|
|
||||||
}}</el-button>
|
|
||||||
<el-button size="small" :icon="FolderOpened" @click="openUGCFolderSelector()">{{
|
|
||||||
t('view.settings.advanced.advanced.user_generated_content.set_folder')
|
|
||||||
}}</el-button>
|
|
||||||
<el-button size="small" :icon="Delete" @click="resetUGCFolder()" v-if="ugcFolderPath">{{
|
|
||||||
t('view.settings.advanced.advanced.user_generated_content.reset_override')
|
|
||||||
}}</el-button>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<span class="sub-header">{{
|
|
||||||
t('view.settings.advanced.advanced.save_instance_prints_to_file.header')
|
|
||||||
}}</span>
|
|
||||||
<el-tooltip
|
|
||||||
placement="top"
|
|
||||||
style="margin-left: 5px"
|
|
||||||
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
|
|
||||||
<el-icon><InfoFilled /></el-icon>
|
|
||||||
</el-tooltip>
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.description')"
|
|
||||||
:value="saveInstancePrints"
|
|
||||||
@change="setSaveInstancePrints()"
|
|
||||||
:long-label="true" />
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.crop')"
|
|
||||||
:value="cropInstancePrints"
|
|
||||||
@change="setCropInstancePrints()"
|
|
||||||
:long-label="true" />
|
|
||||||
<br />
|
|
||||||
<span class="sub-header">{{
|
|
||||||
t('view.settings.advanced.advanced.save_instance_stickers_to_file.header')
|
|
||||||
}}</span>
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.advanced.save_instance_stickers_to_file.description')"
|
|
||||||
:value="saveInstanceStickers"
|
|
||||||
@change="setSaveInstanceStickers()"
|
|
||||||
:long-label="true" />
|
|
||||||
<br />
|
|
||||||
<span class="sub-header"
|
|
||||||
>{{ t('view.settings.advanced.advanced.save_instance_emoji_to_file.header') }}
|
|
||||||
</span>
|
|
||||||
<el-tooltip
|
|
||||||
placement="top"
|
|
||||||
style="margin-left: 5px"
|
|
||||||
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
|
|
||||||
<el-icon><InfoFilled /></el-icon>
|
|
||||||
</el-tooltip>
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.advanced.save_instance_emoji_to_file.description')"
|
|
||||||
:value="saveInstanceEmoji"
|
|
||||||
@change="setSaveInstanceEmoji()"
|
|
||||||
:long-label="true" />
|
|
||||||
</div>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
<!--//- "Advanced" Tab-->
|
<!--//- "Advanced" Tab-->
|
||||||
@@ -1597,9 +1391,7 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="photonLoggingEnabled">
|
|
||||||
<Photon-Settings />
|
|
||||||
</template>
|
|
||||||
<!--//- Advanced | VRCX Instance Cache/Debug-->
|
<!--//- Advanced | VRCX Instance Cache/Debug-->
|
||||||
<div class="options-container">
|
<div class="options-container">
|
||||||
<span class="header">{{ t('view.settings.advanced.advanced.cache_debug.header') }}</span>
|
<span class="header">{{ t('view.settings.advanced.advanced.cache_debug.header') }}</span>
|
||||||
@@ -1753,6 +1545,9 @@
|
|||||||
<FeedFiltersDialog v-model:feedFiltersDialogMode="feedFiltersDialogMode" />
|
<FeedFiltersDialog v-model:feedFiltersDialogMode="feedFiltersDialogMode" />
|
||||||
<ChangelogDialog />
|
<ChangelogDialog />
|
||||||
<AvatarProviderDialog v-model:isAvatarProviderDialogVisible="isAvatarProviderDialogVisible" />
|
<AvatarProviderDialog v-model:isAvatarProviderDialogVisible="isAvatarProviderDialogVisible" />
|
||||||
|
<template v-if="photonLoggingEnabled">
|
||||||
|
<PhotonSettings />
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -1764,8 +1559,6 @@
|
|||||||
ArrowRight,
|
ArrowRight,
|
||||||
Upload,
|
Upload,
|
||||||
Folder,
|
Folder,
|
||||||
Delete,
|
|
||||||
FolderOpened,
|
|
||||||
User,
|
User,
|
||||||
Tickets,
|
Tickets,
|
||||||
Refresh,
|
Refresh,
|
||||||
@@ -1774,7 +1567,6 @@
|
|||||||
Document,
|
Document,
|
||||||
Connection,
|
Connection,
|
||||||
ChatSquare,
|
ChatSquare,
|
||||||
Picture,
|
|
||||||
CaretRight,
|
CaretRight,
|
||||||
DeleteFilled,
|
DeleteFilled,
|
||||||
Timer,
|
Timer,
|
||||||
@@ -1797,7 +1589,6 @@
|
|||||||
useVRCXUpdaterStore,
|
useVRCXUpdaterStore,
|
||||||
useNotificationsSettingsStore,
|
useNotificationsSettingsStore,
|
||||||
useWristOverlaySettingsStore,
|
useWristOverlaySettingsStore,
|
||||||
useDiscordPresenceSettingsStore,
|
|
||||||
useAdvancedSettingsStore,
|
useAdvancedSettingsStore,
|
||||||
useFriendStore,
|
useFriendStore,
|
||||||
useAvatarProviderStore,
|
useAvatarProviderStore,
|
||||||
@@ -1825,6 +1616,8 @@
|
|||||||
import { THEME_CONFIG } from '../../shared/constants';
|
import { THEME_CONFIG } from '../../shared/constants';
|
||||||
|
|
||||||
import SimpleSwitch from './components/SimpleSwitch.vue';
|
import SimpleSwitch from './components/SimpleSwitch.vue';
|
||||||
|
import DiscordSettings from './components/DiscordSettings.vue';
|
||||||
|
import PictureSettings from './components/PictureSettings.vue';
|
||||||
|
|
||||||
const OpenSourceSoftwareNoticeDialog = defineAsyncComponent(
|
const OpenSourceSoftwareNoticeDialog = defineAsyncComponent(
|
||||||
() => import('./dialogs/OpenSourceSoftwareNoticeDialog.vue')
|
() => import('./dialogs/OpenSourceSoftwareNoticeDialog.vue')
|
||||||
@@ -1848,28 +1641,7 @@
|
|||||||
const { cachedGroups } = useGroupStore();
|
const { cachedGroups } = useGroupStore();
|
||||||
const { cachedAvatars, cachedAvatarNames } = useAvatarStore();
|
const { cachedAvatars, cachedAvatarNames } = useAvatarStore();
|
||||||
const { showConsole } = useVrcxStore();
|
const { showConsole } = useVrcxStore();
|
||||||
const {
|
|
||||||
discordActive,
|
|
||||||
discordInstance,
|
|
||||||
discordHideInvite,
|
|
||||||
discordJoinButton,
|
|
||||||
discordHideImage,
|
|
||||||
discordShowPlatform,
|
|
||||||
discordWorldIntegration,
|
|
||||||
discordWorldNameAsDiscordStatus
|
|
||||||
} = storeToRefs(useDiscordPresenceSettingsStore());
|
|
||||||
const { disableGameLogDialog } = useGameLogStore();
|
const { disableGameLogDialog } = useGameLogStore();
|
||||||
const {
|
|
||||||
setDiscordActive,
|
|
||||||
setDiscordInstance,
|
|
||||||
setDiscordHideInvite,
|
|
||||||
setDiscordJoinButton,
|
|
||||||
setDiscordHideImage,
|
|
||||||
setDiscordShowPlatform,
|
|
||||||
setDiscordWorldIntegration,
|
|
||||||
setDiscordWorldNameAsDiscordStatus,
|
|
||||||
saveDiscordOption
|
|
||||||
} = useDiscordPresenceSettingsStore();
|
|
||||||
const { photonLoggingEnabled } = storeToRefs(usePhotonStore());
|
const { photonLoggingEnabled } = storeToRefs(usePhotonStore());
|
||||||
const { saveSidebarSortOrder } = useFriendStore();
|
const { saveSidebarSortOrder } = useFriendStore();
|
||||||
const { cachedWorlds } = useWorldStore();
|
const { cachedWorlds } = useWorldStore();
|
||||||
@@ -2032,26 +1804,17 @@
|
|||||||
vrcQuitFix,
|
vrcQuitFix,
|
||||||
autoSweepVRChatCache,
|
autoSweepVRChatCache,
|
||||||
selfInviteOverride,
|
selfInviteOverride,
|
||||||
saveInstancePrints,
|
|
||||||
cropInstancePrints,
|
|
||||||
saveInstanceStickers,
|
|
||||||
avatarRemoteDatabase,
|
avatarRemoteDatabase,
|
||||||
enableAppLauncher,
|
enableAppLauncher,
|
||||||
enableAppLauncherAutoClose,
|
enableAppLauncherAutoClose,
|
||||||
enableAppLauncherRunProcessOnce,
|
enableAppLauncherRunProcessOnce,
|
||||||
screenshotHelper,
|
|
||||||
screenshotHelperModifyFilename,
|
|
||||||
screenshotHelperCopyToClipboard,
|
|
||||||
youTubeApi,
|
youTubeApi,
|
||||||
progressPie,
|
progressPie,
|
||||||
progressPieFilter,
|
progressPieFilter,
|
||||||
showConfirmationOnSwitchAvatar,
|
showConfirmationOnSwitchAvatar,
|
||||||
gameLogDisabled,
|
gameLogDisabled,
|
||||||
sqliteTableSizes,
|
sqliteTableSizes,
|
||||||
ugcFolderPath,
|
|
||||||
notificationOpacity,
|
notificationOpacity,
|
||||||
autoDeleteOldPrints,
|
|
||||||
saveInstanceEmoji,
|
|
||||||
sentryErrorReporting
|
sentryErrorReporting
|
||||||
} = storeToRefs(advancedSettingsStore);
|
} = storeToRefs(advancedSettingsStore);
|
||||||
|
|
||||||
@@ -2060,28 +1823,16 @@
|
|||||||
setVrcQuitFix,
|
setVrcQuitFix,
|
||||||
setAutoSweepVRChatCache,
|
setAutoSweepVRChatCache,
|
||||||
setSelfInviteOverride,
|
setSelfInviteOverride,
|
||||||
setSaveInstancePrints,
|
|
||||||
setCropInstancePrints,
|
|
||||||
setSaveInstanceStickers,
|
|
||||||
setAvatarRemoteDatabase,
|
setAvatarRemoteDatabase,
|
||||||
setEnableAppLauncher,
|
setEnableAppLauncher,
|
||||||
setEnableAppLauncherAutoClose,
|
setEnableAppLauncherAutoClose,
|
||||||
setEnableAppLauncherRunProcessOnce,
|
setEnableAppLauncherRunProcessOnce,
|
||||||
setScreenshotHelper,
|
|
||||||
setScreenshotHelperModifyFilename,
|
|
||||||
setScreenshotHelperCopyToClipboard,
|
|
||||||
setShowConfirmationOnSwitchAvatar,
|
setShowConfirmationOnSwitchAvatar,
|
||||||
getSqliteTableSizes,
|
getSqliteTableSizes,
|
||||||
setNotificationOpacity,
|
setNotificationOpacity,
|
||||||
setAutoDeleteOldPrints,
|
|
||||||
resetUGCFolder,
|
|
||||||
openUGCFolder,
|
|
||||||
openUGCFolderSelector,
|
|
||||||
showVRChatConfig,
|
showVRChatConfig,
|
||||||
promptAutoClearVRCXCacheFrequency,
|
promptAutoClearVRCXCacheFrequency,
|
||||||
setSaveInstanceEmoji,
|
setSentryErrorReporting
|
||||||
setSentryErrorReporting,
|
|
||||||
askDeleteAllScreenshotMetadata
|
|
||||||
} = advancedSettingsStore;
|
} = advancedSettingsStore;
|
||||||
|
|
||||||
const instanceTypes = ref([
|
const instanceTypes = ref([
|
||||||
|
|||||||
110
src/views/Settings/components/DiscordSettings.vue
Normal file
110
src/views/Settings/components/DiscordSettings.vue
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
<template>
|
||||||
|
<div class="options-container" style="margin-top: 0">
|
||||||
|
<span class="header">{{ t('view.settings.discord_presence.discord_presence.header') }}</span>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<span>{{ t('view.settings.discord_presence.discord_presence.description') }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="options-container-item" @click="showVRChatConfig" style="cursor: pointer">
|
||||||
|
<span>{{ t('view.settings.discord_presence.discord_presence.enable_tooltip') }}</span>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.enable')"
|
||||||
|
:value="discordActive"
|
||||||
|
@change="
|
||||||
|
setDiscordActive();
|
||||||
|
saveDiscordOption();
|
||||||
|
" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.world_integration')"
|
||||||
|
:value="discordWorldIntegration"
|
||||||
|
:disabled="!discordActive"
|
||||||
|
@change="
|
||||||
|
setDiscordWorldIntegration();
|
||||||
|
saveDiscordOption();
|
||||||
|
"
|
||||||
|
:tooltip="t('view.settings.discord_presence.discord_presence.world_integration_tooltip')" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.instance_type_player_count')"
|
||||||
|
:value="discordInstance"
|
||||||
|
:disabled="!discordActive"
|
||||||
|
@change="
|
||||||
|
setDiscordInstance();
|
||||||
|
saveDiscordOption();
|
||||||
|
" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.show_current_platform')"
|
||||||
|
:value="discordShowPlatform"
|
||||||
|
:disabled="!discordActive || !discordInstance"
|
||||||
|
@change="
|
||||||
|
setDiscordShowPlatform();
|
||||||
|
saveDiscordOption();
|
||||||
|
" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.show_details_in_private')"
|
||||||
|
:value="!discordHideInvite"
|
||||||
|
:disabled="!discordActive"
|
||||||
|
@change="
|
||||||
|
setDiscordHideInvite();
|
||||||
|
saveDiscordOption();
|
||||||
|
" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.join_button')"
|
||||||
|
:value="discordJoinButton"
|
||||||
|
:disabled="!discordActive"
|
||||||
|
@change="
|
||||||
|
setDiscordJoinButton();
|
||||||
|
saveDiscordOption();
|
||||||
|
" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.show_images')"
|
||||||
|
:value="!discordHideImage"
|
||||||
|
:disabled="!discordActive"
|
||||||
|
@change="
|
||||||
|
setDiscordHideImage();
|
||||||
|
saveDiscordOption();
|
||||||
|
" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.discord_presence.discord_presence.display_world_name_as_discord_status')"
|
||||||
|
:value="discordWorldNameAsDiscordStatus"
|
||||||
|
:disabled="!discordActive"
|
||||||
|
@change="
|
||||||
|
setDiscordWorldNameAsDiscordStatus();
|
||||||
|
saveDiscordOption();
|
||||||
|
" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { storeToRefs } from 'pinia';
|
||||||
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { useDiscordPresenceSettingsStore, useAdvancedSettingsStore } from '../../../stores';
|
||||||
|
import SimpleSwitch from './SimpleSwitch.vue';
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
const {
|
||||||
|
setDiscordActive,
|
||||||
|
setDiscordInstance,
|
||||||
|
setDiscordHideInvite,
|
||||||
|
setDiscordJoinButton,
|
||||||
|
setDiscordHideImage,
|
||||||
|
setDiscordShowPlatform,
|
||||||
|
setDiscordWorldIntegration,
|
||||||
|
setDiscordWorldNameAsDiscordStatus,
|
||||||
|
saveDiscordOption
|
||||||
|
} = useDiscordPresenceSettingsStore();
|
||||||
|
|
||||||
|
const {
|
||||||
|
discordActive,
|
||||||
|
discordInstance,
|
||||||
|
discordHideInvite,
|
||||||
|
discordJoinButton,
|
||||||
|
discordHideImage,
|
||||||
|
discordShowPlatform,
|
||||||
|
discordWorldIntegration,
|
||||||
|
discordWorldNameAsDiscordStatus
|
||||||
|
} = storeToRefs(useDiscordPresenceSettingsStore());
|
||||||
|
|
||||||
|
const { showVRChatConfig } = useAdvancedSettingsStore();
|
||||||
|
</script>
|
||||||
166
src/views/Settings/components/PictureSettings.vue
Normal file
166
src/views/Settings/components/PictureSettings.vue
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
<template>
|
||||||
|
<!-- redirect to tools tab -->
|
||||||
|
<div class="options-container" style="margin-top: 0">
|
||||||
|
<span class="header">{{ t('view.settings.category.pictures') }}</span>
|
||||||
|
<div class="options-container-item" style="margin-top: 15px">
|
||||||
|
<el-button-group
|
||||||
|
><el-button size="small" :icon="Picture" @click="redirectToToolsTab">{{
|
||||||
|
t('view.settings.advanced.advanced.screenshot_metadata')
|
||||||
|
}}</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- redirect to tools tab end -->
|
||||||
|
|
||||||
|
<div class="options-container">
|
||||||
|
<span class="header">{{ t('view.tools.pictures.pictures.open_folder') }}</span>
|
||||||
|
<div class="options-container-item" style="margin-top: 15px">
|
||||||
|
<el-button-group>
|
||||||
|
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
|
||||||
|
t('view.tools.pictures.pictures.vrc_photos')
|
||||||
|
}}</el-button>
|
||||||
|
<el-button size="small" :icon="Folder" @click="redirectToToolsTab">{{
|
||||||
|
t('view.tools.pictures.pictures.steam_screenshots')
|
||||||
|
}}</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--//- Pictures | Screenshot Helper-->
|
||||||
|
<div class="options-container">
|
||||||
|
<span class="header">{{ t('view.settings.advanced.advanced.screenshot_helper.header') }}</span>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<span class="name">{{ t('view.settings.advanced.advanced.screenshot_helper.description') }}</span>
|
||||||
|
</div>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.screenshot_helper.enable')"
|
||||||
|
:value="screenshotHelper"
|
||||||
|
@change="setScreenshotHelper()"
|
||||||
|
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.description_tooltip')"
|
||||||
|
:long-label="true" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.screenshot_helper.modify_filename')"
|
||||||
|
:value="screenshotHelperModifyFilename"
|
||||||
|
@change="setScreenshotHelperModifyFilename()"
|
||||||
|
:disabled="!screenshotHelper"
|
||||||
|
:tooltip="t('view.settings.advanced.advanced.screenshot_helper.modify_filename_tooltip')"
|
||||||
|
:long-label="true" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.screenshot_helper.copy_to_clipboard')"
|
||||||
|
:value="screenshotHelperCopyToClipboard"
|
||||||
|
@change="setScreenshotHelperCopyToClipboard()"
|
||||||
|
:long-label="true" />
|
||||||
|
<el-button size="small" :icon="Delete" @click="askDeleteAllScreenshotMetadata()">{{
|
||||||
|
t('view.settings.advanced.advanced.delete_all_screenshot_metadata.button')
|
||||||
|
}}</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="options-container">
|
||||||
|
<span class="header">{{ t('view.settings.pictures.pictures.auto_delete_old_prints') }}</span>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.pictures.pictures.auto_delete_prints_from_vrc')"
|
||||||
|
:value="autoDeleteOldPrints"
|
||||||
|
@change="setAutoDeleteOldPrints()"
|
||||||
|
:long-label="true" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- //- Pictures | User Generated Content -->
|
||||||
|
<div class="options-container">
|
||||||
|
<span class="header">{{ t('view.settings.advanced.advanced.user_generated_content.header') }}</span>
|
||||||
|
<br />
|
||||||
|
<div class="options-container-item" style="margin-bottom: 5px">
|
||||||
|
<span class="name" style="min-width: 300px">{{
|
||||||
|
t('view.settings.advanced.advanced.user_generated_content.description')
|
||||||
|
}}</span>
|
||||||
|
</div>
|
||||||
|
<el-button size="small" :icon="Folder" @click="openUGCFolder()">{{
|
||||||
|
t('view.settings.advanced.advanced.user_generated_content.folder')
|
||||||
|
}}</el-button>
|
||||||
|
<el-button size="small" :icon="FolderOpened" @click="openUGCFolderSelector()">{{
|
||||||
|
t('view.settings.advanced.advanced.user_generated_content.set_folder')
|
||||||
|
}}</el-button>
|
||||||
|
<el-button size="small" :icon="Delete" @click="resetUGCFolder()" v-if="ugcFolderPath">{{
|
||||||
|
t('view.settings.advanced.advanced.user_generated_content.reset_override')
|
||||||
|
}}</el-button>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<span class="sub-header">{{ t('view.settings.advanced.advanced.save_instance_prints_to_file.header') }}</span>
|
||||||
|
<el-tooltip
|
||||||
|
placement="top"
|
||||||
|
style="margin-left: 5px"
|
||||||
|
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
|
||||||
|
<el-icon><InfoFilled /></el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.description')"
|
||||||
|
:value="saveInstancePrints"
|
||||||
|
@change="setSaveInstancePrints()"
|
||||||
|
:long-label="true" />
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.save_instance_prints_to_file.crop')"
|
||||||
|
:value="cropInstancePrints"
|
||||||
|
@change="setCropInstancePrints()"
|
||||||
|
:long-label="true" />
|
||||||
|
<br />
|
||||||
|
<span class="sub-header">{{ t('view.settings.advanced.advanced.save_instance_stickers_to_file.header') }}</span>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.save_instance_stickers_to_file.description')"
|
||||||
|
:value="saveInstanceStickers"
|
||||||
|
@change="setSaveInstanceStickers()"
|
||||||
|
:long-label="true" />
|
||||||
|
<br />
|
||||||
|
<span class="sub-header">{{ t('view.settings.advanced.advanced.save_instance_emoji_to_file.header') }} </span>
|
||||||
|
<el-tooltip
|
||||||
|
placement="top"
|
||||||
|
style="margin-left: 5px"
|
||||||
|
:content="t('view.settings.advanced.advanced.save_instance_prints_to_file.header_tooltip')">
|
||||||
|
<el-icon><InfoFilled /></el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.save_instance_emoji_to_file.description')"
|
||||||
|
:value="saveInstanceEmoji"
|
||||||
|
@change="setSaveInstanceEmoji()"
|
||||||
|
:long-label="true" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { storeToRefs } from 'pinia';
|
||||||
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { Picture, Folder, FolderOpened, Delete, InfoFilled } from '@element-plus/icons-vue';
|
||||||
|
import { useAdvancedSettingsStore } from '../../../stores';
|
||||||
|
import { redirectToToolsTab } from '../../../shared/utils/base/ui';
|
||||||
|
import SimpleSwitch from './SimpleSwitch.vue';
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
const advancedSettingsStore = useAdvancedSettingsStore();
|
||||||
|
|
||||||
|
const {
|
||||||
|
screenshotHelper,
|
||||||
|
screenshotHelperModifyFilename,
|
||||||
|
screenshotHelperCopyToClipboard,
|
||||||
|
autoDeleteOldPrints,
|
||||||
|
saveInstancePrints,
|
||||||
|
cropInstancePrints,
|
||||||
|
saveInstanceStickers,
|
||||||
|
saveInstanceEmoji,
|
||||||
|
ugcFolderPath
|
||||||
|
} = storeToRefs(advancedSettingsStore);
|
||||||
|
|
||||||
|
const {
|
||||||
|
setScreenshotHelper,
|
||||||
|
setScreenshotHelperModifyFilename,
|
||||||
|
setScreenshotHelperCopyToClipboard,
|
||||||
|
setAutoDeleteOldPrints,
|
||||||
|
setSaveInstancePrints,
|
||||||
|
setCropInstancePrints,
|
||||||
|
setSaveInstanceStickers,
|
||||||
|
setSaveInstanceEmoji,
|
||||||
|
askDeleteAllScreenshotMetadata,
|
||||||
|
openUGCFolder,
|
||||||
|
openUGCFolderSelector,
|
||||||
|
resetUGCFolder
|
||||||
|
} = advancedSettingsStore;
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user