Merge remote-tracking branch 'voiceinsideyou/PICARD-186'

Conflicts:
	NEWS.txt
This commit is contained in:
Lukáš Lalinský
2012-05-22 18:59:19 +02:00
7 changed files with 34 additions and 11 deletions

View File

@@ -10,6 +10,8 @@ Version UNRELEASED - 2012-XX-XX
* Change cover art box to open MusicBrainz release rather than Amazon
* Support manual drag-and-drop of cover art onto a release via cover art box
* Only open browser on left-click of cover art box (PICARD-190)
* Fix Lookup in Browser (previously 'tag lookup') for clusters (PICARD-186)
* Lookup in Browser will now not use MBIDs to lookup unmatched files/clusters
Version 0.16 - 2011-10-23
* Added AcoustID support.

View File

@@ -392,6 +392,9 @@ class Album(DataObject, Item):
def can_refresh(self):
return True
def is_album_like(self):
return True
def get_num_matched_tracks(self):
num = 0
for track in self.tracks:
@@ -481,3 +484,6 @@ class NatAlbum(Album):
def _finalize_loading(self, error):
self.update()
def can_browser_lookup(self):
return False

View File

@@ -121,6 +121,9 @@ class Cluster(QtCore.QObject, Item):
def can_browser_lookup(self):
return not self.special
def is_album_like(self):
return True
def column(self, column):
if column == 'title':
return '%s (%d)' % (self.metadata['album'], self.metadata['totaltracks'])

View File

@@ -407,20 +407,26 @@ class Tagger(QtGui.QApplication):
lookup = self.get_file_lookup()
getattr(lookup, type + "Search")(text, adv)
def lookup(self, metadata):
"""Lookup the metadata on the MusicBrainz website."""
def browser_lookup(self, item):
"""Lookup the object's metadata on the MusicBrainz website."""
lookup = self.get_file_lookup()
metadata = item.metadata
albumid = metadata["musicbrainz_albumid"]
trackid = metadata["musicbrainz_trackid"]
if trackid:
# Only lookup via MB IDs if matched to a DataObject; otherwise ignore and use metadata details
if isinstance(item, Track) and trackid:
lookup.trackLookup(trackid)
elif albumid:
elif isinstance(item, Album) and albumid:
lookup.albumLookup(albumid)
else:
lookup.tagLookup(metadata["artist"], metadata["album"],
metadata["title"], metadata["tracknumber"],
str(metadata.length),
metadata["~filename"], metadata["musicip_puid"])
lookup.tagLookup(
metadata["albumartist"] if item.is_album_like() else metadata["artist"],
metadata["album"],
metadata["title"],
metadata["tracknumber"],
'' if item.is_album_like() else str(metadata.length),
item.filename if isinstance(item, File) else '',
metadata["musicip_puid"])
def get_files_from_objects(self, objects, save=False):
"""Return list of files from list of albums, clusters, tracks or files."""

View File

@@ -48,3 +48,6 @@ class Item(object):
def can_browser_lookup(self):
return True
def is_album_like(self):
return False

View File

@@ -232,6 +232,8 @@ class BaseTreeView(QtGui.QTreeWidget):
if isinstance(obj, NonAlbumTrack):
menu.addAction(self.window.refresh_action)
elif isinstance(obj, Cluster):
menu.addAction(self.window.browser_lookup_action)
menu.addSeparator()
menu.addAction(self.window.autotag_action)
menu.addAction(self.window.analyze_action)
if isinstance(obj, UnmatchedFiles):

View File

@@ -309,8 +309,8 @@ class MainWindow(QtGui.QMainWindow):
self.remove_action.setEnabled(False)
self.connect(self.remove_action, QtCore.SIGNAL("triggered()"), self.remove)
self.browser_lookup_action = QtGui.QAction(icontheme.lookup('lookup-musicbrainz'), _(u"Lookup in Browser"), self)
self.browser_lookup_action.setStatusTip(_(u"Lookup selected item on MusicBrainz"))
self.browser_lookup_action = QtGui.QAction(icontheme.lookup('lookup-musicbrainz'), _(u"Lookup in &Browser"), self)
self.browser_lookup_action.setStatusTip(_(u"Lookup selected item on MusicBrainz website"))
self.browser_lookup_action.setEnabled(False)
self.browser_lookup_action.triggered.connect(self.browser_lookup)
@@ -450,6 +450,7 @@ class MainWindow(QtGui.QMainWindow):
menu.addAction(self.autotag_action)
menu.addAction(self.analyze_action)
menu.addAction(self.cluster_action)
menu.addAction(self.browser_lookup_action)
menu.addSeparator()
menu.addAction(self.tags_from_filenames_action)
self.menuBar().addSeparator()
@@ -675,7 +676,7 @@ been merged with that of single artist albums."""),
self.tagger.refresh(self.selected_objects)
def browser_lookup(self):
self.tagger.lookup(self.selected_objects[0].metadata)
self.tagger.browser_lookup(self.selected_objects[0])
def update_actions(self):
can_remove = False