class _LiveImagePlug(QubStdData2ImagePlug) : def __init__(self,cnt) : QubStdData2ImagePlug.__init__(self) self.__image = QubMosaicImage(motX = 0,motY = 0) self.__image.setLayer(4096) self.__cnt = cnt self.__imageAlreadySend = False def setImage(self,imagezoomed,fullimage) : self.__image.setImage(fullimage) return False def show(self) : self.__image.show() def hide(self) : self.__image.hide() def addImage(self) : if not self.__imageAlreadySend: self.__cnt.mosaicView.addImage(self.__image) self.__imageAlreadySend = True def setPixelCalibration(self,xSize,ySize) : self.__image.setCalibration(xSize,ySize) def setBeamPosition(self,x,y) : if x and y : self.__image.setRefPos(x,y) def move(self,x,y) : self.__image.move(x,y) def setHMotorPosition(self,position) : _,vPos = self.__image.position() self.__image.move(position,vPos) def setVMotorPosition(self,position) : hPos,_ = self.__image.position() self.__image.move(hPos,position)
class _LiveImagePlug(QubStdData2ImagePlug): def __init__(self, cnt): QubStdData2ImagePlug.__init__(self) self.__image = QubMosaicImage(motX=0, motY=0) self.__image.setLayer(4096) self.__cnt = cnt self.__imageAlreadySend = False def setImage(self, imagezoomed, fullimage): self.__image.setImage(fullimage) return False def show(self): self.__image.show() def hide(self): self.__image.hide() def addImage(self): if not self.__imageAlreadySend: self.__cnt.mosaicView.addImage(self.__image) self.__imageAlreadySend = True def setPixelCalibration(self, xSize, ySize): self.__image.setCalibration(xSize, ySize) def setBeamPosition(self, x, y): if x and y: self.__image.setRefPos(x, y) def move(self, x, y): self.__image.move(x, y) def setHMotorPosition(self, position): _, vPos = self.__image.position() self.__image.move(position, vPos) def setVMotorPosition(self, position): hPos, _ = self.__image.position() self.__image.move(hPos, position)
class _CheckItem(qt.QCheckListItem): def __init__(self,parent,name,cnt,image = None, beamPos = None,calib = None, hMotor = None,vMotor = None,motorList = None,masterPosition = None, focusMotorPosition = None) : try: lastItem = parent.lastItem() except AttributeError: firstChild = parent.firstChild() if firstChild: childCount = parent.childCount() lastItem = firstChild try: for i in range(1,childCount) : lastItem = lastItem.itemBelow() except AttributeError: lastItem = None else: lastItem = None if isinstance(name,_SavePickleItem) : if lastItem: qt.QCheckListItem.__init__(self,parent,lastItem,name.textcolumn[0],qt.QCheckListItem.CheckBox) else: qt.QCheckListItem.__init__(self,parent,name.textcolumn[0],qt.QCheckListItem.CheckBox) saveItem = name self.__image = saveItem.image for i,text in enumerate(saveItem.textcolumn): self.setText(i,text) self.__masterPosition = masterPosition try: self.focusMotorPosition = saveItem.focusMotorPosition except AttributeError: # compatibility with old save mosaic self.focusMotorPosition = None self.__layer = saveItem.layer self.__cnt = cnt cnt.mosaicView.addImage(self.__image) # adding image to MosaicDisplay self.setState(saveItem.masterPosition and qt.QCheckListItem.On or qt.QCheckListItem.Off) self.setRenameEnabled(0,True) else: self.__image = QubMosaicImage(image,hMotor.getPosition(),vMotor.getPosition(),0) if lastItem: qt.QCheckListItem.__init__(self,parent,lastItem,name,qt.QCheckListItem.CheckBox) else: qt.QCheckListItem.__init__(self,parent,name,qt.QCheckListItem.CheckBox) icon = image.smoothScale(16,16,qt.QImage.ScaleMin) self.setPixmap(0,qt.QPixmap(icon)) try: self.__image.setRefPos(*beamPos) self.__image.setCalibration(*calib) except TypeError: logging.getLogger().error('You have to connect ChangeBeamPosition and ChangePixelCalibration slot') return for i,motor in enumerate(motorList) : self.setText(i + 1,'%f' % motor.getPosition()) self.__masterPosition = masterPosition self.focusMotorPosition = focusMotorPosition self.setRenameEnabled(0,True) self.__layer = 0 self.__cnt = cnt cnt.mosaicView.addImage(self.__image) # adding image to MosaicDisplay try: self.__state = parent.isSelected() and qt.QCheckListItem.On or qt.QCheckListItem.Off self.setState(self.__state) except TypeError: self.__state = qt.QCheckListItem.On self.setState(qt.QCheckListItem.On) self.__image.setImageId(id(self)) def getSavePickleObject(self) : return _SavePickleItem(self,self.__image,self.__layer, self.__state,self.__cnt,self.__masterPosition, self.focusMotorPosition) def layerUp(self) : self.__layer += 1 self.__image.setLayer(self.__layer) def layerDown(self) : self.__layer -= 1 self.__image.setLayer(self.__layer) def stateChange(self,flag) : self.__state = flag if flag: self.__image.show() else: self.__image.hide() def image(self) : return self.__image
class _CheckItem(qt.QCheckListItem): def __init__(self, parent, name, cnt, image=None, beamPos=None, calib=None, hMotor=None, vMotor=None, motorList=None, masterPosition=None, focusMotorPosition=None): try: lastItem = parent.lastItem() except AttributeError: firstChild = parent.firstChild() if firstChild: childCount = parent.childCount() lastItem = firstChild try: for i in range(1, childCount): lastItem = lastItem.itemBelow() except AttributeError: lastItem = None else: lastItem = None if isinstance(name, _SavePickleItem): if lastItem: qt.QCheckListItem.__init__(self, parent, lastItem, name.textcolumn[0], qt.QCheckListItem.CheckBox) else: qt.QCheckListItem.__init__(self, parent, name.textcolumn[0], qt.QCheckListItem.CheckBox) saveItem = name self.__image = saveItem.image for i, text in enumerate(saveItem.textcolumn): self.setText(i, text) self.__masterPosition = masterPosition try: self.focusMotorPosition = saveItem.focusMotorPosition except AttributeError: # compatibility with old save mosaic self.focusMotorPosition = None self.__layer = saveItem.layer self.__cnt = cnt cnt.mosaicView.addImage( self.__image) # adding image to MosaicDisplay self.setState(saveItem.masterPosition and qt.QCheckListItem.On or qt.QCheckListItem.Off) self.setRenameEnabled(0, True) else: self.__image = QubMosaicImage(image, hMotor.getPosition(), vMotor.getPosition(), 0) if lastItem: qt.QCheckListItem.__init__(self, parent, lastItem, name, qt.QCheckListItem.CheckBox) else: qt.QCheckListItem.__init__(self, parent, name, qt.QCheckListItem.CheckBox) icon = image.smoothScale(16, 16, qt.QImage.ScaleMin) self.setPixmap(0, qt.QPixmap(icon)) try: self.__image.setRefPos(*beamPos) self.__image.setCalibration(*calib) except TypeError: logging.getLogger().error( 'You have to connect ChangeBeamPosition and ChangePixelCalibration slot' ) return for i, motor in enumerate(motorList): self.setText(i + 1, '%f' % motor.getPosition()) self.__masterPosition = masterPosition self.focusMotorPosition = focusMotorPosition self.setRenameEnabled(0, True) self.__layer = 0 self.__cnt = cnt cnt.mosaicView.addImage( self.__image) # adding image to MosaicDisplay try: self.__state = parent.isSelected( ) and qt.QCheckListItem.On or qt.QCheckListItem.Off self.setState(self.__state) except TypeError: self.__state = qt.QCheckListItem.On self.setState(qt.QCheckListItem.On) self.__image.setImageId(id(self)) def getSavePickleObject(self): return _SavePickleItem(self, self.__image, self.__layer, self.__state, self.__cnt, self.__masterPosition, self.focusMotorPosition) def layerUp(self): self.__layer += 1 self.__image.setLayer(self.__layer) def layerDown(self): self.__layer -= 1 self.__image.setLayer(self.__layer) def stateChange(self, flag): self.__state = flag if flag: self.__image.show() else: self.__image.hide() def image(self): return self.__image