190612
結構簡単だった
曲の長さはvlcからミリ秒で取得できるので1000で割って秒にして、曲ごとにスライダーの最大値を長さに設定することにした
vlcは現在の演奏時間を全体のパーセントでも返してくれるので、それでスライダーを設定するのが筋なのかもしれない
vlcのサンプルはそんな仕組みだったような・・
でもスライダーのドラッグで曲を進めたり戻したりする予定だから、最初から秒単位のスライダーにしておいた方が楽なような気がした
ま、どっちでも良いんだけど ( ´∀`)
あわせてタイマールーチンも整理して、演奏時間をスライダーの横に表示するようにした
なのでステータスバーはやめた (・∀・)ノ
アルバムアートの取得
ファイル埋め込みものはmutagenで取得したが、埋め込まれていなくてフォルダに画像ファイル単独で保存してあるものも表示するようにした
これはfoobarの仕様のまねです
結構大きなサイズの画像をmp3に埋め込んである場合もあって、こういうのは無駄だよなあ、フォルダに一枚で良いよね
アルバムアートは慣れると必須に思えてきた
音楽を聴くだけなら本当は必要ないんだけど、慣れって怖いよなあ
ツールバーにコンテキストメニューが表示されるようにしてみた
調べてあったとおりにやったら簡単だった
このアプリはメニューバーはやめてツールバー一本の予定なので、分岐メニューのための準備
とりあえずはDBを早めに結合したい
リスト保存のための sql 周りを少し改善
リストの保存も出来たし、ほぼこれで聴くだけなら不便は無くなってきた
改善点はまだまだあるんだけど、動機付けが・・・・( ̄― ̄?)
190613
treeに表示されるartistが case senstive になっている
「one ok」と「ONE ok」は別に表示されるバグ
sqlのselectがうまくいってないのかなと漠然と思っていたが、両方拾ってることになるからsqlの問題では無いと気づいた
treeにappendするときに現在の親と同じかどうかを判定して違えば別の親を作るわけだけど、そこがcase senstiveになってた
単純にif a==b
とするとcase senstiveになってしまう
if a.lower() == b.lower()
と、小文字にそろえて比較したらうまくいった
pause 対応
自動演奏モード時にpauseしたら、次の曲を演奏してしまうバグ
タイマーでモニターしてるときにisplayingで演奏中かどうかをチェックするんだが、pauseはfalseを返すんだね
pauseフラッグを立てる事も考えたが、pause時はtimerそのものを止めることにしてみた
timer.isActive() で状態を確認して分岐する
リストのクリックでタグ情報を表示
treeclicked()を再利用した
そのままでは使えないので、self.sender() で呼び出し元を確認してtreeとlistで分岐させた
リスト読み込み時のアルバム行のスパン
データをリストにappedしたタイミングで、第2カラムにファイル名が入ってない場合はスパンするようにした
treeにコンテクストメニュー付けた
表示できるようにしただけ、簡単だったけど実装はこれから
基本的にQtWidgetにはつけれるからなんにでもいける