标签: undo

使用GTK TextView撤消

我试图将依赖关系保持在我所贡献的程序的最小值,它是一个小文本编辑器.

GTK Textview似乎没有内置的撤消功能.到目前为止,我有没有参考实现?每个人都为自己的TextView小部件编写自己的撤消功能吗?

我会对任何示例代码感到高兴 - 对python示例代码最开心,因为我们的项目是在python中.

python gtk text-editor undo

9
推荐指数
2
解决办法
2805
查看次数

如何在不重大程序更改的情况下实现撤消/重做操作

嗨,我即将为我正在编写的应用程序添加新功能.我需要写一个undo/redo功能.但是,我们90%的应用程序已经准备就绪,我不知道在没有已经创建的代码(太多)的情况下实现此功能的最佳方法是什么.

c# undo undo-redo redo

9
推荐指数
2
解决办法
7692
查看次数

我怎样才能以易于回滚的方式进行git合并?

有很多关于如何在git中"撤消"合并并不容易的讨论.简短版本:如果撤消合并提交,它还会告诉git以后永远不会将这些更改合并.

在进行合并时我能做些什么来减轻这个问题吗?在很多情况下,只需在软件开发的正常过程中撤消合并就非常非常有用,更重要的是,在需要回滚更改时控制发布分支的状态.

编辑

我已经看到了本文中的解决方案,并没有真正认为它是一个解决方案,更多的是对问题的解释.这个需要

  1. 总是使用--no-ff
  2. 当你想要恢复依赖于它们的代码时,记住你所有的撤消合并(这可能是未来几小时,几天,几周或几个月......)

我想要的是

以下是它在Subversion中的工作原理.假设我有一个名为"release-candidate"的分支,这是我们在登台服务器上运行的以及我们尝试使用功能的地方.假设我在功能A分支中合并.在Subversion中,它只是一个变更集,并且所有文件的所有历史记录都已合并.假设我们不喜欢它,所以我们想把它拿出来.我们只是撤消单个变更集,而不必考虑其他任何事情.我们可以在将来的任何时候将功能分支A合并回来,而不必记住我们在某一点将其合并并将其取出.

我希望能够尽可能接近这种流程.我想优化"不必记住未来的东西",即使它让事情在某种程度上采取了更多的步骤.(这可能是不可能的......)

git merge undo rollback feature-branch

9
推荐指数
1
解决办法
472
查看次数

为什么Git中没有撤消/重做?

据我所知,当你想在Git中撤消一些东西时,你必须明确地找到命令来撤消你已经完成的任何事情并发布它.例如,许多撤消提交和重做它的方法之一是遵循这里的示例,

$ git commit ...
$ git reset --soft HEAD^
$ edit
$ git add ....
$ git commit -c ORIG_HEAD 
Run Code Online (Sandbox Code Playgroud)

或者要撤消拉动,您可以按照此处的说明操作,

$ git reset --hard
Run Code Online (Sandbox Code Playgroud)

但是这些命令不一定可以互换.有没有理由为什么Git不允许简单的撤销和重做命令?它与背后的哲学有什么关系?另外,我对其他版本控制系统没有太多经验,但是它们中的任何一个都提供了简单的撤销和重做命令吗?

git version-control undo undo-redo

9
推荐指数
2
解决办法
1872
查看次数

无法在TextChanged中使用撤消

使用textbox.Undo()时; 我收到以下错误:

撤消单元打开时无法撤消或重做.

现在我明白为什么会出现这种情况(因为它是一个活动的可撤销事件)但是通过什么事件可以在文本框中执行验证并在用户键入无效字符时撤消更改?

c# wpf undo

9
推荐指数
2
解决办法
6089
查看次数

如何撤消"hg qnew"?

hg qnew没有意识到它包含了对补丁的任何未完成的更改.我想支持这一点,并选择使用的具体更改hg qrecord.我怎么撤消qnew

mercurial undo mercurial-queue backout

9
推荐指数
1
解决办法
1113
查看次数

如何处理Android视图外的触摸?

我发现在Android的Gmail应用程序中使用了"撤消栏"."UndoBar"基本上是一个显示在布局顶部的视图.

不幸的是,它还没有完成 - 它没有通过触摸栏外的屏幕来消除栏的功能.

我已经实现FrameLayout了覆盖onInterceptTouchEvent以处理条形消除,但触摸Action Bar什么也没做.

有没有办法从Action Bar处理此类事件?

下面是一个显示"UndoBar"的图像.我想用红点代表的动作栏中处理触摸的目的.

在此输入图像描述

gmail android undo

9
推荐指数
2
解决办法
2万
查看次数

禁用撤消以创建/删除NSManagedObject

在我的核心数据模型中,我有一个关系,称为listItems链接到几个listItem实体,每个实体都有一个stringValue属性.我创建了一个控件,它实际上是一个列表NSTextFields,每个列表项都有一个.控件绑定listItems正确,我已将其设置为按下返回键直接在当前编辑的字段下创建一个新字段,并将焦点更改为新字段.因此,基本上,要添加新项目,用户按下Return.

同样,如果用户结束编辑并且当前编辑的字段为空,则删除该字段(如图所示,空字段仅在"编辑模式"期间出现,可以这么说).这非常有效.基本上,在我的listItemNSManagedObject子类中,我执行以下操作:

// Don't allow nil values
if (!value && [[self.recipe ingredients] count] > 1) {
    for (EAIngredientRef *ingredient in [self.recipe ingredients]) {
        if ([[ingredient sortIndex] integerValue] > [[self sortIndex] integerValue]) {
            [ingredient setSortIndex:[NSNumber numberWithInteger:([[ingredient sortIndex] integerValue]-1)]];
        }
    }
    [[self managedObjectContext] deleteObject:self];
    return;
}

// Code to handle if it is a real value
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,每次以这种方式删除行时,它都会注册undoManager.因此,如果我编辑一行,请按Return键(创建一个新行),然后单击"离开"以结束编辑,该行将消失.但是,如果我然后撤消,则会再次出现空字段.我的目标是让undoManager忽略涉及空字段的删除操作.

我该怎么做?我已尝试在几个地方使用[[[self managedObjectContext] undoManager] disableUndoRegistration]和关联enableUndoRegistration(例如-didTurnIntoFault,但我怀疑撤销注册可能在该方法之前发生)

cocoa core-data undo objective-c

8
推荐指数
1
解决办法
2108
查看次数

如何从RichTextBox控件的撤消堆栈中删除操作?

似乎ClearUndo()在Windows窗体的RichTextBox中有这种方法(请参阅system.windows.forms.textboxbase.).

我需要类似的东西RichTextBox Control.这是因为(正如这里提到的:阻止将RichTextBox操作添加到控件的Undo堆栈中),每个更改都会添加到RichTextBox的撤消堆栈中.

我喜欢覆盖OnTextChanged事件并从Uno堆栈中删除一些这些更改.我怎样才能做到这一点?

谢谢.

c# wpf stack undo richtextbox

8
推荐指数
1
解决办法
1558
查看次数

HTML 输入 - 以编程方式设置输入值时撤消历史记录丢失

我有一个 HTML 输入。当用户在其中输入内容时,我设置了“输入”事件来处理将输入更新为用户输入内容的过滤版本(以及更新选择开始和选择结束以获得流畅的用户体验)。为了达到适当的效果,这种情况会不断发生。

然而,我注意到,每当 JS 通过 设置输入的值时input.value = '...';,输入的撤消历史记录就会消失。也就是说,在聚焦的情况下按 Ctrl-Z 不再返回到之前的状态。

有什么方法可以提供输入自定义撤消历史记录,或者以其他方式防止它丢失历史记录,同时仍然更改其值?


这是我的问题的一个最小示例:
输入顶部输入(基本在每个字符之间添加句点)后,Ctrl-Z 不会撤消。

<body>
    <input type="text" id="textbox" placeholder="No undo"/><br/>
    <input type="text" id="textbox2" placeholder="Undo"/>
    <script>
        var tbx = document.getElementById("textbox");
        tbx.addEventListener('input', () => {
            tbx.value = tbx.value + '.'
        });
    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

javascript undo html-input

8
推荐指数
1
解决办法
1749
查看次数