home *** CD-ROM | disk | FTP | other *** search
/ com!online 2005 April / com_0405_1.iso / opensource / BTpp-0.5.4-bin.exe / $INSTDIR / BT++.exe / TabTrans / GridTable.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2003-04-19  |  6.7 KB  |  196 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.2)
  3.  
  4. from os import path, rename
  5. from time import sleep
  6. from wxPython.wx import *
  7. from TabLog.LogWindow import Log
  8. from LoaderManager import LoaderManager
  9. from ConfigFile import Config
  10. import Renderer
  11. from Managers import ManagerDown, ManagerUp
  12.  
  13. class GridTable:
  14.     Sizes = {
  15.         'ColLabel': 18,
  16.         'RowLabel': 25,
  17.         'RowsDef': 22,
  18.         'ColsDef': 50,
  19.         'Rows': { },
  20.         'Cols': { } }
  21.     Renderers = {
  22.         'Default': Renderer.Default(),
  23.         'Rows': { },
  24.         'Cols': {
  25.             4: Renderer.ProgressBar() } }
  26.     
  27.     def __init__(self, grid):
  28.         self.Grid = grid
  29.         self.Manager = ManagerDown
  30.         self.Manager.Refresh = self.Refresh
  31.         self.Manager.Log = Log
  32.         self.Manager.Finish = self.MoveToHistory
  33.  
  34.     
  35.     def Update(self):
  36.         self.Manager.Update()
  37.  
  38.     
  39.     def GetNumberRows(self):
  40.         return self.Manager.GetNumLoaders()
  41.  
  42.     
  43.     def GetNumberCols(self):
  44.         return 8
  45.  
  46.     
  47.     def GetColLabelSize(self):
  48.         return self.Sizes['ColLabel']
  49.  
  50.     
  51.     def GetRowLabelSize(self):
  52.         return self.Sizes['RowLabel']
  53.  
  54.     
  55.     def GetColSize(self, col):
  56.         if self.Sizes['Cols'].has_key(col):
  57.             return self.Sizes['Cols'][col]
  58.         else:
  59.             return self.Sizes['ColsDef']
  60.  
  61.     
  62.     def SetColSize(self, col, size):
  63.         self.Sizes['Cols'][col] = size
  64.  
  65.     
  66.     def GetRowSize(self, row):
  67.         if self.Sizes['Rows'].has_key(row):
  68.             return self.Sizes['Rows'][row]
  69.         else:
  70.             return self.Sizes['RowsDef']
  71.  
  72.     
  73.     def GetColLabelValue(self, col):
  74.         if col == 0:
  75.             return 'Filename'
  76.         
  77.         if col == 1:
  78.             return 'Size'
  79.         
  80.         if col == 2:
  81.             return 'Transfered'
  82.         
  83.         if col == 3:
  84.             return 'Speed'
  85.         
  86.         if col == 4:
  87.             return 'Progress'
  88.         
  89.         if col == 5:
  90.             return 'Status'
  91.         
  92.         if col == 6:
  93.             return 'Remaining'
  94.         
  95.         if col == 7:
  96.             return 'Time Remaining'
  97.         
  98.  
  99.     
  100.     def GetCellRenderer(self, row, col):
  101.         if self.Renderers['Cols'].has_key(col):
  102.             return self.Renderers['Cols'][col]
  103.         elif self.Renderers['Rows'].has_key(row):
  104.             return self.Renderers['Rowss'][row]
  105.         else:
  106.             return self.Renderers['Default']
  107.  
  108.     
  109.     def GetValue(self, row, col):
  110.         
  111.         def info(name):
  112.             return self.Manager.GetInfo(row, name)
  113.  
  114.         if col == 0:
  115.             return info('File')
  116.         
  117.         if col == 1:
  118.             return '%.2f MB' % float(info('Size')) / 1024 / 1024
  119.         
  120.         if col == 2:
  121.             if info('FractionDone') == -1.0 and info('Status') == 'Hashing' or info('Status') == 'Allocating':
  122.                 return '?'
  123.             else:
  124.                 return '%.2f MB' % float(info('FractionDone')) * float(info('Size')) / 1024 / 1024
  125.         
  126.         if col == 3:
  127.             return '%.1f / %.1f' % (float(info('SpeedDown')), float(info('SpeedUp')))
  128.         
  129.         if col == 4:
  130.             return info('FractionDone')
  131.         
  132.         if col == 5:
  133.             return info('Status')
  134.         
  135.         if col == 6:
  136.             if info('FractionDone') == -1.0 and info('Status') == 'Hashing' or info('Status') == 'Allocating':
  137.                 return '?'
  138.             else:
  139.                 return '%.1f%% [%.2f MB]' % (float(info('FractionRemain')) * 100, float(info('FractionRemain')) * float(info('Size')) / 1024 / 1024)
  140.         
  141.         if col == 7:
  142.             return info('ETA')
  143.         
  144.  
  145.     
  146.     def MoveToHistory(self, loader):
  147.         loader.PauseDownload()
  148.         loader.Hashed = true
  149.         loader.Finished = true
  150.         loader.UpdateStatus(fractionDone = 1, timeEst = 0, downRate = 0, upRate = 0, activity = 'Done')
  151.         if loader.Obj.has_key('Storage') and loader.Obj['Storage'] != None:
  152.             loader.Obj['Storage'].close()
  153.             del loader.Obj['Storage']
  154.         
  155.         if loader.Obj.has_key('StorageWrapper') and loader.Obj['StorageWrapper'] != None:
  156.             del loader.Obj['StorageWrapper']
  157.         
  158.         if loader.Config['DirTorFinish'] != '':
  159.             
  160.             try:
  161.                 rename(loader.Config['TorFull'], path.join(loader.Config['DirTorFinish'], loader.Config['Tor']))
  162.                 loader.OnInfo('Download complete.')
  163.             except:
  164.                 loader.OnError('Could not move torrent.')
  165.  
  166.         
  167.         if loader.Config['DirFilFinish'] != '':
  168.             
  169.             try:
  170.                 rename(loader.Config['Filename'], path.join(loader.Config['DirFilFinish'], loader.Config['File']))
  171.             except:
  172.                 loader.OnError('Could not move downloaded file.')
  173.  
  174.         
  175.         new = ManagerUp.CreateNewLoader(loader.Config['Tor'])
  176.         if new == None:
  177.             return None
  178.         
  179.         if Config.Get('Download', 'KeepUpload'):
  180.             new.StartDownload()
  181.         
  182.  
  183.     
  184.     def Destroy(self, evt = wxCloseEvent()):
  185.         self.Manager.Destroy()
  186.  
  187.     
  188.     def Refresh(self):
  189.         self.Grid.Refresh()
  190.  
  191.     
  192.     def AdjustScrollbars(self):
  193.         self.Grid.AdjustScrollbars()
  194.  
  195.  
  196.