[ todo ] player version 17

2019/06/07 15:03 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
player todo
- タグビューにエンコードタイプを表示したい
https://www.olivieraubert.net/vlc/python-ctypes/doc/
libvlc_media_get_codec_description(i_type, i_codec) 
media() から get_codec_description() でイケると思う

- これに変えよう  
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後のリストのデータ整理

- DBのtreeの挙動
・アイテムクリックで、アーティストなら無視、アルバムなら子供の曲を全て選択
・その状態でドラッグさせると、全てリストに渡る
- Listの挙動
・リストでは、これを本体でコネクトしてドロップ後に処理する
QTreeView.rowsInserted (self, QModelIndex parent, int start, int end)
・挿入されたデータをチェックして(n,1)を(n,2)に移動、(n,1)は""にしておいてプレイイングのフラッグにする

- DDの実装
普通はサブクラス化するのかな
本体でconnectしてしまえば本体で書けるけどどっちが良いんだろう
オブジェクト指向で考えるとクラス主義、サブクラス化が本筋か・・
Dropだけconnectして、自分でインサートするか
どの程度の情報がくるんだろう?


PySide 編集可能なQTreeWidgetを作る 

-------------------------------------
受け側の実装

QAbstractItemView.dropEvent (self, QDropEvent e)

QAbstractItemView.DropIndicatorPosition( self )

QDropEvent Class Reference [QtGui module]
  QMimeData QDropEvent.mimeData (self)
  QPoint pos (self)

QMimeData Class Reference [QtCore module]
  QByteArray QMimeData.data (self, QString mimetype)


-------------------------------------
送りガワの実装の方が簡単かな??

ドラッグ&ドロップをもっと細かく!
http://melpystudio.blog82.fc2.com/blog-entry-211.html

-----------------
受け側は位置だけ

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

インデックスの上下を返す

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

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

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

-----------------
- カラム幅の設定
self.view.header().resizeSection(column, width)
モデルを設定したあとで設定
ヘッダを消す前かな??

QTreeViewのヘッダの幅をいい感じにする方法!!
https://kiwamiden.com/how-to-feel-the-width-of-qtreeviews-header-nice

QTreeViewはデフォルトでは、カラムの一番右の場所がストレッチするようになっています。まずはこの設定をOFFにしましょう!
QHeaderView.setStretchLastSection
  view.header().setStretchLastSection(False)

view.header().setStretchLastSection(False)
view.header().setResizeMode(0, QtGui.QHeaderView.Stretch)
view.header().setResizeMode(1, QtGui.QHeaderView.ResizeToContents)
view.header().setResizeMode(2, QtGui.QHeaderView.ResizeToContents)
view.header().setResizeMode(3, QtGui.QHeaderView.ResizeToContents)

------
コンテキストメニューの作り方会った
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))
```

      
  • タグビューにエンコードタイプを表示したい
    https://www.olivieraubert.net/vlc/python-ctypes/doc/
    libvlc_media_get_codec_description(i_type, i_codec)
    media() から get_codec_description() でイケると思う

  • これに変えよう
    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後のリストのデータ整理

  • DBのtreeの挙動
    ・アイテムクリックで、アーティストなら無視、アルバムなら子供の曲を全て選択
    ・その状態でドラッグさせると、全てリストに渡る

  • Listの挙動
    ・リストでは、これを本体でコネクトしてドロップ後に処理する
    QTreeView.rowsInserted (self, QModelIndex parent, int start, int end)
    ・挿入されたデータをチェックして(n,1)を(n,2)に移動、(n,1)は""にしておいてプレイイングのフラッグにする

  • DDの実装
    普通はサブクラス化するのかな
    本体でconnectしてしまえば本体で書けるけどどっちが良いんだろう
    オブジェクト指向で考えるとクラス主義、サブクラス化が本筋か・・
    Dropだけconnectして、自分でインサートするか
    どの程度の情報がくるんだろう?

PySide 編集可能なQTreeWidgetを作る


受け側の実装

QAbstractItemView.dropEvent (self, QDropEvent e)

QAbstractItemView.DropIndicatorPosition( self )

QDropEvent Class Reference [QtGui module]
QMimeData QDropEvent.mimeData (self)
QPoint pos (self)

QMimeData Class Reference [QtCore module]
QByteArray QMimeData.data (self, QString mimetype)


送りガワの実装の方が簡単かな??

ドラッグ&ドロップをもっと細かく!
http://melpystudio.blog82.fc2.com/blog-entry-211.html


受け側は位置だけ

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

インデックスの上下を返す


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

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


  • カラム幅の設定
    self.view.header().resizeSection(column, width)
    モデルを設定したあとで設定
    ヘッダを消す前かな??

QTreeViewのヘッダの幅をいい感じにする方法!!
https://kiwamiden.com/how-to-feel-the-width-of-qtreeviews-header-nice

QTreeViewはデフォルトでは、カラムの一番右の場所がストレッチするようになっています。まずはこの設定をOFFにしましょう!
QHeaderView.setStretchLastSection
  view.header().setStretchLastSection(False)

view.header().setStretchLastSection(False)
view.header().setResizeMode(0, QtGui.QHeaderView.Stretch)
view.header().setResizeMode(1, QtGui.QHeaderView.ResizeToContents)
view.header().setResizeMode(2, QtGui.QHeaderView.ResizeToContents)
view.header().setResizeMode(3, QtGui.QHeaderView.ResizeToContents)


コンテキストメニューの作り方会った
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))