diff --git a/frontend/src/components/common/DropdownSelector.vue b/frontend/src/components/common/DropdownSelector.vue
index 10d7ed9..c987742 100644
--- a/frontend/src/components/common/DropdownSelector.vue
+++ b/frontend/src/components/common/DropdownSelector.vue
@@ -1,8 +1,9 @@
@@ -81,9 +100,11 @@ const onFormatChanged = (selDecode, selFormat) => {
:default="decodeTypes.NONE"
:disabled="props.disabled"
:icon="Conversion"
+ :menu-option="decodeMenuOption"
:options="decodeTypeOption"
:tooltip="$t('interface.decode_with')"
:value="props.decode"
+ @menu="onDecodeMenu"
@update:value="(d) => onFormatChanged(d, '')" />
diff --git a/frontend/src/components/dialogs/PreferencesDialog.vue b/frontend/src/components/dialogs/PreferencesDialog.vue
index d132112..d015fab 100644
--- a/frontend/src/components/dialogs/PreferencesDialog.vue
+++ b/frontend/src/components/dialogs/PreferencesDialog.vue
@@ -25,7 +25,7 @@ const loading = ref(false)
const initPreferences = async () => {
try {
loading.value = true
- tab.value = 'general'
+ tab.value = dialogStore.preferencesTag || 'general'
await prefStore.loadPreferences()
prevPreferences.value = {
general: prefStore.general,
diff --git a/frontend/src/components/sidebar/Ribbon.vue b/frontend/src/components/sidebar/Ribbon.vue
index c6cae8e..af09694 100644
--- a/frontend/src/components/sidebar/Ribbon.vue
+++ b/frontend/src/components/sidebar/Ribbon.vue
@@ -169,20 +169,23 @@ const exThemeVars = computed(() => {
v-if="prefStore.currentLanguage === 'zh'"
:icon="QRCode"
:size="iconSize"
+ :tooltip-delay="100"
class="nav-menu-button"
t-tooltip="ribbon.wechat_official"
@click="openWechatOfficial" />
diff --git a/frontend/src/langs/en-us.json b/frontend/src/langs/en-us.json
index 95d405b..2e44367 100644
--- a/frontend/src/langs/en-us.json
+++ b/frontend/src/langs/en-us.json
@@ -127,6 +127,7 @@
"memory_usage": "Memory Usage",
"view_as": "View As",
"decode_with": "Decode / Decompression",
+ "custom_decoder": "New Custom Decoder",
"reload": "Reload",
"reload_disable": "Reload will enable after full loaded",
"auto_refresh": "Auto Refresh",
diff --git a/frontend/src/langs/zh-cn.json b/frontend/src/langs/zh-cn.json
index 635740d..3617b94 100644
--- a/frontend/src/langs/zh-cn.json
+++ b/frontend/src/langs/zh-cn.json
@@ -127,6 +127,7 @@
"memory_usage": "内存占用",
"view_as": "查看方式",
"decode_with": "解码/解压方式",
+ "custom_decoder": "添加自定义解码",
"reload": "重新载入",
"reload_disable": "全量加载后可重新载入",
"auto_refresh": "自动刷新",
diff --git a/frontend/src/stores/dialog.js b/frontend/src/stores/dialog.js
index b0e36d7..5be88ea 100644
--- a/frontend/src/stores/dialog.js
+++ b/frontend/src/stores/dialog.js
@@ -102,6 +102,8 @@ const useDialogStore = defineStore('dialog', {
},
preferencesDialogVisible: false,
+ preferencesTag: '',
+
aboutDialogVisible: false,
}),
actions: {
@@ -346,11 +348,13 @@ const useDialogStore = defineStore('dialog', {
this.decodeDialogVisible = false
},
- openPreferencesDialog() {
+ openPreferencesDialog(tag = '') {
this.preferencesDialogVisible = true
+ this.preferencesTag = tag
},
closePreferencesDialog() {
this.preferencesDialogVisible = false
+ this.preferencesTag = ''
},
openAboutDialog() {