import wx, os, sys import Tribler.Core.Widgets.widgets as widgets from Tribler.Core.simpledefs import * from Tribler.Core.Session import Session from Tribler.Core.CacheDB.CacheDBHandler import TorrentDBHandler, Notifier from Tribler.Main.Dialogs.GUITaskQueue import GUITaskQueue widget_name = "mywidget" class mywidget(widgets.tribler_widget): __name__ = "Library" __author__ = "A.M. van den Berg" __version__ = "0.1" __widgetid__ = "7fb6a49e-72db-4782-bbe4-a9e3570a4c57" width = 300 height = 200 def __init__(self, *args, **kw): widgets.tribler_widget.__init__(self, *args, **kw) self.session = Session.get_instance() self.firstTime = True self.torrentList = wx.ListCtrl(self, -1, (0,0),(self.width, self.height), wx.LC_REPORT) self.torrentList.InsertColumn(0, 'Download') self.torrentList.InsertColumn(1, 'Completed') self.torrentList.InsertColumn(2, 'DL') self.torrentList.InsertColumn(3, 'UL') self.torrentList.SetColumnWidth(0, 150) self.torrentList.SetColumnWidth(1, 50) self.torrentList.SetColumnWidth(2, 50) self.torrentList.SetColumnWidth(3, 50) self.session.set_download_states_callback(self.OnDownloadChange) def OnDownloadChange(self, downloadStates): " Called when download changes" self.torrentList.DeleteAllItems() j = 0 for state in downloadStates: name = state.get_download().get_def().get_name() self.torrentList.InsertStringItem(j, name) self.torrentList.SetStringItem(j, 1, str(int(state.get_progress() * 100))) self.torrentList.SetStringItem(j, 2, str(round(state.get_current_speed(DOWNLOAD),1))) self.torrentList.SetStringItem(j, 3, str(round(state.get_current_speed(UPLOAD),1))) j += 1 return (5.0, False)