summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2010-12-30 09:40:25 +0100
committerAnton Khirnov <anton@khirnov.net>2011-01-04 09:33:31 +0100
commit98a1aadf64241132d5ef1f44fe5105099cfaa918 (patch)
tree130abc825acde86cd350b54b496729d72f29fea7
parentf52f2de6319b276e4463f9e779944d1bc246ed5b (diff)
Songinfo: reformat to new style
-rw-r--r--nephilim/plugins/Songinfo.py100
1 files changed, 54 insertions, 46 deletions
diff --git a/nephilim/plugins/Songinfo.py b/nephilim/plugins/Songinfo.py
index aee58da..074bb30 100644
--- a/nephilim/plugins/Songinfo.py
+++ b/nephilim/plugins/Songinfo.py
@@ -20,23 +20,24 @@ from PyQt4 import QtGui, QtCore
from ..plugin import Plugin
class Songinfo(Plugin):
- # public, const
+
+ #### PUBLIC ####
+ # const
info = 'Displays song metadata provided by MPD.'
- # public, read-only
+ # read-only
o = None
tags = None
- # private
+ #### PRIVATE ####
DEFAULTS = {'tagtypes' : ['track', 'title', 'artist', 'album',
'albumartist', 'disc', 'genre', 'date', 'composer', 'performer', 'file']}
- #### public ####
+ #### PUBLIC ####
def __init__(self, parent, mpclient, name):
Plugin.__init__(self, parent, mpclient, name)
- self.__tags = []
-
+ self.tags = []
def _load(self):
self.o = SonginfoWidget(self)
self.mpclient.song_changed.connect(self.refresh)
@@ -45,21 +46,18 @@ class Songinfo(Plugin):
if self.mpclient.is_connected():
self.update_tagtypes()
self.refresh()
-
def _unload(self):
self.mpclient.song_changed.disconnect(self.refresh)
self.mpclient.connect_changed.disconnect(self.update_tagtypes)
self.o = None
-
def _get_dock_widget(self):
return self._create_dock(self.o)
-
def get_settings_widget(self):
return SettingsWidgetSonginfo(self)
def update_tagtypes(self):
- self.__tags = [tag for tag in self.settings.value(self.name + '/tagtypes') if tag in self.mpclient.tagtypes]
- self.o.set_tagtypes(self.__tags)
+ self.tags = [tag for tag in self.settings.value(self.name + '/tagtypes') if tag in self.mpclient.tagtypes]
+ self.o.set_tagtypes(self.tags)
def refresh(self):
self.logger.info('Refreshing.')
metadata = {}
@@ -68,23 +66,32 @@ class Songinfo(Plugin):
if not song:
return self.o.clear()
- for tag in self.__tags:
+ for tag in self.tags:
metadata[tag] = song[tag] if tag in song else ''
self.o.set_metadata(metadata)
class SonginfoWidget(QtGui.QWidget):
+
+ #### PUBLIC ####
+ "parent plugin"
plugin = None
- __labels = None
+ #### PRIVATE ####
+ _labels = None
+ _st_label = None
+ _stickers = None
+
+ #### PUBLIC ####
def __init__(self, plugin):
QtGui.QWidget.__init__(self)
self.plugin = plugin
- self.__labels = {}
+ self._labels = {}
self.setLayout(QtGui.QGridLayout())
self.layout().setColumnStretch(1, 1)
def set_tagtypes(self, tagtypes):
"""Setup labels for each tagtype in the list."""
+ # clear old data
for i in range(self.layout().rowCount()):
it = self.layout().itemAtPosition(i, 0)
it1 = self.layout().itemAtPosition(i, 1)
@@ -94,7 +101,7 @@ class SonginfoWidget(QtGui.QWidget):
if it1:
self.layout().removeItem(it1)
it1.widget().setParent(None)
- self.__labels = {}
+ self._labels = {}
for tag in tagtypes:
label = QtGui.QLabel('<b>%s</b>'%tag) #TODO sort known tags
@@ -102,65 +109,66 @@ class SonginfoWidget(QtGui.QWidget):
label1.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse)
label.setWordWrap(True)
label1.setWordWrap(True)
- self.layout().addWidget(label, len(self.__labels), 0, QtCore.Qt.AlignRight)
- self.layout().addWidget(label1, len(self.__labels), 1)
- self.__labels[tag] = label1
+ self.layout().addWidget(label, len(self._labels), 0, QtCore.Qt.AlignRight)
+ self.layout().addWidget(label1, len(self._labels), 1)
+ self._labels[tag] = label1
def set_metadata(self, metadata):
"""Set displayed metadata, which is provided in a dict of { tag : value }."""
for tag in metadata:
- self.__labels[tag].setText(metadata[tag])
+ self._labels[tag].setText(metadata[tag])
def clear(self):
""" Clear displayed metadata. """
- for label in self.__labels.values():
+ for label in self._labels.values():
label.clear()
class SettingsWidgetSonginfo(Plugin.SettingsWidget):
- # private
- taglist = None
+ #### PRIVATE ####
+ _taglist = None
+ #### PUBLIC ####
def __init__(self, plugin):
Plugin.SettingsWidget.__init__(self, plugin)
self.settings.beginGroup(self.plugin.name)
- self.taglist = QtGui.QListWidget(self)
- self.taglist.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
- self.__update_tags()
- self.plugin.mpclient.connect_changed.connect(self.__update_tags)
+ self._taglist = QtGui.QListWidget(self)
+ self._taglist.setDragDropMode(QtGui.QAbstractItemView.InternalMove)
+ self._update_tags()
+ self.plugin.mpclient.connect_changed.connect(self._update_tags)
self.setLayout(QtGui.QVBoxLayout())
- self._add_widget(self.taglist, label = 'Tags', tooltip = 'A list of tags that should be displayed.\n'
+ self._add_widget(self._taglist, label = 'Tags', tooltip = 'A list of tags that should be displayed.\n'
'Use drag and drop to change their order')
+ def save_settings(self):
+ if not self._taglist.isEnabled():
+ return
+
+ tags = []
+ for i in range(self._taglist.count()):
+ it = self._taglist.item(i)
+ if it.checkState() == QtCore.Qt.Checked:
+ tags.append(it.text())
+ self.settings.setValue('tagtypes', tags)
+
+ self.plugin.update_tagtypes()
+ self.plugin.refresh()
- def __update_tags(self):
- self.taglist.setEnabled(self.plugin.mpclient.is_connected())
+ #### PRIVATE ####
+ def _update_tags(self):
+ self._taglist.setEnabled(self.plugin.mpclient.is_connected())
if not self.plugin.mpclient.is_connected():
return
- self.taglist.clear()
+ self._taglist.clear()
tags_enabled = self.settings.value('tagtypes')
tags = self.plugin.mpclient.tagtypes
for tag in [tag for tag in tags_enabled if tag in tags]:
it = QtGui.QListWidgetItem(tag)
it.setCheckState(QtCore.Qt.Checked)
- self.taglist.addItem(it)
+ self._taglist.addItem(it)
for tag in [tag for tag in tags if tag not in tags_enabled]:
it = QtGui.QListWidgetItem(tag)
it.setCheckState(QtCore.Qt.Unchecked)
- self.taglist.addItem(it)
-
- def save_settings(self):
- if not self.taglist.isEnabled():
- return
-
- tags = []
- for i in range(self.taglist.count()):
- it = self.taglist.item(i)
- if it.checkState() == QtCore.Qt.Checked:
- tags.append(it.text())
- self.settings.setValue('tagtypes', tags)
-
- self.plugin.update_tagtypes()
- self.plugin.refresh()
+ self._taglist.addItem(it)