Ejemplo n.º 1
0
	def __init__(self, parent, title):
		self.dirname=''
		# A "-1" in the size parameter instructs wxWidgets to use the default size.
		# In this case, we select 200px width and the default height.
		wx.Frame.__init__(self, parent, title=title, size=(800,600))
		
		#setup drag and drop. It fires when someone drags a file onto the main window
		#and calls the method "addFiles"
		wx.FileDropTarget.__init__(self)
		self.SetDropTarget(self)
		
		self.log = logging.getLogger('.'.join((config.GUI_LOG_NAME, "MainView")))
		self.Bind(wx.EVT_CLOSE, self.OnClose)

		#Our main view objects
		self.fileMenu = FileMenu()
		self.fileMenu.Bind(wx.EVT_MENU, self.addFile, self.fileMenu.add)
		self.fileMenu.Bind(wx.EVT_MENU, self.removeFiles, self.fileMenu.remove)
		self.fileMenu.Bind(wx.EVT_MENU, self.About, self.fileMenu.about)
		self.fileMenu.Bind(wx.EVT_MENU, self.OnClose, self.fileMenu.quit)
		self.fileMenu.Bind(wx.EVT_MENU, self.viewFiles, self.fileMenu.viewFile)
		self.fileMenu.Bind(wx.EVT_MENU, self.deleteFiles, self.fileMenu.delete)
		self.fileMenu.Bind(wx.EVT_MENU, self.fileFormatFullName, self.fileMenu.fullName)
		self.fileMenu.Bind(wx.EVT_MENU, self.fileFormatShortName, self.fileMenu.shortName)
		self.fileMenu.Bind(wx.EVT_MENU, self.fileFormatBaseName, self.fileMenu.baseName)
		self.SetMenuBar(self.fileMenu)
		self.toolbar = Toolbar(self)
		self.toolbar.Bind(wx.EVT_TOOL, self.addFile, self.toolbar.add)
		self.toolbar.Bind(wx.EVT_TOOL, self.removeFiles, self.toolbar.remove)
		self.toolbar.Bind(wx.EVT_TOOL, self.viewFiles, self.toolbar.view)
		self.toolbar.Bind(wx.EVT_TOOL, self.deleteFiles, self.toolbar.delete)
		self.updatePanel = updatePanel.UpdatePanel(self)
		
		self.mainSplitter = wx.SplitterWindow(self, -1, style=wx.SP_3DSASH, size=(300,300))
		self.directoryView = DirectoryView(self.mainSplitter)
		self.directoryView.Bind(wx.EVT_LIST_ITEM_SELECTED, self.dirsSelected, self.directoryView.dirs)
		self.directoryView.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.dirsDeselected, self.directoryView.dirs)
		
		#Added later by controller. The main view should never need this, except to add
		#it to the wx components. 
		self.dupView = None
	
		
		##PUT MAIN GUI TOGETHER
		self.sizer = wx.BoxSizer(wx.VERTICAL)
		paddingPanel = wx.Panel(self, size=(0,20))
		self.sizer.Add(paddingPanel, 0)
		self.sizer.Add(self.mainSplitter, 1, wx.EXPAND)
		self.sizer.Add(self.updatePanel, 0, wx.EXPAND | wx.ALL, 10)
		# self.sizer.Add(self.progressPanel, 0, wx.EXPAND | wx.ALL)
		# #Layout sizers
		self.SetSizer(self.sizer)
		self.SetAutoLayout(1)
		self.Show()
		
		#STATUS BAR & TIMERS
		self.statusBar = self.CreateStatusBar() # A Statusbar in the bottom of the window
		self.statusBar.SetStatusText("Welcome to the Uniquity File Scanner!")
		self.STATUS_TIMER_ID = 0
		
		self.UPDATE_INTERVAL = config.GUI_UPDATE_INTERVAL
		self.UPDATE_TIMER_ID = 1
		self.updateTimer = wx.Timer(self, self.UPDATE_TIMER_ID) 
		wx.EVT_TIMER(self, self.UPDATE_TIMER_ID, self.timerUpdate)  # call the on_timer function
		self.updateTimer.Start(self.UPDATE_INTERVAL)
		self.duplicateFiles = 0