fix incorrect track selection status
一直没注意到这个错误,直到看到了这个: hooke007/MPV_lazy#455 。这个问题在 uosc 和 dyn_menu.lua 都存在
一开始就是这么写的,不记得当时什么原因去掉的了。
一开始就是这么写的,不记得当时什么原因去掉的了。
看了下代码,这么改之后 update_tracks_menu 应该会出问题,如果同时选择了 2 个字幕的话只有一个会被选中。
一开始就是这么写的,不记得当时什么原因去掉的了。
看了下代码,这么改之后 update_tracks_menu 应该会出问题,如果同时选择了 2 个字幕的话只有一个会被选中。
怎么可能同时选两个?mpv 不支持这种功能吧,当前的行为才是有问题的,如果选了次字幕,则主字幕和次字幕的菜单选择状态都不对
这个PR:
因为 @trackks 语法是在一个菜单下显示所有字幕的,如果主副字幕同时选择了,那这个菜单下就会有 2 个字幕处于选中状态。
因为
@trackks语法是在一个菜单下显示所有字幕的,如果主副字幕同时选择了,那这个菜单下就会有 2 个字幕处于选中状态。
错误,@tracks 语法中 items_s 用的 type 是sid,却让它显示了未声明的secondary-sid的选中状态,这在secondary-sid的菜单中也是如此。这明显不能当成 feature 而是一个错误
即使是作为该脚本重度参考的 mpv.net 菜单语法中也不存在此行为
这里原本的写法确实是偷懒做法,但是主副字幕的选中状态也都要体现一下吧,不然和另一个单独显示主字幕的语法没区别了
这里原本的写法确实是偷懒做法,但是主副字幕的选中状态也都要体现一下吧,不然和另一个单独显示主字幕的语法没区别了
为什么要有区别?你能指出和该脚本具有相似行为的其他播放器菜单用作参考吗?potplayer、mpc-hc 和 vlc 同样支持次字幕,据我所知他们的轨道菜单也不具备这种行为
这个问题在次字幕菜单中尤为明显,使用快捷键切换次字幕时永远不可能选中与主字幕相同的轨道,但在脚本的次字幕菜单中却显示了主字幕的选中状态
这个次字幕菜单的状态一度误导我让我以为是次字幕可见性没有打开,而不是没有选择次字幕。直到看到 https://github.com/hooke007/MPV_lazy/pull/455 我才意识到是次字幕菜单的状态错误 上面的经历已经可以说明当前脚本行为的不合理性了
确实还有待改进,当时的想法是在一个菜单把主次字幕状态都展示出来,但是做出来的结果还是有瑕疵,因为就算状态都显示了也没法在一个菜单内分别设置主次字幕。
已经使用的字幕变灰是我人为添加的逻辑,一般不会有人把主次字幕设置成同一个吧。
确实还有待改进,当时的想法是在一个菜单把主次字幕状态都展示出来,但是做出来的结果还是有瑕疵,因为就算状态都显示了也没法在一个菜单内分别设置主次字幕。
已经使用的字幕变灰是我人为添加的逻辑,一般不会有人把主次字幕设置成同一个吧。
不是有没有,而是 mpv 根本不存在这种用法,但脚本次字幕菜单的显示状态却会让人误以为已经选中了同一字幕轨 使用字幕变灰来显示主/次字幕对应的另一个的选中状态除了开发者几乎没人能看出来,尤其是单独使用主/次字幕菜单时 让轨道菜单的行为和其他播放器保持一致,次字幕的状态应该在单独的次字幕菜单中查看,这样更简单明了不会产生困扰和误解
字幕变灰对应的 'disabled' 代表禁用/不可用,它对应的应该是可见性,我这里有另一个例子来显示当前行为的误导性
看到这个轨道状态会有人看得出是选中显示的次字幕而不是选中了主字幕但可见性被禁用吗?
在新的提交中使用 'disabled' 来表示字幕可见性,纠正之前的用法
在菜单语法中 'disabled' 用于表示不可用状态,当前只有在轨道菜单中 'disabled' 被用于表示另一种状态。这自然而然地导致了用法的混淆和菜单状态的混乱。通过统一 'disabled' 用法来纠正它
如果你确实想在轨道菜单中保留当前同时显示主/次字幕的选择状态的行为的话,建议在此 pr 后添加一个不同于 'disabled' 的新状态来显示它们
在新的提交中使用 'disabled' 来表示字幕可见性,纠正之前的用法
在菜单语法中 'disabled' 用于表示不可用状态,当前只有在轨道菜单中 'disabled' 被用于表示另一种状态。这自然而然地导致了用法的混淆和菜单状态的混乱。通过统一 'disabled' 用法来纠正它
@tsl0922 对此有什么想法吗?
推了一个 commit 改进了下判断逻辑,看下是不是你想要的效果,如果没问题的话就这样合并了。
推了一个 commit 改进了下判断逻辑,看下是不是你想要的效果,如果没问题的话就这样合并了。
LGTM