#!/usr/bin/python ######################################################################### # # Spinners to control and display information # ######################################################################### import sys import os import wx import threading from traceback import print_stack from ABC.GUI.spinner import ABCSpinner from Utility.constants import * #IGNORE:W0611 class NumSimSpinner(ABCSpinner): def __init__(self, parent): label = 'tb_maxsim' ABCSpinner.__init__(self, parent, label) self.changeSpinner() def changeSpinner(self, event = None): if threading.currentThread().getName() != "MainThread": print "spinners: NOT MAIN THREAD" print_stack() if event is None: self.spinner.SetValue(self.utility.config.Read('numsimdownload', "int")) self.updateCounter() return currentval = self.utility.config.Read('numsimdownload') newval = self.enforceMinMax() if currentval != newval: self.utility.config.Write('numsimdownload', newval) self.utility.config.Flush() if event is not None: self.utility.queue.updateAndInvoke() def updateCounter(self, event = None): if threading.currentThread().getName() != "MainThread": print "spinners: NOT MAIN THREAD" print_stack() proccount = self.utility.queue.getProcCount() self.current.SetLabel(str(proccount)) #class DownSpinner(ABCSpinner): # def __init__(self, parent): # # TODO: needs real label # label = 'tb_urm' # unitlabel = self.utility.lang.get('KB') + "/" + self.utility.lang.get('l_second') # # ABCSpinner.__init__(self, parent, label, unitlabel) # # self.changeSpinner() # # def changeSpinner(self): # if event is None: # self.spinner.SetRange(0, 9999) # self.spinner.SetValue(self.utility.queue.ratemanager.MaxRate("down")) # self.current.SetLabel(str(self.utility.queue.totals_kb['down'])) # return #class UpSpinner(ABCSpinner): # def __init__(self, parent): # # TODO: needs real label # label = 'tb_urm' # unitlabel = self.utility.lang.get('KB') + "/" + self.utility.lang.get('l_second') # # ABCSpinner.__init__(self, parent, label, unitlabel) # # self.changeSpinner() # # def changeSpinner(self, event = None): # if event is None: # self.spinner.SetRange(0, 9999) # self.spinner.SetValue(self.utility.queue.ratemanager.MaxRate("up")) # self.current.SetLabel(str(self.utility.queue.totals_kb['up'])) # return # # # Check which upload value we're using # # (seeding or downloading)