def OnOpen(self, event): # get a valid path from user dirDialog = wx.DirDialog(self, "Choose a directory for open:", \ style=wx.DD_DEFAULT_STYLE) if platform.system() == 'Windows': dirDialog.SetPath('D:\\Projects\\treeseal-example') # TESTING else: dirDialog.SetPath('/home/phil/Projects/treeseal-example') # TESTING if dirDialog.ShowModal() == wx.ID_OK: self.UpdateRootDir(dirDialog.GetPath()) else: self.UpdateRootDir(None) return # check pre-conditions if not os.path.exists(self.metaDir): wx.MessageBox('Path "' + self.rootDir + '" is no valid root dir.', \ 'Error', wx.OK | wx.ICON_ERROR) self.UpdateRootDir(None) return if not os.path.exists(self.dbFile): wx.MessageBox('Cannot find database file "' + self.dbFile + '".', \ 'Error', wx.OK | wx.ICON_ERROR) self.UpdateRootDir(None) return if not os.path.exists(self.sigFile): dial = wx.MessageBox('Cannot find database signature file "' + self.sigFile + '".\n\nUse database without verification?', \ 'Warning', wx.YES_NO | wx.ICON_WARNING | wx.NO_DEFAULT) if not dial == wx.YES: self.UpdateRootDir(None) return else: cs = Checksum() cs.calculateForFile(self.dbFile) if not cs.isValidUsingSavedFile(self.sigFile): dial = wx.MessageBox('Database or database signature file have been corrupted.\n\nUse database without verification?', \ 'Warning', wx.YES_NO | wx.ICON_WARNING | wx.NO_DEFAULT) if not dial == wx.YES: self.UpdateRootDir(None) return # close eventually existing previous instance self.list.ClearInstance() self.SetStatusBarText() # load preferences or create default ones self.preferences = Preferences() if os.path.exists(self.preferencesFile): self.preferences.load(self.preferencesFile) else: self.preferences.save(self.preferencesFile)
def close(self): if self.isOpen(): self.dbClose() cs = Checksum() cs.calculateForFile(self.__databaseFile) cs.saveToFile(self.__signatureFile)