Qt のundo フレームワークQUndoCommand
では、インスタンスのスタックを持つことができます。これらはそれぞれ、ユーザー インターフェイスでのアクションを説明しています。私たちのアプリケーションでは、一連のモデルで動作する一連のビューがあり、一部は組み合わせて使用されます。多くの場合、同じモデル セットで複数のビューが動作します。私は現在、このフレームワークに基づいてアクションを元に戻す機能を検討しています。
さて、私は UI アクションを記述するコマンド クラスを持つ一般的なパターンに精通していますが、これらは UI 要素の状態変化または基になるモデルのデータ変化を表すものでしょうか? コマンド クラスに含まれるデータと状態の量はどれくらいですか?
私の要点を説明する例: QStandardItemModel
as base モデルがあり、その上にいくつかの proxy モデルがあるとします。各プロキシ モデルは、特定の値の発生によるフィルタリングなど、さまざまな変換を行います。次に、これらのプロキシ モデルの 1 つの値を具体的に変更するコマンド クラスを作成し、フィルター条件が変更されると、そのコマンド クラスの状態が無効になります。そのため、フィルターの状態、または最終的な基になるモデルへのマッピングも含める必要があります。もう 1 つのオプションは、UI のすべての状態変更 (たとえば、フィルター条件の変更を引き起こすもの) に対するコマンドも追加することですが、これの欠点は、元に戻すコマンドのリストがかなり大きくなることです。
ここでのベストプラクティスは何ですか?