def setItem(self, item): assert item.backend == 'gdalbackend' self.graphicsview.setUpdatesEnabled(False) try: self.reset() try: level = gdalsupport.ovrLevelForSize(item, self.OVRMAXSIZE) # @NOTE: use GREATER for overview level to ensure an overview # size smaller than OVRMAXSIZE ovrindex = gdalsupport.ovrBestIndex(item, level, 'GREATER') except gdalsupport.MissingOvrError: logging.info('no overview available or available overviews ' 'are too large') return scene = item.scene self.graphicsview.setScene(scene) self.graphicsview.setSceneRect(scene.sceneRect()) if not self.graphicsview.autoscale: ovrlevel = gdalsupport.ovrLevels(item)[ovrindex] matrix = QtCore.QMatirx(ovrlevel, 0, 0, ovrlevel, 0, 0) self.graphicsview.setMatrix(matrix) else: self.graphicsview.fitInView() self.updateMainViewBox() finally: self.graphicsview.setUpdatesEnabled(True) self.graphicsview.update()