どこに何を書くか
しばらく間があきました。
TreeViewの派生ウィジェットを作ったところで、既存コードの整理をすることにします。まず、MainWindowに依存しすぎているという問題をどうにかしたいんですが、Gladeを使っているとどうしても仕方ない部分が多いようです。たとえば派生ウィジェットの__init__の引数はGladeを使っている限りいじれない(多分)とか。その結果ちょっとかっこ悪い記述になりそうな予感です。
しかしまぁとにもかくにも書いてみることにします。派生ウィジェットAoisoTreeViewにも最終的には汎用性を持たせたいのですが、現時点ではどうしたもんだかよくわからないので、まずはMainWindowに書いてある中から、イベントとTreeModelの生成あたりをTreeViewに持っていってみます。TreeModelは誰が持っているべきなのかいまいち分かりませんが、TreeViewが自分で生成する方向でやってみます。
・・・と思いましたがTreeModelはTreeViewには入れないべきと思い直し、イベントだけ移しました。最終的にはまた外に出すことになるかもしれませんが、現時点ではMainWindowが綺麗になればOKということで。
ところで気になる点
self.treeView.get_selection().select_iter(iter)
これではcursor_changedイベントが走らないようなんですが、仕様なんですかね・・・?
まだ完全ではありませんが、大体終わりました。今日は眠いのでここでコミットして終了(Rev.19)。一応前と同じ動作になっているハズです。