問題タブ [undo-redo]
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.
ios - CoreDataの元に戻す/やり直し-アクションは元に戻された内容によって異なります
iPadアプリケーション(OpenGL描画アプリ)にやや複雑なデータモデルがあり、元に戻す/やり直し機能の実装に取り組んでいます。Core Dataがデータモデルの変更を無料で元に戻すという事実は気に入っていますが、組み込みの機能で十分かどうかはわかりません。
描画アプリに元にされる/やり直しが実装されている例をたくさん見てきましたが、それらは一般的に次のことを行います。
- 管理対象オブジェクトのコンテキストをに伝えます
undo
。 - 変更したデータモデルからページ上のすべてを再描画します。
これはひどく非効率的です-私のアプリでは、「元に戻されている」特定のオブジェクトに基づいて元に戻すアクションを実行できる必要があります。これは、多くの場合、キャンバスの一部のみを更新することを意味します。
だから私の質問はこれです:私は自分の取り消し操作を登録し、それを組み込みの取り消しと組み合わせて使用できますか?たとえば、ユーザーが線を引いたときに次のようにするとします。
このアクションを元に戻すと、呼び出しが実行され、モデルが適切に変更されますか?NSUndoManager
または、この状況では、組み込みの管理対象オブジェクトコンテキスト取り消しシステムを放棄し、データモデルを自分で削除および編集するなど、を使用して自分自身をロールバックする必要がありますか?組み込みの元に戻る/やり直しが実際に何を元に戻すのかわからない限り、これはひどく厄介で複雑になる可能性があるようです...
編集:(上記のアイデアが機能する場合)登録された元に戻す操作がデータモデルの変更とともにグループ化されるように、それを元に戻すグループにラップする必要があると思いますか?
別の編集:また、元に戻すアクションが実行される順序を保証できますか?つまり、undo
コアデータの変更が保存され、元に戻すアクションが登録された後に呼び出す場合、元にされるアクションが呼び出される前に、削除されたエンティティが復元されることを確認できますか?
vim - 一部のホストではvimundoが1ステップに制限されています
私の開発マシンの1つでは、無制限に元に戻すことができます。uを押したままにして、ファイルを開いたときまでさかのぼることができます。
もう1つは、uを押すと、最後に行った2つの変更が切り替わります。
私が管理者アクセス権を持っている最初の開発マシンとvimインストーラーは自由に統治していました。2つ目は、vimを通常のOSパスから外してインストールし、「Sendto」を使用してvimを起動する必要がありました。おそらくこれは関連していて、いくつかのrcコマンドがありません。また、そのボックスを強調表示するには、「synon」を実行する必要があることに気づきました。vimrcも空白だったので、今はそれと関係があると確信しています。
他のスレッドからは、これが永続的な元に戻る機能に関連しているとは思わないが、単に.swpまたは〜の問題(これらのファイルが使用されているものは何でも)。
締め切りにより、おそらく単純な問題であるパントが発生しました。これを修正するにはどうすればよいですか。
c# - VisualStudio拡張機能で元に戻す/やり直しアクションをログに記録する
Visual Studio拡張機能を作成し、拡張機能に関連するユーザーアクションのログを保持しています。ツールが行った変更の取り消し/やり直し情報をログに含めたいのですが、取り消し/やり直しが発生したときにイベントリスナーを呼び出して、取り消し/やり直しオブジェクトが私のツールが生成したアクションに対応するもの。
ITextUndoHistory
現在、現在のを取得するためのコードがあります。これは、この回答に従って生成IWpfTextView
したものを使用して取得します。残念ながら、私が取得したオブジェクトは、役立つ機能を十分に実装していません。具体的には、そのイベントが呼び出されますが、常に。のトランザクションがあります。また、その/プロパティはスローします。動作するのは、トランザクションオブジェクトを取得し、Visual Studioの元に戻す/やり直しリストに表示されるアクションの名前を設定できるようにすることだけですが、動作する必要はありません。ITextUndoHistoryRegistry
ITextUndoHistory
UndoRedoHappened
null
UndoStack
RedoStack
System.NotSupportedException
CreateTransaction
Visual Studioで元に戻る情報にアクセスする他の方法はありますか?それとも、私がアクセスできるものを使ったもっとクリエイティブなハックですか?
xcode4 - XCode 4.2.1: 元に戻す操作が正しく機能しない
Xcode で元に戻す操作 (Cmd + Z) に問題がある人はいますか? 元に戻す操作を使用して Objective-C コードを編集すると、一部のシンボルが正しく編集されません。例: was {
with Undo {{
XCode 4.2.1
android - Androidのペイントで元に戻す機能のビットマップを保存するには?
元に戻す機能を実装できるアプリケーションを作成しているので、以前の描画線を取得できます..しかし、それを行うことができません。誰かが例を挙げてくれませんか。感謝します。ありがとう
android - Androidのペイントアプリケーションで元に戻す機能を実装するには?
アプリケーションで元に戻す機能を実行したい..このために、コードの下で実行したx、yポイントの配列リストを取得することをネットで見つけました。図面を元に戻すことはできません??
ただし、元に戻す機能は機能していません。
java - UndoRedo.ManagerとJCheckBox
UndoRedo.Managerを使用して、NetbeansRCPアプリケーションにUndo/Redo機能を実装しています。undoableEditListenerは任意のドキュメントに追加でき、テキスト関連のフィールドへの使用を制限します。JCheckBoxのように、ドキュメントなしでそのようなリスナーを要素に追加する方法を知っている人はいますか?
c# - 簡単な元に戻す/やり直しに関するガイドが必要
これは私の最初の C# アプリケーションであり、以前のソフトウェア プログラミングのバックグラウンドなしで完全に独学しました。元に戻す/やり直しについて調査しましたが、役立つ (または理解しやすい) ものは見つかりませんでした。したがって、誰かが私のプログラム(winformsアプリケーション)の元に戻す/やり直し機能を設計するのを手伝ってくれることを願っています。アプリケーションは、特定のイベント (ボタンのクリックなど) 中にユーザーが指定した値を記録するために後続の子フォームが呼び出されるメイン フォームで構成されます。すべてのイベントが処理された後、ビットマップがバッファーに描画され、メイン フォームの OnPaint イベント中にメイン フォーム内のピクチャ ボックスに読み込まれます。各入力はカスタム クラス オブジェクトに分割され、個別の List と BindingList に追加されます。List に含まれるオブジェクトはグラフィック (座標などを示すため) に使用され、BindingList のオブジェクトは DataGridView にいくつかの重要な値を表示するために使用されます。簡単に説明すると、コードは次のようになります。
子フォームのコードは次のようになります。
必要なデータはすべてリストに保存され、特定のイベント (主にボタンのクリック) がトリガーされた後にのみ変更されるため、これらのリストを使用して実行時のアプリケーションの状態を判断しようとしました。元に戻す/やり直し機能を実装する際の私のアプローチは、次のコードを追加することです。
結果: アプリケーションは元に戻す機能を正しく実行しません。プログラムは通常の状態では正しい出力を表示しますが、元に戻すイベントがトリガーされると、描画されたオブジェクトの数に関係なく、アプリケーションは初期状態 (記録されたデータがない状態) に戻ります。スタックが変更されたイベント中に System.Diagnostics.Debug.WriteLine() を使用して undoStack 内のカウント数をチェックしたところ、正しいカウントが得られたようです。リストを別の方法でコピー/複製する必要があると思いますか? それとも、ここで何か間違ったことをしていますか? 誰でも私を案内してもらえますか?パフォーマンス、可読性、リソース管理、将来のメンテナンスなどを考慮する必要はありません。
c++ - VisualC++の元に戻す操作とやり直し操作
Visual-C ++で作成しようとしているかなり大きなアプリケーションがあり、現在、元に戻す/やり直し機能を追加しようとしています。
かなりの量のイベント(ボタンのクリック、ラベルのテキストの変更など)があるので、すべての関数にコードを追加せずに元に戻す/やり直す方法を見つけたいと思います。たとえば、行われたすべてのイベントを読み取り、それを自動的に保存できるクラスが必要です。次に、元に戻す/やり直しイベントで、最新のアクションを保存することができます。
それが不可能な場合、私は他の方法を気にしません。
何か助けはありますか?
qt - qudocommand をファイルに保存してリロードする方法は?
私は qt の undo フレームワークを使用しています。これは qundocommand を使用してアプリケーション サポートの取り消しを行います。これらの qudocommand をファイルに保存して再読み込みする簡単な方法はありますか?