[ todo ] player version 93

2019/06/14 15:34 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
player todo
@[TOC](目次)



----
# もろもろ

- リストのキー受け付け up down
keypresevent に対して行選択を変更するだけ
今はdellキーに対応してるから増やすだけで良いような?
- コンテキスト
曲をタグエディタに渡して編集させる
曲のフォルダを開く

cmd= 'explorer' , os.path.split(path)[0]
subprocess.Popen( cmd )


---------
# 複数タブ対応保存読込ルーチン  途中です
##まずは複数タブ化

てのタブを保存(tabwidget)
- ① 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 に変える

タブの数を取得
 タブのインデクスをイテレータにしてforでまわす
## 全てのタブを保存(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()
```


----------
## リストのアルバム表示ルーチン再検討
A文字列・・・アーチスト+アルバム+-------

--
ドロップ時の処理
 挿入先の行番号を取得
 そこから上に検索してA文字列①を取得

 アルバム行
  A文字列①をまず挿入(分割されるので)
  自分のA文字列②を作成して挿入
  子供のタイトルを取得して下に順次挿入
 タイトル行
  タイトルからA文字列②を作成(親のアルバム行から作成)
  A文字列①と②を比較して同じならpass
   違ったらA文字列①を挿入して②を挿入
  順次タイトル行を下に挿入


-----------------

----

## 音量について
foobarで低めに設定したデータをvlcで演奏に生かせるのか?


      

目次もろもろ複数タブ対応保存読込ルーチン  途中です全てのタブを保存(tabwidget) <--- sqlファイル読み込みタグ無しの場合にファイル名をタイトルとする件DBとの結合DB 更新ルーチンリストのアルバム表示ルーチン再検討音量について


もろもろ

  • リストのキー受け付け 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()

リストのアルバム表示ルーチン再検討

A文字列・・・アーチスト+アルバム+-------

--
ドロップ時の処理
 挿入先の行番号を取得
 そこから上に検索してA文字列①を取得

アルバム行
  A文字列①をまず挿入(分割されるので)
  自分のA文字列②を作成して挿入
  子供のタイトルを取得して下に順次挿入
 タイトル行
  タイトルからA文字列②を作成(親のアルバム行から作成)
  A文字列①と②を比較して同じならpass
   違ったらA文字列①を挿入して②を挿入
  順次タイトル行を下に挿入



音量について

foobarで低めに設定したデータをvlcで演奏に生かせるのか?