[ todo ] player version 96
:追加された部分
:削除された部分
(差分が大きい場合、文字単位では表示しません)
player todo
@[TOC](目次)
----
# もろもろ
- リストのキー受け付け up down
keypresevent に対して行選択を変更するだけ
今はdellキーに対応してるから増やすだけで良いような?
- コンテキスト
曲をタグエディタに渡して編集させる
曲のフォルダを開く
cmd= 'explorer' , os.path.split(path)[0]
subprocess.Popen( cmd )
---------
# 複数タブ対応保存読込ルーチン 途中です
##まずは複数タブ化
- ① def newtab()
タブの追加機能をまず追加して複数タブ状態にする
ファイルのドラッグや演奏は普通に出来るはず
- ②current['p_list':None] を作る、初期値は none だな
演奏中のファイルがあるタブと、現在のタブを分けて管理する
playはD-Clickでしか実行出来ないからその時のlist をp_listにする
- newtab したときにlistは変わる
- ③ def tabchanged() を作って list を変える
p_listは変わらない
- ④ モニタリングルーチンの list は全て p_list に変える
- ⑤ ▶を消すルーチンも p_list に変える
## 全てのタブを保存(tabwidget) <--- sqlファイル
タブの総数を取得
総数を range にしてタブのインデクスでforでまわす
タブ名取得
インデクス→treeview→model取得
モデルのデータ取得
タブ名、カラム0,カラム2でデータ保存
## 読み込み
これが問題だよなあ
-------------
## タグ無しの場合にファイル名をタイトルとする件
書くのは簡単だと思うけど、根本部分の書き直しだとまた10分くらいかかるな
①コードを書き直し
②DBからタイトルが?のものを削除
③更新を実行
これで少し早くできるか??
まず件数をcontしてみるか
-----
# DBとの結合
①DB.pyとDBそのものを viewer.py にコピー
②DBのパスを書き換え
fname=os.path.join(os.path.dirname(__file__) , 'data.DB')
③本体に機能追加
def dbrefresh():
fname=os.path.join(os.path.dirname(__file__) , 'data.py')
cmd= 'python' , fname
p1 = subprocess.Popen( cmd )
- メッセージボックス
```
from PyQt5.QtWidgets import QMessageBox
reply = QMessageBox.question(self, 'Confirm',"want to Refresh Tree ?",
QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
```
# DB 更新ルーチン
```
def actionDBrefresh():
起動(終了待ち)
終了したら更新するかどうかを聞く
するならこのコード
def treeload
if self.model :
del self.model
line='select artist ,album,title ,path from musics order by artist ,album,title'
self.model=self.sqlexecute(line)
self.ui.treeView.setModel(self.model) # tree
ここ差し替えだな
__init__
line='select artist ,album,title ,path from musics order by artist ,album,title'
self.model=self.sqlexecute(line)
self.ui.treeView.setModel(self.model) # tree
self.model=None
self.treeload()
```
----------
# dropルーチンの考え方
**タイトル行は第2カラムに title とするか?**
リストにはタイトル曲の上にアルバム名等の行を表示する仕組み
この実装が面倒、だけど見やすいので踏襲する
受け側の確認
①挿入行がタイトル行(一番下含む)--> なにもしない
②挿入行の上がタイトル行--> 挿入行-1 にする
③それ以外は一旦挿入行にタイトル行を挿入
挿入行の種類
①アルバム行
アルバム+全タイトル
②タイトル行
アルバム+タイトル(アルバム行が同じなら何もしないんだが・・)
## リストのアルバム表示ルーチン再検討
A文字列・・・アーチスト+アルバム+-------
--
ドロップ時の処理
挿入先の行番号を取得
そこから上に検索してA文字列①を取得
アルバム行
A文字列①をまず挿入(分割されるので)
自分のA文字列②を作成して挿入
子供のタイトルを取得して下に順次挿入
タイトル行
タイトルからA文字列②を作成(親のアルバム行から作成)
A文字列①と②を比較して同じならpass
違ったらA文字列①を挿入して②を挿入
順次タイトル行を下に挿入
-----------------
----
## 音量について
foobarで低めに設定したデータをvlcで演奏に生かせるのか?
目次もろもろタグ無しの場合にファイル名をタイトルとする件DBとの結合DB 更新ルーチンdropルーチンの考え方リストのアルバム表示ルーチン再検討--音量について
もろもろ
- リストのキー受け付け up down
keypresevent に対して行選択を変更するだけ
今はdellキーに対応してるから増やすだけで良いような? - コンテキスト
曲をタグエディタに渡して編集させる
タグ無しの場合にファイル名をタイトルとする件
書くのは簡単だと思うけど、根本部分の書き直しだとまた10分くらいかかるな
①コードを書き直し
②DBからタイトルが?のものを削除
③更新を実行
これで少し早くできるか??
まず件数をcontしてみるか
DBとの結合
①DB.pyとDBそのものを viewer.py にコピー
②DBのパスを書き換え
fname=os.path.join(os.path.dirname(file) , 'data.DB')
③本体に機能追加
def dbrefresh():
fname=os.path.join(os.path.dirname(file) , 'data.py')
cmd= 'python' , fname
p1 = subprocess.Popen( cmd )
- メッセージボックス
from PyQt5.QtWidgets import QMessageBox
reply = QMessageBox.question(self, 'Confirm',"want to Refresh Tree ?",
QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
DB 更新ルーチン
def actionDBrefresh():
起動(終了待ち)
終了したら更新するかどうかを聞く
するならこのコード
def treeload
if self.model :
del self.model
line='select artist ,album,title ,path from musics order by artist ,album,title'
self.model=self.sqlexecute(line)
self.ui.treeView.setModel(self.model) # tree
ここ差し替えだな
__init__
line='select artist ,album,title ,path from musics order by artist ,album,title'
self.model=self.sqlexecute(line)
self.ui.treeView.setModel(self.model) # tree
self.model=None
self.treeload()
dropルーチンの考え方
リストのアルバム表示ルーチン再検討
A文字列・・・アーチスト+アルバム+-------
--
音量について
foobarで低めに設定したデータをvlcで演奏に生かせるのか?