2006年03月21日
再生中のアイコンが二つ出てしまう問題
再生リストに同じ曲を二つ入れると再生中の曲に付くアイコンが二つ出てしまう、というバグを調査し、パッチを提出した。
再生中のアイコンを描くPlaylistView.TrackCellInd()に問題があった。再生リストはGtk.TreeViewから派生させたPlaylistViewとGtk.ListStoreから派生させたPlaylistModelによって作られている。TreeIter型の変数playingIterに再生中の曲がセットされる。しかしPlaylistView.TrackCellIndではplayingIterではなく曲情報を比較していた。問題のケースでは同じ曲情報を持つノードが二つあるので、二つアイコンが出てしまっていた。
最初は再生リストに曲を追加する処理に問題があるんじゃないかと思ったので、本当の原因にたどり着くのに時間がかかってしまった。しかし久々にBansheeのコードをあちこち見ることにもなった。以前クラス図を書いた時とはかなり違っている。クラス図を書き直さなければ。