[ todo ] player version 39

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


## もろもろ

- label の文字列をセンターに
label.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)
label.font
QFont.pointSize (self)

        font = QtGui.QFont()
        font.setFamily(_fromUtf8("Arial"))
        font.setPointSize(12) <=========
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)

こんな書き方もあるみたい
label.setText('<h1>my-text</h1>')
- 行の削除
bool QStandardItemModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
bool QAbstractItemModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

- Toolbarにスライダーをつける
QAction QToolBar.addSeparator (self)
QAction QToolBar.addWidget (self, QWidget widget)
QAction QToolBar.insertWidget (self, QAction before, QWidget widget)
スライダー使い方調べないとわかんない┐('д')┌
QSlider Class Reference  [QtGui module]

- アルバム行の選択
で子供を全て選択するようにする

- リストの末尾へのドラッグ
ドロップ時に挿入対象の行を得るから、末尾(+1)はあり得なかった
挿入行が全体行数と同じ場合はインジケータを確認してから+1にするかどうかを判断すれば良いか??
もしかしたらそもそもインサートは出来ないのかな
appendか??

- ドロップ後に残る、これをオンオフしてみたら
QAbstractItemView.showDropIndicator (self)

- リストのタイトルクリックでタグ表示
- 連続再生とスライダー、時間表示
_
- 曲の右クリックからタグエディタに渡して編集させる
- DB更新をメニューに加える
- コンテキストメニュー作り込む必要
_
_
- これに変えよう  ステータスバーはやめるか!
get_length(self)
 Get the current movie length (in ms). source code  
get_time(self)
 Get the current movie time (in ms). source code  
set_time(self, i_time, b_fast)
 Set the movie time (in ms). source code  
get_position(self)
 Get movie position as percentage between 0.0 and 1.0. 
- スライダーいるかなやっぱり

---------

### DD後のリストのデータ整理

受け側は位置だけ

インジケーターの表示
 self.setDropIndicatorShown(True)

-------------
## タグ無しの場合にファイル名をタイトルとする件
書くのは簡単だと思うけど、根本部分の書き直しだとまた10分くらいかかるな
①コードを書き直し
②DBからタイトルが?のものを削除
③更新を実行
これで少し早くできるか??
まず件数をcontしてみるか

-----
## DBとの結合
本体に完全に取り込むのはやめる方向
・watcdogで監視する必要は無いように思えてきた
・起動時に毎回スキャンし直すのも無駄なような?
・本体に更新ボタンをつけて、終わったらDBを再読み込み
・現在のDB作成pyファイルはそのままにして本体に取り込まない、外部プロセスとして実行する
・DB更新終了のタイミングをどう把握するか??通常15秒程度かかっている
・DB作成pyで、DBファイルのパスを実行ファイル名から獲るようにする

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

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

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

--
行削除時の処理
 A文字列
  A文字列以下の下を取得して全て削除
 タイトル
  上に検索してA文字列取得
  A文字列以下の全てが選択されていたらA文字列ごと削除
  残りがあったら選択タイトルのみ削除

-----------------
## コンテキストメニューの作り方あった

https://dungeonneko.hatenablog.com/entry/2017/06/22/151913

右クリックメニューの実装
https://kiwamiden.com/create-right-click-menu-in-qlistview
```
  # これはwidgetの属性
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.contextMenu)

def contextMenu(self, point):
        menu = QtGui.QMenu(self)
         
        for i in range(5):
            action = QtGui.QAction('Menu%s' % i, self)
            menu.addAction(action)
         
        menu.exec_(self.mapToGlobal(point))
```

- ToolBarにDBのメニューを追加してアクションを上記のようにさらにメニューを出すように書く
DB更新、更新を反映、の二つで良いかな
- 更新は単純に外部スクリプトを呼び出し
その終了を取得してから更新反映ですな
どうやれば終了を取得できるんだろう?
単純に起動すればコンソールが出るからそれでいいかな
新しくモデルを作って現在のモデルと差し替えて古いモデルを破棄する感じかな

----

## リストの保存・読込、複数リストの対応
まだだよ~┐('д')┌
- 保存よりは読み込みかな
読み込んでappendrow
第2カラムがNULLならアルバム行だからスパンさせるって感じですか?


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

目次もろもろDD後のリストのデータ整理タグ無しの場合にファイル名をタイトルとする件DBとの結合リストのアルバム表示ルーチン再検討コンテキストメニューの作り方あったリストの保存・読込、複数リストの対応音量について

もろもろ

  • label の文字列をセンターに
    label.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)

      font = QtGui.QFont()
      font.setFamily(_fromUtf8("Arial"))
      font.setPointSize(12) <=========
      font.setBold(True)
      font.setWeight(75)
      self.label.setFont(font)
    

こんな書き方もあるみたい
label.setText('<h1>my-text</h1>')

  • 行の削除
    bool QStandardItemModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())
    bool QAbstractItemModel.removeRows (self, int row, int count, QModelIndex parent = QModelIndex())

  • Toolbarにスライダーをつける
    QAction QToolBar.addSeparator (self)
    QAction QToolBar.addWidget (self, QWidget widget)
    QAction QToolBar.insertWidget (self, QAction before, QWidget widget)
    スライダー使い方調べないとわかんない┐('д')┌
    QSlider Class Reference [QtGui module]

  • アルバム行の選択
    で子供を全て選択するようにする

  • リストの末尾へのドラッグ
    ドロップ時に挿入対象の行を得るから、末尾(+1)はあり得なかった
    挿入行が全体行数と同じ場合はインジケータを確認してから+1にするかどうかを判断すれば良いか??
    もしかしたらそもそもインサートは出来ないのかな
    appendか??

  • ドロップ後に残る、これをオンオフしてみたら
    QAbstractItemView.showDropIndicator (self)

  • リストのタイトルクリックでタグ表示

  • 連続再生とスライダー、時間表示
    _

  • 曲の右クリックからタグエディタに渡して編集させる

  • DB更新をメニューに加える

  • コンテキストメニュー作り込む必要
    _
    _

  • これに変えよう ステータスバーはやめるか!
    get_length(self)
    Get the current movie length (in ms). source code
    get_time(self)
    Get the current movie time (in ms). source code
    set_time(self, i_time, b_fast)
    Set the movie time (in ms). source code
    get_position(self)
    Get movie position as percentage between 0.0 and 1.0.

  • スライダーいるかなやっぱり


DD後のリストのデータ整理

受け側は位置だけ

インジケーターの表示
 self.setDropIndicatorShown(True)


タグ無しの場合にファイル名をタイトルとする件

書くのは簡単だと思うけど、根本部分の書き直しだとまた10分くらいかかるな
①コードを書き直し
②DBからタイトルが?のものを削除
③更新を実行
これで少し早くできるか??
まず件数をcontしてみるか


DBとの結合

本体に完全に取り込むのはやめる方向
・watcdogで監視する必要は無いように思えてきた
・起動時に毎回スキャンし直すのも無駄なような?
・本体に更新ボタンをつけて、終わったらDBを再読み込み
・現在のDB作成pyファイルはそのままにして本体に取り込まない、外部プロセスとして実行する
・DB更新終了のタイミングをどう把握するか??通常15秒程度かかっている
・DB作成pyで、DBファイルのパスを実行ファイル名から獲るようにする


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

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

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

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

--
行削除時の処理
 A文字列
  A文字列以下の下を取得して全て削除
 タイトル
  上に検索してA文字列取得
  A文字列以下の全てが選択されていたらA文字列ごと削除
  残りがあったら選択タイトルのみ削除


コンテキストメニューの作り方あった

https://dungeonneko.hatenablog.com/entry/2017/06/22/151913

右クリックメニューの実装
https://kiwamiden.com/create-right-click-menu-in-qlistview

  # これはwidgetの属性
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.contextMenu)

def contextMenu(self, point):
        menu = QtGui.QMenu(self)
         
        for i in range(5):
            action = QtGui.QAction('Menu%s' % i, self)
            menu.addAction(action)
         
        menu.exec_(self.mapToGlobal(point))
  • ToolBarにDBのメニューを追加してアクションを上記のようにさらにメニューを出すように書く
    DB更新、更新を反映、の二つで良いかな
  • 更新は単純に外部スクリプトを呼び出し
    その終了を取得してから更新反映ですな
    どうやれば終了を取得できるんだろう?
    単純に起動すればコンソールが出るからそれでいいかな
    新しくモデルを作って現在のモデルと差し替えて古いモデルを破棄する感じかな

リストの保存・読込、複数リストの対応

まだだよ~┐('д')┌

  • 保存よりは読み込みかな
    読み込んでappendrow
    第2カラムがNULLならアルバム行だからスパンさせるって感じですか?

音量について

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