39
38
import pkg_resources # access plugin egg
40
39
from deluge.log import LOG as log
41
40
from deluge import component # for systray
43
41
import gtk, gobject
44
from deluge.ui.client import aclient
42
from deluge.ui.client import client
46
44
from deluge.configmanager import ConfigManager
47
45
config = ConfigManager("label.conf")
59
57
torrentmenu = component.get("MenuBar").torrentmenu
60
58
self.sub_menu.connect("show", self.on_show, None)
61
aclient.connect_on_new_core(self._on_new_core)
64
def _on_new_core(self, data = None):
67
60
def get_torrent_ids(self):
68
61
return component.get("TorrentView").get_selected_torrents()
71
63
def on_show(self, widget=None, data=None):
72
64
log.debug("label-on-show")
73
aclient.label_get_labels(self.cb_labels)
74
aclient.force_call(block=True)
65
client.label.get_labels().addCallback(self.cb_labels)
76
def cb_labels(self , labels):
67
def cb_labels(self, labels):
77
68
for child in self.sub_menu.get_children():
78
69
self.sub_menu.remove(child)
79
for label in [NO_LABEL] + labels:
70
for label in [NO_LABEL] + list(labels):
80
71
item = gtk.MenuItem(label.replace("_","__"))
81
72
item.connect("activate", self.on_select_label, label)
82
73
self.sub_menu.append(item)
85
def on_select_label(self, widget=None, label_id = None):
76
def on_select_label(self, widget=None, label_id=None):
86
77
log.debug("select label:%s,%s" % (label_id ,self.get_torrent_ids()) )
87
78
for torrent_id in self.get_torrent_ids():
88
aclient.label_set_torrent(None, torrent_id, label_id)
89
#aclient.force_call(block=True)
79
client.label.set_torrent(torrent_id, label_id)