Contact me: hankecnc@gmail.com

撤消功能范围 #176

推推 grbl 3年前 (2023-02-03) 321次浏览
关闭
jorgerobles 打开了这个问题 2017 年 2 月 28 日 · 9条评论
关闭

撤消功能范围#176

jorgerobles 打开了这个问题 2017 年 2 月 28 日 · 9条评论

评论

撤消功能范围 #176
合作者

大家好。

UNDO 功能几个月以来一直在工作,但我意识到一些事件不应该用 UNDO 捕获,因为 LW 会发疯。

@tbfleming是否可以在工作区中翻译文档,每对 StartDrag/StopDrag 夫妇只发送一个事件,还有相机移动(如果它们被认为被捕获以进行撤消。)

请大家花点时间查看 UI,打开开发工具,检查哪些事件应该/不应该被捕获以进行撤消,然后在此处发布。

撤消功能范围 #176
成员

@jorgerobles显示基于当前状态,因此需要重复操作。大多数(全部?)数字字段也会产生重复操作(当数字字段具有焦点时按住向上或向下箭头键),因此我们可能需要一个通用的解决方案。

这个怎么样:撤消系统可以存储收到的最后一个动作。只要有撤消或重做,它就应该清除它。如果撤消系统接收到与当前存储的匹配(见下文)的操作,则不要更改撤消历史记录。

如果出现以下情况,则两个动作匹配:

  • 它们具有相同的类型,并且
  • 类型是 *_SET_ATTRS,并且
  • 由操作更改的属性集具有相同的名称
撤消功能范围 #176
合作者作者

@tbfleming我已经按照您建议的方式完成并发现了一些撤消错误。我认为进展顺利。谢谢!

撤消功能范围 #176

@jorgerobles我们需要撤消的最常见时间是当我们不小心移动了一个矢量并想把它放回原来的位置时。
目前,这意味着重新加载文档并从头开始设置操作。

我们最近尝试了 ctrl-z(祈祷),但没有奏效。我想这没有被捕获。

如果您正在考虑能够撤消多个步骤,我建议您对此设置一个限制。也许最后 5 个操作是不可撤销的。我已经看到许多图形程序在采用无限撤消时变得非常不稳定。

撤消功能范围 #176
合作者作者

@DarklyLabs DOCUMENT_SELECT_TRANSLATE 确实被抓住了(以前是但不像现在那么酷!)
我添加了 2 秒的超时,所以如果你移动一个元素,并在 2 秒的时间范围内保持移动,只有第一次移动才算数。如果您移动,请等待 2 秒然后移动,这两个移动都会在撤消时被捕获。

撤消仅限于返回 10 个快照。