Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve plugin dock position persistence #11931

Closed
TCOTC opened this issue Jul 9, 2024 · 8 comments
Closed

Improve plugin dock position persistence #11931

TCOTC opened this issue Jul 9, 2024 · 8 comments
Assignees
Milestone

Comments

@TCOTC
Copy link
Contributor

TCOTC commented Jul 9, 2024

插件 Dock 按钮无法保持在自定义位置

把按钮移动到其他位置,关闭插件再打开 或者 重载界面 之后按钮位置就恢复默认了

@TCOTC TCOTC changed the title 关闭插件再打开插件,插件 Dock 按钮位置会恢复默认 🐛 关闭插件再打开插件,插件 Dock 按钮位置会恢复默认 Aug 10, 2024
@88250 88250 changed the title 🐛 关闭插件再打开插件,插件 Dock 按钮位置会恢复默认 关闭插件再打开插件,插件 Dock 按钮位置会恢复默认 Aug 11, 2024
@TCOTC TCOTC changed the title 关闭插件再打开插件,插件 Dock 按钮位置会恢复默认 插件 Dock 按钮无法保持在自定义位置 Oct 17, 2024
@Vanessa219
Copy link
Member

重载界面这个才引入的,可以修复。但是关闭以后就没有数据了,只能按照配置来。

Vanessa219 added a commit that referenced this issue Oct 17, 2024
@TCOTC
Copy link
Contributor Author

TCOTC commented Oct 17, 2024

对我这种只在需要用时才启用插件的来说不太友好啊,有没有办法解决一下?

@TCOTC
Copy link
Contributor Author

TCOTC commented Oct 17, 2024

如果思源实在做不到,那有没有办法让插件获取到按钮的位置变动然后将这个位置保存为插件自身的配置信息?

@Vanessa219
Copy link
Member

可能不太好记,如果启用之前,其他 dock 按钮移动过,这个位置可能就不对了。

@TCOTC
Copy link
Contributor Author

TCOTC commented Oct 17, 2024

那至少保持上下左右位置还是可以的,只要是在那个角落就行。

目前的情况是我把按钮放在左边,重启插件之后又跑到右边去了。

Vanessa219 added a commit that referenced this issue Oct 17, 2024
@Vanessa219 Vanessa219 added this to the 3.1.10 milestone Oct 17, 2024
@88250 88250 changed the title 插件 Dock 按钮无法保持在自定义位置 Improve plugin dock position persistence Oct 17, 2024
@Misuzu2027
Copy link
Contributor

Misuzu2027 commented Oct 19, 2024

@Vanessa219 有一个比较严重的问题。

v3.1.10-dev5 版本打开我的空间,发现界面一直在重载。

复现方式:打开 v3.1.10-dev5 ,下载一个插件,我这里是 基于文档搜索(syplugin-document-search) 插件,因为开启后会默认添加 Dock ,接着就会反复重载界面。

经调试原因是 onGetConfig.ts 文件中的 onGetConfig 方法中的 JSONToLayout(app, isStart); 代码调用下面代码发生异常,然后被异常处理捕获导致的

if (window.siyuan.storage[Constants.LOCAL_PLUGIN_DOCKS][plugin.name][key]) {

建议修改判断为 :

if (window.siyuan.storage[Constants.LOCAL_PLUGIN_DOCKS][plugin.name]  && window.siyuan.storage[Constants.LOCAL_PLUGIN_DOCKS][plugin.name][key]) {

我看到前面调用的 updateDock 有初始化 window.siyuan.storage[Constants.LOCAL_PLUGIN_DOCKS][plugin.name] ,但是可能此时界面上还没有添加 dock ,所以初始化没有成功,保证初始化生效应该也行。

@TCOTC
Copy link
Contributor Author

TCOTC commented Oct 20, 2024

我也遇到了,一直在重载,手动删掉工作空间的插件才恢复正常

@88250
Copy link
Member

88250 commented Oct 20, 2024

@Misuzu2027 @TCOTC 我这里可以重现问题,稍后 @Vanessa219 确认一下。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants