beginMoveRows / endMoveRows を使用して永続インデックスを固定しようとしていますが、展開された状態フラグ / 永続インデックスが重複してはならない場合があります。
非常に多くのコードがあるので、マシンに実行するように指示したと思われることを見ていきます。
すべての魔法を行うメソッド sortChildrenOf(item) があります。
- item から子を見つけ、各子をパラメーターとして sortChildrenOf を呼び出します
- 古い注文を保存
- 子のクイックソート
- 古い順序と新しい順序の違いを見つける
- それぞれの違いについて:
- beingMoveRows
- 変更を適用
- endMoveRows
2 つのレベルがある場合はすべてが完全に機能しますが、「長い」データ ツリーを入力すると、永続的なインデックスが破損します。
ツリーのデータはネットワークから更新されますが、実際の更新は GUI スレッドで行われます。
物事を行うべき正確な順序はありますか? これを引き起こすメソッドを継承するのを忘れたのでしょうか?
これらのメソッドを実装しました: - データ - フラグ - getItem - インデックス - 親 - setData
編集:言及するのを忘れました、私はlayoutAboutToBeChangedを発行し、メインのsortChildrenOf呼び出しの前後にlayoutChangedを発行しました。