问题标签 [undo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1671 浏览

c# - 当 SaveChanges() 不成功时如何撤消更改?

当 SaveChanges() 不成功时如何撤消更改?

在此示例中,我想删除内存中的新 Toto 对象。我不想手动删除它。我想将我的 contextObject 同步到我的数据库。

0 投票
2 回答
7504 浏览

python - Tkinter Text 小部件中的撤消和重做功能?

我需要在 Tkinter小部件中同时创建Control+ZShift+ Control+函数,以便可以撤消和重做事情。ZText

有谁知道如何做到这一点?

0 投票
2 回答
3429 浏览

qt - QT:使用状态机进行 UI 交互?

问候,

我们正在开发一个检测单元格边界的科学 QT 应用程序。请参考以下原型快照。

在此处输入图像描述 在此处输入图像描述

现在,我们将把它开发为具有良好设计和架构的开源产品。我们发现它有许多复杂的动作和流程。例如:移动轮廓节点,删除轮廓节点,添加轮廓节点,绘制障碍,选择多个节点...等

我们希望为 UI 使用 QT 状态机框架,并且想知道是为每个流/动作使用多个状态机实例还是使用一个“巨大的”状态机?我们需要撤销/重做操作,是否可以将 QT 状态机框架与 QT 撤销/重做框架交互?

[编辑] 真的可以使用 QT SM 框架来处理 UI 交互吗?他们在 GIMP 或 CAD 应用程序中使用什么样的设计?

在此先感谢,

0 投票
2 回答
122 浏览

mercurial - Mercurial:如何删除文件中的一行,最后 4 个变更集(尚未推送)?

我有一个本地 mercurial 存储库,其中包含 5 个仍需要推送到服务器的提交。但是,自从最后 4 次提交以来,我不小心在两个特定文件中包含了一行,我真的不想在其中(也不在其中一个变更集中)。

有什么实用的方法可以删除这两个文件中的这些行吗?(除了扔掉我的本地存储库,克隆服务器的副本,并再次手动重新应用所有更改)

0 投票
3 回答
1289 浏览

design-patterns - 持久命令模式

我想要实现的是在持久存储(数据库)上有一个“可撤销”更改的持久列表。

该体系结构为域对象使用存储库,为事务使用工作单元,对于我想到的使用命令模式的最后部分(撤消)。但是,对我来说,如何使执行的命令持久化似乎没有很好的解决方案。

基本上,存储库添加/更新/删除有 3 个写操作,并且使用命令模式,我需要在执行命令之前存储状态。例如:我必须在删除之前存储域对象(实体),以便在命令上调用撤消后可以恢复它。这里最大的问题是如何以简洁的方式存储之前的状态!

也许你们中的一些人遇到了同样的问题,在我看来这并不少见。

谢谢,克里斯

0 投票
2 回答
519 浏览

database - 使用数据库撤消

我正在尝试编写“撤消”或“回滚”类型的场景。我的一部分认为我把这个复杂化了,它以前一定已经解决了。

背景:我有一个产品(例如一本书),该产品有 20 个字段。一个产品有一个媒体类型(PDF、Hardcopy、EPUB),每个媒体类型都有多个定价(价格、位置,即欧洲、亚洲、美洲)。

看看以前的问题,纪念品模式似乎是最接近的,但我不确定如何做多层次。

例如,更改 1 - 创建产品“Coding for Dummies”,它提供硬拷贝,在欧洲售价 100 美元,在亚洲售价 75 美元

更改 2 - 将欧洲硬拷贝价格更改为 90 美元。添加 PDF,欧洲 90 美元,亚洲 75 美元

更改 3 - 删除硬拷贝记录

Change 3 出错了,我想回滚到 Change 2。

查看 之前 问题Memento模式似乎是最接近的,但我会复制大量数据。即在更改 2 和 3 中,您正在重复产品、媒体和定价。

我使用的数据集有近 1,000,000 种产品。(上面的例子是简化的)实际上,一个Product大约有50个字段,Media Type大约有15个字段

有没有更好的办法?

0 投票
2 回答
655 浏览

core-data - 跨多个运行循环周期的操作的核心数据撤消合并

我有一个基于核心数据的 UIKit 应用程序,它允许用户在屏幕上拖动对象。在拖动对象时,我会在每个touchesMoved:事件上更新其位置属性。为了支持一次性撤消拖动操作,我在拖动开始时启动了一个新的撤消组,并在用户抬起手指时结束该组。

为了节省内存并使撤消操作快速,我想合并属于拖动操作的撤消数据,但 Core Data 使这变得困难。问题是processPendingChanges在每个运行循环周期结束时调用它,它会强制 Core Data 为该迭代中发生的位置更改归档一个新的撤消记录。一个拖拽操作可以很容易地累积数百条这样的撤销记录,除了第一个之外,所有这些都是不必要的。

有没有办法让我继续使用 Core Data 神奇的内置撤消支持,但又不会在重复的撤消记录上浪费宝贵的内存?我喜欢我不需要关心在撤消/重做操作之间维护对象图的一致性,但无法正确处理这些连续的属性更新似乎是一个阻碍。

0 投票
2 回答
1074 浏览

c# - RichTextBox 中的撤消不会撤消粘贴的文本

我有一个 WinForms RichTextBox 并且默认情况下撤消适用于大多数事情,但是当我粘贴一些文本时(我已经剥离了它的格式,它只是纯文本),并尝试撤消它不会撤消刚刚粘贴的文本。

对解决方案有帮助吗?

0 投票
5 回答
294 浏览

python - 如何建立一个有限制的撤消存储?

我想建立一个数据结构来存储有限的撤消缓冲区,以存储 6 dict 数据为例,下面的伪代码:

我的问题是,现有的内置数据类型或标准库类型可以用于这样的目的吗?

并且这样的结构是否有可能在一个结构实例中存储多种类型,例如,如果我想一次性存储 dict 和自定义类?

谢谢!

Rgs,

KC

0 投票
1 回答
2431 浏览

svn - SVN:如何撤消反向合并?

我将 HEAD 修订版的结帐合并回修订版 1000:

之后,我想撤消它并合并回 HEAD 修订版。我的结帐现在应该是修订版 1000,所以我需要合并从 1000 到 HEAD 的所有内容。但是 svn 什么也没做:

嗯,还是只是还原?

它只是安静,不会更新foo.txt到 HEAD 修订版。我该怎么做?