feat(ui): Battle.Net 序列号/恢复码展示 + 热键复制确认
- dialog_bnet_info.go: 新增 Battle.Net 信息对话框,显示序列号 和恢复码,支持一键复制恢复码 - row_menu: 新增 rowActionBnetInfo 动作,仅对 Battle.Net 条目可见 - 热键行为确认:autoType 已自动复制到剪贴板 + 键入前台窗口 - i18n: action_bnet_info / dialog_bnet_info_title / bnet_info_intro / hint_bnet_restore_code_secret 三语翻译
This commit is contained in:
+16
-1
@@ -127,6 +127,7 @@ type appState struct {
|
||||
renameDlg *renameDialog
|
||||
confirmDelDlg *confirmDeleteDialog
|
||||
iconPickerDlg *iconPickerDialog
|
||||
bnetInfoDlg *bnetInfoDialog
|
||||
rowTargetIdx int
|
||||
|
||||
store *store
|
||||
@@ -497,7 +498,13 @@ func drawFrame(gtx layout.Context, th *material.Theme, st *appState, w *app.Wind
|
||||
total := len(st.entries)
|
||||
st.mu.Unlock()
|
||||
st.rowTargetIdx = moreTargetIdx
|
||||
st.rowMenu = newRowActionMenu(moreTargetIdx, total)
|
||||
vendor := ""
|
||||
st.mu.Lock()
|
||||
if moreTargetIdx >= 0 && moreTargetIdx < len(st.entries) {
|
||||
vendor = st.entries[moreTargetIdx].Auth.Name()
|
||||
}
|
||||
st.mu.Unlock()
|
||||
st.rowMenu = newRowActionMenu(moreTargetIdx, total, vendor)
|
||||
}
|
||||
|
||||
// First-run welcome dialog. Routed before all other dialogs so the
|
||||
@@ -743,6 +750,14 @@ func drawFrame(gtx layout.Context, th *material.Theme, st *appState, w *app.Wind
|
||||
}
|
||||
st.mu.Unlock()
|
||||
st.iconPickerDlg = newIconPickerDialog(current)
|
||||
case rowActionBnetInfo:
|
||||
st.mu.Lock()
|
||||
if idx >= 0 && idx < len(st.entries) {
|
||||
if bn, ok := st.entries[idx].Auth.(*authenticator.BattleNetAuthenticator); ok {
|
||||
st.bnetInfoDlg = newBnetInfoDialog(bn)
|
||||
}
|
||||
}
|
||||
st.mu.Unlock()
|
||||
}
|
||||
w.Invalidate()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user