Metadata boxes.

This commit is contained in:
Lukáš Lalinský
2006-09-17 12:03:35 +02:00
parent 0cc02cc667
commit bcb9564fdc
4 changed files with 70 additions and 60 deletions

View File

@@ -84,21 +84,21 @@ class MainWindow(QtGui.QMainWindow):
self.splitter.addWidget(self.fileTreeView)
self.splitter.addWidget(self.albumTreeView)
self.orig_metadataBox = MetadataBox(self, _("Local Metadata"), True)
self.orig_metadataBox.disable()
self.serverMetadataBox = MetadataBox(self, _("Server Metadata"), False)
self.serverMetadataBox.disable()
self.orig_metadata_box = MetadataBox(self, _("Original Metadata"), True)
self.orig_metadata_box.disable()
self.metadata_box = MetadataBox(self, _("New Metadata"), False)
self.metadata_box.disable()
self.connect(self.orig_metadataBox, QtCore.SIGNAL("file_updated(int)"), self, QtCore.SIGNAL("file_updated(int)"))
self.connect(self.serverMetadataBox, QtCore.SIGNAL("file_updated(int)"), self, QtCore.SIGNAL("file_updated(int)"))
self.connect(self.orig_metadata_box, QtCore.SIGNAL("file_updated(int)"), self, QtCore.SIGNAL("file_updated(int)"))
self.connect(self.metadata_box, QtCore.SIGNAL("file_updated(int)"), self, QtCore.SIGNAL("file_updated(int)"))
self.coverArtBox = CoverArtBox(self)
if not self.show_cover_art_action.isChecked():
self.coverArtBox.hide()
bottomLayout = QtGui.QHBoxLayout()
bottomLayout.addWidget(self.orig_metadataBox, 1)
bottomLayout.addWidget(self.serverMetadataBox, 1)
bottomLayout.addWidget(self.orig_metadata_box, 1)
bottomLayout.addWidget(self.metadata_box, 1)
bottomLayout.addWidget(self.coverArtBox, 0)
mainLayout = QtGui.QVBoxLayout()
@@ -395,33 +395,33 @@ class MainWindow(QtGui.QMainWindow):
self.update_actions()
orig_metadata = None
serverMetadata = None
isAlbum = False
metadata = None
is_album = False
statusBar = u""
file = None
if len(objects) == 1:
obj = objects[0]
if isinstance(obj, File):
orig_metadata = obj.orig_metadata
serverMetadata = obj.metadata
metadata = obj.metadata
statusBar = obj.filename
file = obj
elif isinstance(obj, Track):
if obj.linked_file:
orig_metadata = obj.linked_file.orig_metadata
serverMetadata = obj.linked_file.metadata
metadata = obj.linked_file.metadata
statusBar = obj.linked_file.filename
file = obj.linked_file
else:
orig_metadata = obj.metadata
serverMetadata = obj.metadata
metadata = obj.metadata
elif isinstance(obj, Album):
orig_metadata = obj.metadata
serverMetadata = obj.metadata
isAlbum = True
metadata = obj.metadata
is_album = True
self.orig_metadataBox.setMetadata(orig_metadata, isAlbum)
self.serverMetadataBox.setMetadata(serverMetadata, isAlbum, file=file)
self.orig_metadata_box.set_metadata(orig_metadata, is_album)
self.metadata_box.set_metadata(metadata, is_album, file=file)
self.setStatusBarMessage(statusBar)
def showCoverArt(self):

View File

@@ -23,37 +23,37 @@ from picard.util import format_time
class MetadataBox(QtGui.QGroupBox):
def __init__(self, parent, title, readOnly=False):
def __init__(self, parent, title, read_only=False):
QtGui.QGroupBox.__init__(self, title)
self.metadata = None
self.readOnly = readOnly
self.read_only = read_only
from picard.ui.ui_metadata import Ui_Form
self.ui = Ui_Form()
self.ui.setupUi(self)
self.ui.title.setReadOnly(self.readOnly)
self.ui.artist.setReadOnly(self.readOnly)
self.ui.album.setReadOnly(self.readOnly)
self.ui.tracknumber.setReadOnly(self.readOnly)
self.ui.date.setReadOnly(self.readOnly)
self.ui.title.setReadOnly(self.read_only)
self.ui.artist.setReadOnly(self.read_only)
self.ui.album.setReadOnly(self.read_only)
self.ui.tracknumber.setReadOnly(self.read_only)
self.ui.date.setReadOnly(self.read_only)
self.connect(self.ui.lookup, QtCore.SIGNAL("clicked()"), self.lookup)
self.connect(self.ui.title, QtCore.SIGNAL("editingFinished()"),
self.connect(self.ui.title, QtCore.SIGNAL("textEdited(QString)"),
self.update_metadata_title)
self.connect(self.ui.album, QtCore.SIGNAL("editingFinished()"),
self.connect(self.ui.album, QtCore.SIGNAL("textEdited(QString)"),
self.update_metadata_album)
self.connect(self.ui.artist, QtCore.SIGNAL("editingFinished()"),
self.connect(self.ui.artist, QtCore.SIGNAL("textEdited(QString)"),
self.update_metadata_artist)
self.connect(self.ui.tracknumber, QtCore.SIGNAL("editingFinished()"),
self.connect(self.ui.tracknumber, QtCore.SIGNAL("textEdited(QString)"),
self.update_metadata_tracknum)
self.connect(self.ui.date, QtCore.SIGNAL("editingFinished()"),
self.connect(self.ui.date, QtCore.SIGNAL("textEdited(QString)"),
self.update_metadata_date)
self.disable()
def enable(self, album):
if not album:
def enable(self, is_album):
if not is_album:
self.ui.title.setDisabled(False)
self.ui.tracknumber.setDisabled(False)
else:
@@ -82,23 +82,17 @@ class MetadataBox(QtGui.QGroupBox):
self.ui.tracknumber.clear()
self.ui.date.clear()
def setMetadata(self, metadata, album=False, file=None):
def set_metadata(self, metadata, is_album=False, file=None):
self.metadata = metadata
self.file = file
if metadata:
text = metadata.get(u"TITLE", u"")
self.ui.title.setText(text)
text = metadata.get(u"ARTIST", u"")
self.ui.artist.setText(text)
text = metadata.get(u"ALBUM", u"")
self.ui.album.setText(text)
text = metadata.get(u"TRACKNUMBER", u"")
self.ui.tracknumber.setText(text)
text = format_time(metadata.get("~#length", 0))
self.ui.length.setText(text)
text = metadata.get(u"DATE", u"")
self.ui.date.setText(text)
self.enable(album)
self.ui.title.setText(metadata["title"])
self.ui.artist.setText(metadata["artist"])
self.ui.album.setText(metadata["album"])
self.ui.tracknumber.setText(metadata["tracknumber"])
self.ui.length.setText(format_time(metadata.get("~#length", 0)))
self.ui.date.setText(metadata["date"])
self.enable(is_album)
else:
self.clear()
self.disable()
@@ -107,22 +101,23 @@ class MetadataBox(QtGui.QGroupBox):
"""Tell the tagger to lookup the metadata."""
self.tagger.lookup(self.metadata)
def update_metadata(self, edit, name):
self.metadata[name] = unicode(edit.text())
self.file.update()
def update_metadata(self, name, text):
if self.metadata and self.file:
self.metadata[name] = unicode(text)
self.file.update()
def update_metadata_title(self):
self.update_metadata(self.ui.title, "title")
def update_metadata_title(self, text):
self.update_metadata("title", text)
def update_metadata_album(self):
self.update_metadata(self.ui.album, "album")
def update_metadata_album(self, text):
self.update_metadata("album", text)
def update_metadata_artist(self):
self.update_metadata(self.ui.artist, "artist")
def update_metadata_artist(self, text):
self.update_metadata("artist", text)
def update_metadata_tracknum(self):
self.update_metadata(self.ui.tracknumber, "tracknumber")
def update_metadata_date(self):
self.update_metadata(self.ui.date, "date")
def update_metadata_tracknum(self, text):
self.update_metadata("tracknumber", text)
def update_metadata_date(self, text):
self.update_metadata("date", text)

View File

@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'metadata.ui'
#
# Created: Thu Sep 14 22:48:35 2006
# Created: Sun Sep 17 11:57:21 2006
# by: PyQt4 UI code generator 4.0
# E:\projects\picard-qt\ui\compile.py
#
@@ -109,6 +109,12 @@ class Ui_Form(object):
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
Form.setTabOrder(self.title,self.artist)
Form.setTabOrder(self.artist,self.album)
Form.setTabOrder(self.album,self.tracknumber)
Form.setTabOrder(self.tracknumber,self.length)
Form.setTabOrder(self.length,self.date)
Form.setTabOrder(self.date,self.lookup)
def retranslateUi(self, Form):
self.lookup.setText(_("Lookup"))

View File

@@ -171,6 +171,15 @@
</layout>
</widget>
<pixmapfunction></pixmapfunction>
<tabstops>
<tabstop>title</tabstop>
<tabstop>artist</tabstop>
<tabstop>album</tabstop>
<tabstop>tracknumber</tabstop>
<tabstop>length</tabstop>
<tabstop>date</tabstop>
<tabstop>lookup</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>