Skip to content

Commit

Permalink
Support for "action" plugins.
Browse files Browse the repository at this point in the history
  • Loading branch information
lalinsky committed May 20, 2007
1 parent 81e09da commit ce8c21f
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 12 deletions.
2 changes: 1 addition & 1 deletion picard/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def __get_name(self):
try:
return self.module.PLUGIN_NAME
except AttributeError:
return self.module.name
return self.module.__name__
name = property(__get_name)

def __get_author(self):
Expand Down
67 changes: 56 additions & 11 deletions picard/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Resource object code
#
# Created: So mar 3 19:01:34 2007
# Created: Ne m�j 20 13:59:28 2007
# by: The Resource Compiler for PyQt (Qt v4.2.2)
#
# WARNING! All changes made in this file will be lost!
Expand Down Expand Up @@ -1337,6 +1337,45 @@
\xe1\x25\x76\x6c\x6c\xcc\x00\x04\xe1\x89\x27\x1f\xdf\x13\x08\xf8\
\xcf\xf0\x3f\x62\x6c\x6c\x7c\xfb\xdf\xe7\x60\x9f\x53\x70\x22\xd1\
\x6a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x02\x4c\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\
\x0b\x13\x01\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
\xd6\x01\x05\x0d\x20\x02\x71\x5f\x5a\xcd\x00\x00\x00\x1d\x74\x45\
\x58\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x00\x43\x72\x65\x61\x74\x65\
\x64\x20\x77\x69\x74\x68\x20\x54\x68\x65\x20\x47\x49\x4d\x50\xef\
\x64\x25\x6e\x00\x00\x01\xb0\x49\x44\x41\x54\x38\xcb\xc5\x93\xc1\
\x4a\x1b\x51\x14\x86\xbf\x58\xb1\x4e\x92\x96\x8e\xd1\x04\x6d\x25\
\xa5\x30\x12\x90\x80\x82\x08\x03\xc5\xa2\xd0\x40\xe9\x32\x96\x3a\
\x4f\xd0\x17\x28\xa4\xf4\x01\xa4\x79\x91\x8e\x21\xe4\x01\x3a\x82\
\x81\xd9\x04\x5c\xb8\xc9\x26\x38\x82\x19\xb1\x8b\x99\x26\x8c\x2d\
\x33\xde\x28\x2d\x76\xd1\xce\x74\x62\x4d\x37\x2e\x7a\x56\xe7\xde\
\x73\xf9\x39\xe7\x3f\xdf\x85\x5b\x46\x62\x54\xe1\xf9\xfb\xbd\xab\
\x30\xdf\xdd\xde\x18\xf9\x6e\x3c\x4c\xd4\x57\xef\xb6\xd2\x4a\x49\
\x07\xf0\x2d\x43\x03\xa8\x94\x15\xaa\x0d\x6b\xa8\x76\x5d\x2c\x12\
\x48\x2b\x25\xbd\x52\x56\xd8\x3f\xf4\x68\x52\xd2\xf3\x59\x09\xfb\
\x8b\x20\x9f\x95\xb0\x29\xe9\xeb\xc5\x69\x56\x17\x64\x60\xef\x2a\
\x2e\x32\x1e\x57\xdb\x3f\xf4\xc8\xc9\x93\x6c\xad\x3d\x8a\xee\xd4\
\x42\x06\xb5\xf0\xa7\x7e\x3d\xc6\xc2\xc4\xb7\x0c\xad\xd9\xee\x01\
\x70\xec\x04\xd4\xcc\x6e\xf0\xe9\xc0\xa1\x66\x76\x83\xcf\x7d\x01\
\x40\xb3\xdd\x8b\xc6\x1b\x32\x31\x34\x2c\x9f\x95\x50\x0b\x19\x6a\
\x66\x37\xf8\xfe\xf5\xc4\x10\xee\x51\x7d\xe2\x7e\x6e\x2d\x39\xbb\
\xf8\x7a\xf3\xe9\x63\xb9\xd5\xe9\x63\xbb\x62\xc8\xd8\xa8\x83\x4a\
\x59\x41\x2d\x64\x00\x78\x90\x96\x52\xc2\x3d\xaa\xb7\xea\x1f\xf4\
\xcb\x6f\x8e\x79\x2f\x29\xc9\xe1\x38\x95\xb2\x72\xf3\x16\xaa\x0d\
\x2b\xea\xe0\xfc\xe2\xf2\x62\xbe\xf8\xec\x2d\x40\x72\xae\xf8\xe6\
\xcc\x17\x01\x90\x6a\x75\xfa\xec\x98\xe2\x6f\x0f\x76\xb7\x37\x12\
\xbe\x65\x68\xb6\x2b\xc8\xcf\x48\x2c\x3d\x99\xba\x7b\xfe\x63\x62\
\x71\x7e\xf9\xe5\xc7\x3b\xa9\x99\x95\x17\x2b\x0f\x53\x00\xb6\x2b\
\xf0\x2d\x43\x8b\x6f\x21\x11\x07\x67\xbd\x38\x4d\x4e\x9e\x1c\x49\
\x9d\xe3\x0d\x68\xb6\x7b\x43\x2c\x8c\xc5\x1f\xac\x2e\xc8\x38\xde\
\x80\x1d\xf3\x94\x56\xa7\x0f\xc0\xaf\xb6\x4f\x71\xbc\xc1\x6f\x0e\
\xfe\x81\x72\xb8\x0d\xdf\x32\xb4\x10\xac\x6a\xc3\x8a\xce\x37\x91\
\x78\xeb\xbf\xf0\xff\xe3\x27\x7e\x4f\xb4\x84\x11\xee\x2e\x39\x00\
\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x02\x19\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
Expand Down Expand Up @@ -1872,6 +1911,11 @@
\x00\x64\
\x00\x6f\x00\x63\x00\x75\x00\x6d\x00\x65\x00\x6e\x00\x74\x00\x2d\x00\x73\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
\
\x00\x17\
\x0d\x58\x3e\xe7\
\x00\x61\
\x00\x70\x00\x70\x00\x6c\x00\x69\x00\x63\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\x00\x2d\x00\x73\x00\x79\x00\x73\x00\x74\
\x00\x65\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x10\
\x0f\xcb\x90\x67\
\x00\x64\
Expand All @@ -1894,7 +1938,7 @@
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x02\
\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x02\x5c\
\x00\x00\x00\x32\x00\x02\x00\x00\x00\x09\x00\x00\x00\x1c\
\x00\x00\x00\x32\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x1c\
\x00\x00\x00\x58\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x10\
\x00\x00\x00\x12\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x20\x54\
Expand All @@ -1919,15 +1963,16 @@
\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x2e\x8b\
\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x43\x44\
\x00\x00\x03\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x12\
\x00\x00\x02\x48\x00\x00\x00\x00\x00\x01\x00\x00\x57\x6d\
\x00\x00\x01\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x4f\x94\
\x00\x00\x02\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x0a\
\x00\x00\x03\xac\x00\x00\x00\x00\x00\x01\x00\x00\x54\x42\
\x00\x00\x03\xec\x00\x00\x00\x00\x00\x01\x00\x00\x64\x8e\
\x00\x00\x02\x70\x00\x00\x00\x00\x00\x01\x00\x00\x5b\x14\
\x00\x00\x03\xca\x00\x00\x00\x00\x00\x01\x00\x00\x5e\xc6\
\x00\x00\x03\x86\x00\x00\x00\x00\x00\x01\x00\x00\x51\xb1\
\x00\x00\x03\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x60\xfb\
\x00\x00\x02\x48\x00\x00\x00\x00\x00\x01\x00\x00\x59\xbd\
\x00\x00\x01\xf2\x00\x00\x00\x00\x00\x01\x00\x00\x51\xe4\
\x00\x00\x02\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x5a\
\x00\x00\x03\xe0\x00\x00\x00\x00\x00\x01\x00\x00\x56\x92\
\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x00\x66\xde\
\x00\x00\x02\x70\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x64\
\x00\x00\x03\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x61\x16\
\x00\x00\x03\x86\x00\x00\x00\x00\x00\x01\x00\x00\x4f\x94\
\x00\x00\x03\xba\x00\x00\x00\x00\x00\x01\x00\x00\x54\x01\
\x00\x00\x03\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x63\x4b\
"

def qInitResources():
Expand Down
38 changes: 38 additions & 0 deletions picard/ui/itemviews.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,32 @@
from picard.track import Track
from picard.util import encode_filename, icontheme
from picard.config import Option, TextOption
from picard.plugin import ExtensionPoint


class BaseAction(QtGui.QAction):
NAME = "Unknown"

def __init__(self):
QtGui.QAction.__init__(self, self.NAME, None)
self.connect(self, QtCore.SIGNAL("triggered()"), self.__callback)

def __callback(self):
objs = self.tagger.window.panel.selected_objects()
self.callback(objs)

def callback(self, objs):
raise NotImplementedError


_album_actions = ExtensionPoint()
_cluster_actions = ExtensionPoint()

def register_album_action(action):
_album_actions.register(action.__module__, action)

def register_cluster_action(action):
_cluster_actions.register(action.__module__, action)


def get_match_color(similarity):
Expand Down Expand Up @@ -88,6 +114,7 @@ def create_icons(self):
self.icon_note = QtGui.QIcon(":/images/note.png")
self.icon_error = icontheme.lookup('dialog-error', icontheme.ICON_SIZE_MENU)
self.icon_saved = QtGui.QIcon(":/images/track-saved.png")
self.icon_plugins = icontheme.lookup('applications-system', icontheme.ICON_SIZE_MENU)

def selected_objects(self):
items = self.views[self._selected_view].selectedItems()
Expand Down Expand Up @@ -223,19 +250,30 @@ def contextMenuEvent(self, event):
return
obj = self.panel.object_from_item(item)

plugin_actions = None
menu = QtGui.QMenu(self)
if isinstance(obj, Track):
menu.addAction(self.window.edit_tags_action)
elif isinstance(obj, Cluster):
menu.addAction(self.window.analyze_action)
plugin_actions = _cluster_actions
elif isinstance(obj, File):
menu.addAction(self.window.edit_tags_action)
menu.addAction(self.window.analyze_action)
elif isinstance(obj, Album):
menu.addAction(self.window.refresh_action)
plugin_actions = _album_actions

menu.addAction(self.window.save_action)
menu.addAction(self.window.remove_action)

if plugin_actions is not None:
plugin_menu = QtGui.QMenu(_("&Plugins"), menu)
plugin_menu.addActions(list(plugin_actions))
plugin_menu.setIcon(self.panel.icon_plugins)
menu.addSeparator()
menu.addMenu(plugin_menu)

menu.exec_(event.globalPos())
event.accept()

Expand Down
1 change: 1 addition & 0 deletions resources/picard.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,6 @@
<file>images/22x22/document-save.png</file>
<file>images/16x16/view-refresh.png</file>
<file>images/22x22/picard-cluster.png</file>
<file>images/16x16/applications-system.png</file>
</qresource>
</RCC>

0 comments on commit ce8c21f

Please sign in to comment.