Metasequoia BBS

| New message | Normal | Tree |
Status
Tag
Keyword
[1572] UpdateUndoのアンドゥバッファ消費について / ASDF-0774
[SDK] Response
コマンドプラグインのUpdateUndoについて質問があるのですが、
プラグイン側で明示的にUpdateUndoを呼ぶということは、
アンドゥバッファを更新するような標準の操作が無いにも関わらず
アンドゥバッファを更新したい、すなわちプラグイン側特有の
データに変更があったとき、それをアンドゥ/リドゥしたいがため、
と考えられるのですが、そういう用途に限らない、ということでしょうか?

もしそういう用途ならば、メタセコイア側ドキュメントには変更が
行われていないのに、メモリ上のアンドゥ領域を消費してしまうのは
非常に勿体無い気がします。
(例えばダイアログのボタンを押したらUpdateUndoが呼ばれるだけ、
というような作りにしてボタンを押し続けたところ、アンドゥ
最大回数に到達していないにも関わらず、最初にボタンを押す前の
状態に戻れなくなってしまいました)
2008-12-13 01:16

Show the middle 3 messages.

[1578] Re: Re: Re: Re: UpdateUndoのアンドゥバッファ消費について / ASDF-0774
ありがとうございました。

実は頂点のユニークID(以下UID)に関連づけるデータを付加するのに、
そのユニークIDの寿命の管理が厄介であるため、それをなんとかしようと
考えてこの件に気がつきました。
(例えばUID=1の頂点を追加してUndoして別の操作をするとUID=1は完全に無効になるけれど、
これはOnObjectModifiedごとに総あたりしないとわからない。
UID=1の頂点追加の後、UID=1に関連づけたプラグイン固有データ追加、
その追加履歴をプラグイン側で保存してUpdateUndoなら、
Undo操作でプラグイン固有データから削除できるので、総あたりで
調べなくとも無効になったUIDに関する情報を先に消去できる。
でも、調べてみたら標準のアンドゥバッファを大量に浪費してしまう。)

なので、もし頂点が追加・削除されるごとにプラグイン側に
「どの頂点が追加・削除されたか」を通知する方が容易であるならば、
私としてはそちらを優先していただきたいと思う次第です。

注文ばかり多くなって申し訳ありませんが、ご検討のほどよろしく
お願い致します。
2008-12-15 18:09
Title
Name
Mail address for renponse notification A mail will be sent when the response is written. This address will be not shown after you post.
Tag Please select from a preset or input arbitrary comma-delimited tags.
Message

Now file attachment is not available temporarily.