Exemple #1
0
 def updateColor(self):
     """
     Update the color on the sampleModel
     modify to fit to the actual view
     
     """
     if not self.view.sampleTableView.selectedIndexes():#not self.acTree.selectedIndexes():
         return
     
     idx = self.view.sampleTableView.selectedIndexes()[0]
     sample = self.model.sample(idx.data().toString(), fullNameEntry=False)
     
     if sample is None:
         self.view.showErrorMessage('Error', 'Please choose only one file...')            
         return
     
     color = QColorDialog.getColor()
     if not color.isValid():
         return
         
     sample.color=color.getRgbF()[:-1]
     
     #make the gradient color here to
     color =QColor.fromRgbF(*(sample.color+(1.,)))
     colorr=QColor.fromRgbF(*(sample.color+(.5,)))
     gradient=QLinearGradient(-100, -100, 100, 100)
     gradient.setColorAt(0.7, colorr)
     gradient.setColorAt(1, color)
     
     #for m in (self.view.sampleModel, self.view.spectraModel, self.view.peakModel, 
     #          self.view.clusterModel):#self.view.chromaModel,
     for i in xrange(self.view.sampleModel.rowCount()):
         item=self.view.sampleModel.item(i,0)
         if item.text()== sample.shortName():
             item.setBackground(QBrush(gradient))
Exemple #2
0
	def onContentsChange(self, a, b, c):
		#print(a, b, c)

		try:
			tokens = self.tokenizer.tokenize(self.toPlainText())
		except tokenize.TokenError:
			return

		for tok in tokens:
			if tok.type == python_tokens['NAME']:
				for words, weight, color in TOKEN_CLASSES:
					if tok.string in words:
						cursor = self.select_token(tok)
						fmt = cursor.charFormat()
						fmt.setFontWeight(weight)
						fmt.setForeground(color)
						cursor.setCharFormat(fmt)
			elif tok.type == python_tokens['COMMENT']:
				cursor = self.select_token(tok)
				fmt = cursor.charFormat()
				fmt.setForeground(QColor.fromRgbF(0.0, 0.0, 0.9))
				cursor.setCharFormat(fmt)
			elif tok.type == python_tokens['STRING']:
				cursor = self.select_token(tok)
				fmt = cursor.charFormat()
				fmt.setForeground(QColor.fromRgbF(0.0, 0.0, 0.9))
				cursor.setCharFormat(fmt)
			elif tok.type in IGNORE_TOKENS:
				pass
			else:
				pass
Exemple #3
0
 def getColouredRootItem(sample):
     """stable, may be subdivised in sub routines """
     root = QStandardItem(sample.shortName())
     #root.setIcon(QIcon(QPixmap(os.path.normpath('gui/icons/formula.png'))))
     color =QColor.fromRgbF(sample.color[0],sample.color[1], sample.color[2],1.)
     colorr=QColor.fromRgbF(sample.color[0],sample.color[1], sample.color[2],.5)
     gradient=QLinearGradient(-100, -100, 100, 100)
     gradient.setColorAt(0.7, colorr);gradient.setColorAt(1, color)
     root.setBackground(QBrush(gradient))
     root.setEditable(False)
     root.setCheckState(Qt.Checked)
     root.setCheckable(True)
     return root
Exemple #4
0
	def __init__( self, *args ):
		super(ColorPickerWidget, self).__init__( *args )
		self.updating = False
		self.updatingAlpha = False
		self.ui = ColorPickerForm()
		self.ui.setupUi( self )

		self.setWindowFlags( Qt.Popup )

		self.preview     = ColorPreviewWidget( self.ui.containerPreview )
		self.hueSlider   = HueSliderWidget( self.ui.containerHueSlider )
		self.alphaSlider = AlphaSliderWidget( self.ui.containerAlphaSlider )

		self.colorPlane  = ColorPlaneWidget( self.ui.containerColorPlane )

		self.hueSlider   .valueChanged .connect( self.onHueChanged )
		self.alphaSlider .valueChanged .connect( self.onAlphaSliderChanged )
		self.colorPlane  .valueChanged .connect( self.onColorBaseChanged )

		self.ui.buttonOK      .clicked .connect( self.onButtonOK )
		self.ui.buttonCancel  .clicked .connect( self.onButtonCancel )
		self.ui.buttonCopyHEX .clicked .connect( self.onButtonCopyHEX )
		self.ui.buttonCopyRGB .clicked .connect( self.onButtonCopyRGBA )
		self.ui.buttonCopyHSV .clicked .connect( self.onButtonCopyHSV )

		self.ui.buttonScreenPick.clicked.connect( self.onButtonScreenPick )

		self.ui.numR.valueChanged.connect( self.onTextRGBChanged )
		self.ui.numG.valueChanged.connect( self.onTextRGBChanged )
		self.ui.numB.valueChanged.connect( self.onTextRGBChanged )

		self.ui.numH.valueChanged.connect( self.onTextHSVChanged )
		self.ui.numS.valueChanged.connect( self.onTextHSVChanged )
		self.ui.numV.valueChanged.connect( self.onTextHSVChanged )

		self.ui.textHex.textChanged.connect( self.onTextHexChanged )

		self.ui.numA.valueChanged.connect( self.onAlphaSliderChanged )

		self.originalColor = QColor.fromRgbF( 0.0, 0.0, 0.0 )
		self.currentColor  = QColor.fromRgbF( 1.0, 1.0, 0.0 )

		self.preview.setColor( self.currentColor )
		self.preview.setOriginalColor( self.originalColor )

		self.updateAlphaWidgets()
		self.updateTextWidgets()
		self.updateColorPlane()
Exemple #5
0
	def paintEvent( self, event ):
		painter = QtGui.QPainter()
		color = self.color
		painter.begin( self )
		margin = 2
		x = margin
		y = margin
		w = self.width() - margin * 2
		h = self.height() - margin * 2
		gridSize = 5
		gridPart = gridSize * 1
		painter.translate( margin, margin )
		painter.setPen( Qt.black )
		painter.setBrush( Qt.white )
		painter.drawRect( 0,0,w,h )
		painter.setPen( Qt.NoPen )
		painter.setBrush( QColor.fromRgbF( 0.5, 0.5, 0.5 ) )
		painter.setClipRect( 0,0,w,h )
		for y in range( int(h/gridSize+1) ):
				for x in range( int(w/gridSize+1) ):
					if (x % 2) == (y % 2):
						painter.drawRect( x * gridSize, y * gridSize, gridSize, gridSize )
		painter.setBrush( color )
		painter.drawRect( 0,0,w,h )
		colorFull = QColor( color )
		colorFull.setAlpha( 255 )
		painter.setBrush( colorFull )
		painter.drawRect( 0,0, w/2, h )
		painter.end()
    def basefinished(self):
        if self.basereply.error() != QNetworkReply.NoError:
            return
        self.basepixmap = QPixmap()
        self.basepixmap.loadFromData(self.basereply.readAll())
        if self.basepixmap.size() != self.rect.size():
            self.basepixmap = self.basepixmap.scaled(self.rect.size(),
                                                     Qt.KeepAspectRatio,
                                                     Qt.SmoothTransformation)
        self.setPixmap(self.basepixmap)

        # make marker pixmap
        self.mkpixmap = QPixmap(self.basepixmap.size())
        self.mkpixmap.fill(Qt.transparent)
        br = QBrush(QColor(Config.dimcolor))
        painter = QPainter()
        painter.begin(self.mkpixmap)
        painter.fillRect(0, 0, self.mkpixmap.width(), self.mkpixmap.height(),
                         br)
        for marker in self.radar['markers']:
            if 'visible' not in marker or marker['visible'] == 1:
                pt = getPoint(marker["location"], self.point, self.zoom,
                              self.rect.width(), self.rect.height())
                mk2 = QImage()
                mkfile = 'teardrop'
                if 'image' in marker:
                    mkfile = marker['image']
                if os.path.dirname(mkfile) == '':
                    mkfile = os.path.join('markers', mkfile)
                if os.path.splitext(mkfile)[1] == '':
                    mkfile += '.png'
                mk2.load(mkfile)
                if mk2.format != QImage.Format_ARGB32:
                    mk2 = mk2.convertToFormat(QImage.Format_ARGB32)
                mkh = 80  # self.rect.height() / 5
                if 'size' in marker:
                    if marker['size'] == 'small':
                        mkh = 64
                    if marker['size'] == 'mid':
                        mkh = 70
                    if marker['size'] == 'tiny':
                        mkh = 40
                if 'color' in marker:
                    c = QColor(marker['color'])
                    (cr, cg, cb, ca) = c.getRgbF()
                    for x in range(0, mk2.width()):
                        for y in range(0, mk2.height()):
                            (r, g, b,
                             a) = QColor.fromRgba(mk2.pixel(x, y)).getRgbF()
                            r = r * cr
                            g = g * cg
                            b = b * cb
                            mk2.setPixel(x, y,
                                         QColor.fromRgbF(r, g, b, a).rgba())
                mk2 = mk2.scaledToHeight(mkh, 1)
                painter.drawImage(pt.x - mkh / 2, pt.y - mkh / 2, mk2)

        painter.end()

        self.wmk.setPixmap(self.mkpixmap)
Exemple #7
0
 def getColouredRootItem(sample):
     """stable, may be subdivised in sub routines """
     root = QStandardItem(sample.shortName())
     #root.setIcon(QIcon(QPixmap(os.path.normpath('gui/icons/formula.png'))))
     color = QColor.fromRgbF(sample.color[0], sample.color[1],
                             sample.color[2], 1.)
     colorr = QColor.fromRgbF(sample.color[0], sample.color[1],
                              sample.color[2], .5)
     gradient = QLinearGradient(-100, -100, 100, 100)
     gradient.setColorAt(0.7, colorr)
     gradient.setColorAt(1, color)
     root.setBackground(QBrush(gradient))
     root.setEditable(False)
     root.setCheckState(Qt.Checked)
     root.setCheckable(True)
     return root
Exemple #8
0
	def paintEvent( self, event ):
		painter = QtGui.QPainter( self )
		painter.setPen( Qt.NoPen )
		w = self.width()
		h = self.height()
		painter.setBrush( self.originalColor )
		painter.drawRect( 0,   0, w, h/2    )
		cSolid = QColor( self.previewColor )
		cSolid.setAlphaF( 1 )
		#left 1/2 for solid color
		painter.setBrush( cSolid )
		painter.drawRect( 0, h/2, w/2, h/2 + 1 )
		#draw chekerGrid
		x0 = w/2
		y0 = h/2
		w2 = w/2
		h2 = h/2
		painter.setBrush( Qt.white )
		painter.drawRect( x0, y0, w2, h2 )
		painter.setBrush( QColor.fromRgbF( 0.5, 0.5, 0.5 ) )
		for y in range( 4 ):
			for x in range( w2/10 ):
				if (x % 2) == (y % 2):
					painter.drawRect( x0 + x * 10, y0 + y * 10, 10, 10 )

		#right 2/3 for color with alpha
		painter.setBrush( self.previewColor )
		painter.drawRect( x0, y0, w2+1, h2 + 1 )
Exemple #9
0
	def paintEvent( self, event ):
		painter = QtGui.QPainter( self )
		color = QColor.fromRgbF( 0, 0, 0 )
		# color.setAlphaF( 0.5 )
		painter.setPen( Qt.NoPen )
		painter.setBrush( color )
		painter.drawRect( event.rect() )
Exemple #10
0
	def onTextRGBChanged( self, value ):
		if self.updating: return
		r = self.ui.numR.value()
		g = self.ui.numG.value()
		b = self.ui.numB.value()
		color = QColor.fromRgbF( r,g,b )
		color.setAlphaF( self.currentColor.alphaF() )
		self.setColor( color )
		self.updateColorPlane()
Exemple #11
0
 def data(self, index, role):
     if index.column() == KTextEditor.CodeCompletionModel.Name:
         name, (r, g, b) = self.resultList[index.row()]
         if role == Qt.DisplayRole:
             return name
         elif role == KTextEditor.CodeCompletionModel.CustomHighlight:
             format = QTextFormat()
             color = QColor.fromRgbF(r, g, b)
             format.setBackground(QBrush(color))
             return [0, len(name), format]
     return super(ColorCompletions, self).data(index, role)
Exemple #12
0
 def paintEvent(self, ev):
     """
     IceAndFire = Colormap("IceAndFire",
                   (0.00, (0.0, 0.0, 1.0)),
                   (0.25, (0.0, 0.5, 1.0)),
                   (0.50, (1.0, 1.0, 1.0)),
                   (0.75, (1.0, 1.0, 0.0)),
                   (1.00, (1.0, 0.0, 0.0)))
     """
     painter = QPainter()
     painter.begin(self)
     g = QLinearGradient(0, 0, self.width(), self.height())
     g.setColorAt(0., QColor.fromRgbF(0.0, 0.0, 1.0))
     g.setColorAt(0.25, QColor.fromRgbF(0.0, 0.5, 1.0))
     g.setColorAt(0.5, QColor.fromRgbF(1.0, 1., 1.0))
     g.setColorAt(0.75, QColor.fromRgbF(1.0, 1., 0.))
     g.setColorAt(1., QColor.fromRgbF(1.0, 0., 0.))
     painter.setBrush(QBrush(g))
     painter.fillRect(0, 0, self.width(), self.height(), g)
     painter.end()
Exemple #13
0
 def paintEvent(self, ev):
     """
     IceAndFire = Colormap("IceAndFire",
                   (0.00, (0.0, 0.0, 1.0)),
                   (0.25, (0.0, 0.5, 1.0)),
                   (0.50, (1.0, 1.0, 1.0)),
                   (0.75, (1.0, 1.0, 0.0)),
                   (1.00, (1.0, 0.0, 0.0)))
     """
     painter=QPainter()
     painter.begin(self)
     g = QLinearGradient(0,0,self.width(), self.height())
     g.setColorAt(0., QColor.fromRgbF(0.0, 0.0, 1.0))
     g.setColorAt(0.25, QColor.fromRgbF(0.0, 0.5, 1.0))
     g.setColorAt(0.5, QColor.fromRgbF(1.0, 1., 1.0))
     g.setColorAt(0.75, QColor.fromRgbF(1.0, 1., 0.))
     g.setColorAt(1., QColor.fromRgbF(1.0, 0., 0.))
     painter.setBrush(QBrush(g))
     painter.fillRect(0, 0, self.width(), self.height(), g)
     painter.end()
Exemple #14
0
 def drawEics(self, data):
     for chrom in data:
         color = QColor.fromRgbF(*(chrom.sample.color+(.5,))) 
         c=self.pw.plotItem.plot(x=chrom.x_data, y=chrom.y_data, pen=color)
         #c = Line(chrom.x_data, chrom.y_data, 
         #         color,
         #         parent=self.pw.plotItem.vb, 
         #         scene=self.pw.scene())
         self.drawnItems[chrom.sample] = c
         #self.pw.addItem(c)
         #self.pw.plotItem.curves.append(c)
         self.emit(SIGNAL('linePlotted'), chrom.sample.shortName())
     if self.flags != 'peaks':
         self.pw.autoRange()
Exemple #15
0
 def mix(color1, color2, bias=0.5):
     def mix_real(a, b, bias):
         return a + (b - a) * bias
     if bias <= 0.0:
         return color1
     if bias >= 1.0:
         return color2
     if isnan(bias):
         return color1
     r = mix_real(color1.redF(),   color2.redF(),   bias)
     g = mix_real(color1.greenF(), color2.greenF(), bias)
     b = mix_real(color1.blueF(),  color2.blueF(),  bias)
     a = mix_real(color1.alphaF(), color2.alphaF(), bias)
     return QColor.fromRgbF(r, g, b, a)
Exemple #16
0
    def updateColor(self):
        """
        Update the color on the sampleModel
        modify to fit to the actual view
        
        """
        if not self.view.sampleTableView.selectedIndexes(
        ):  #not self.acTree.selectedIndexes():
            return

        idx = self.view.sampleTableView.selectedIndexes()[0]
        sample = self.model.sample(idx.data().toString(), fullNameEntry=False)

        if sample is None:
            self.view.showErrorMessage('Error',
                                       'Please choose only one file...')
            return

        color = QColorDialog.getColor()
        if not color.isValid():
            return

        sample.color = color.getRgbF()[:-1]

        #make the gradient color here to
        color = QColor.fromRgbF(*(sample.color + (1., )))
        colorr = QColor.fromRgbF(*(sample.color + (.5, )))
        gradient = QLinearGradient(-100, -100, 100, 100)
        gradient.setColorAt(0.7, colorr)
        gradient.setColorAt(1, color)

        #for m in (self.view.sampleModel, self.view.spectraModel, self.view.peakModel,
        #          self.view.clusterModel):#self.view.chromaModel,
        for i in xrange(self.view.sampleModel.rowCount()):
            item = self.view.sampleModel.item(i, 0)
            if item.text() == sample.shortName():
                item.setBackground(QBrush(gradient))
Exemple #17
0
 def drawEics(self, data):
     for chrom in data:
         color = QColor.fromRgbF(*(chrom.sample.color + (.5, )))
         c = self.pw.plotItem.plot(x=chrom.x_data,
                                   y=chrom.y_data,
                                   pen=color)
         #c = Line(chrom.x_data, chrom.y_data,
         #         color,
         #         parent=self.pw.plotItem.vb,
         #         scene=self.pw.scene())
         self.drawnItems[chrom.sample] = c
         #self.pw.addItem(c)
         #self.pw.plotItem.curves.append(c)
         self.emit(SIGNAL('linePlotted'), chrom.sample.shortName())
     if self.flags != 'peaks':
         self.pw.autoRange()
Exemple #18
0
	def paint( self, painter, option, index ):
		self.initStyleOption(option,index)

		style = option.widget.style() or QApplication.style()

		#draw icon
		option.text = ""
		style.drawControl( QStyle.CE_ItemViewItem, option, painter,option.widget)

		painter.save()
		item = self.tree.itemFromIndex( index )
		colorData = item.userdata
		color = QColorF( *colorData.get( 'color', (1,1,1,1) ) )
		rect = option.rect
		margin = 2
		rect.adjust( margin,0,-margin,-margin*2 )
		w = rect.width()
		h = rect.height()
		
		gridSize = 5
		gridPart = gridSize * 1
		painter.translate( rect.x(), rect.y() )
		painter.translate( margin, margin )
		painter.setPen( Qt.black )
		painter.setBrush( Qt.white )
		painter.drawRect( 0,0,w,h )
		painter.setPen( Qt.NoPen )
		painter.setBrush( QColor.fromRgbF( 0.5, 0.5, 0.5 ) )
		painter.setClipRect( 0,0,w,h )
		for y in range( int(h/gridSize+1) ):
				for x in range( int(w/gridSize+1) ):
					if (x % 2) == (y % 2):
						painter.drawRect( x * gridSize, y * gridSize, gridSize, gridSize )
		painter.setBrush( color )
		painter.drawRect( 0,0,w,h )
		colorFull = QColor( color )
		colorFull.setAlpha( 255 )
		painter.setBrush( colorFull )
		painter.drawRect( 0,0, w/2, h )
		# painter.fillRect( rect, color )
		# if option.state & QStyle.State_Selected:
		# 	painter.setPen  ( Qt.white )
		# 	painter.setBrush( Qt.NoBrush )
		# 	painter.drawRect( rect )
		painter.restore()
Exemple #19
0
 def setCurrentSample(self, sample, idx):
     if sample.shortName() not in [s.shortName() for s in self.qApp.model]:
         print ("Can not set sample...")
         return
     self.currentSample[idx-1] = sample
     if idx == 1:
         goodLabel = self.view.spectraLabel
     elif idx == 2:
         goodLabel = self.view.peakLabel
     elif idx == 3:
         goodLabel = self.view.clusterLabel
     else:
         print ("Error, must return")
         return
     goodLabel.setText(": ".join([str(goodLabel.text().split(':')[0]), 
                                 self.currentSample[idx-1].shortName()]))
     color =QColor.fromRgbF(*sample.color+(1.,))
     palette = goodLabel.palette()
     palette.setColor(goodLabel.foregroundRole(), color)
     goodLabel.setPalette(palette) #works well !
Exemple #20
0
    def qColor(self):
        r = fmod(self.h, 1.0)
        h = r+1.0 if r < 0.0 else r
        c = limit(self.c, min=0.0, max=1.0)
        y = limit(self.y, min=0.0, max=1.0)

        hs = h * 6.0
        if hs < 1.0:
            th = hs
            tm = self.luma_r + self.luma_g * th
        elif hs < 2.0:
            th = 2.0 - hs
            tm = self.luma_g + self.luma_r * th
        elif hs < 3.0:
            th = hs - 2.0
            tm = self.luma_g + self.luma_b * th
        elif hs < 4.0:
            th = 4.0 - hs
            tm = self.luma_b + self.luma_g * th
        elif hs < 5.0:
            th = hs - 4.0
            tm = self.luma_b + self.luma_r * th
        else:
            th = 6.0 - hs
            tm = self.luma_r + self.luma_b * th

        # calculate RGB channels in the sorted order
        if tm >= y:
            tp = y + y * c * (1.0 - tm) / tm
            to = y + y * c * (th - tm) / tm
            tn = y - (y * c)
        else:
            tp = y + (1.0 - y) * c
            to = y + (1.0 - y) * c * (th - tm) / (1.0 - tm)
            tn = y - (1.0 - y) * c * tm / (1.0 - tm)

        # return RGB channels in the appropriate order
        if hs < 1.0:
            return QColor.fromRgbF(self._igamma(tp), self._igamma(to), self._igamma(tn), self.a)
        elif hs < 2.0:
            return QColor.fromRgbF(self._igamma(to), self._igamma(tp), self._igamma(tn), self.a)
        elif hs < 3.0:
            return QColor.fromRgbF(self._igamma(tn), self._igamma(tp), self._igamma(to), self.a)
        elif hs < 4.0:
            return QColor.fromRgbF(self._igamma(tn), self._igamma(to), self._igamma(tp), self.a)
        elif hs < 5.0:
            return QColor.fromRgbF(self._igamma(to), self._igamma(tn), self._igamma(tp), self.a)
        else:
            return QColor.fromRgbF(self._igamma(tp), self._igamma(tn), self._igamma(to), self.a)
Exemple #21
0
def _parse_qcolor_arrayish(color_spec):
    if len(color_spec) < 3 or len(color_spec) > 4:
        raise ValueError("Expecting an array of length 3 or 4")

    if len(set(type(x) for x in color_spec)) > 1:
        raise ValueError("All components must have the same type")

    comp_type = type(color_spec[0])

    if comp_type == int:
        if not all(0 <= x <= 255 for x in color_spec):
            raise ValueError("Integer components must be in the [0..255] range")

        return QColor.fromRgb(*color_spec)
    elif comp_type == float:
        if not all(0.0 <= x <= 1.0 for x in color_spec):
            raise ValueError("Float components must be in the [0.0..1.0] range")

        return QColor.fromRgbF(*color_spec)

    raise ValueError("Only int and float components are supported")
Exemple #22
0
 def setCurrentSample(self, sample, idx):
     if sample.shortName() not in [s.shortName() for s in self.qApp.model]:
         print("Can not set sample...")
         return
     self.currentSample[idx - 1] = sample
     if idx == 1:
         goodLabel = self.view.spectraLabel
     elif idx == 2:
         goodLabel = self.view.peakLabel
     elif idx == 3:
         goodLabel = self.view.clusterLabel
     else:
         print("Error, must return")
         return
     goodLabel.setText(": ".join([
         str(goodLabel.text().split(':')[0]),
         self.currentSample[idx - 1].shortName()
     ]))
     color = QColor.fromRgbF(*sample.color + (1., ))
     palette = goodLabel.palette()
     palette.setColor(goodLabel.foregroundRole(), color)
     goodLabel.setPalette(palette)  #works well !
    def paintEvent(self, event):
        if self._isRunning:
            anglestep = 360. / self._steps
            fillsteps = self._fillsteps
            factor = min(self.width(), self.height()) / 16.
            bw = self._bw

            p = QPainter(self)
            p.setRenderHint(QPainter.Antialiasing, True)
            p.scale(factor, factor)
            p.setPen(Qt.NoPen)

            for i in range(self._steps):
                x1, y1 = self._coords[i]
                c = fillsteps[self._steps - 1 - i]
                a = anglestep * i
                p.setBrush(QBrush(QColor.fromRgbF(bw, bw, bw, c)))
                p.save()
                p.translate(x1 - 2, y1 - 1)
                p.translate(2, 1)
                p.rotate(a)
                p.translate(-2, -1)
                p.drawPath(self._path)
                p.restore()
    def paintEvent(self, event):
        if self._isRunning:
            anglestep = 360. / self._steps
            fillsteps = self._fillsteps
            factor = min(self.width(), self.height()) / 16.
            bw = self._bw

            p = QPainter(self)
            p.setRenderHint(QPainter.Antialiasing, True)
            p.scale(factor, factor)
            p.setPen(Qt.NoPen)

            for i in range(self._steps):
                x1, y1 = self._coords[i]
                c = fillsteps[self._steps - 1 - i]
                a = anglestep * i
                p.setBrush(QBrush(QColor.fromRgbF(bw, bw, bw, c)))
                p.save()
                p.translate(x1 - 2, y1 - 1)
                p.translate(2, 1)
                p.rotate(a)
                p.translate(-2, -1)
                p.drawPath(self._path)
                p.restore()
Exemple #25
0
	'__doc__', '__import__', '__name__', '__package__',
])
BUILTIN = set([
	'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes',
	'chr', 'classmethod', 'compile', 'complex', 'delattr', 'dict',
	'dir', 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float',
	'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash',
	'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',
	'iter', 'len', 'list', 'locals', 'map', 'max', 'memoryview', 'min',
	'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property',
	'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
	'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type',
	'vars', 'zip'
])
TOKEN_CLASSES = [
	(RESERVED, 		500, QColor.fromRgbF(0.7, 0.05, 0.05)),
	(EXCEPTIONS, 	400, QColor.fromRgbF(0.3, 0.1, 0.1)),
	(CONSTANTS, 	600, QColor.fromRgbF(0.1, 0.1, 0.3)),
	(META, 			300, QColor.fromRgbF(0.8, 0.0, 0.8)),
	(BUILTIN, 		350, QColor.fromRgbF(0.1, 0.6, 0.5)),
]
IGNORE_TOKENS = set([
	python_tokens['NEWLINE'],
	python_tokens['NL'],
	python_tokens['INDENT'],
	python_tokens['DEDENT']
])


class MpCodeDocument(QTextDocument):
	def __init__(self, module, parent):
Exemple #26
0
    def _plotting(self, data):
        """
        refactor this shit
        c = Line(chrom.x_data, chrom.y_data, 
                 QColor.fromRgbF(*(self.ref.sample.color+(.7,))),
                 parent=self.pw.plotItem.vb, 
                 scene=self.pw.scene())
        
        #test scatter plot
        self.scatter = ScatterPlotItem(x=chrom.x_data, y=chrom.y_data)
        self.pw.addDataItem(self.scatter)
        self.scatter.sigClicked.connect(self.requestSpectra)
        
        """
        if self.flags == 'peak':

            self.connect(self.pw.plotItem.vb,
                         SIGNAL('showDiffOrSpectra(PyQt_PyObject)'),
                         self.drawSpectra)
            self.ref = sorted([e for e in data if e is not None],
                              key=lambda x: x.height)[-1]
            ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked(
            ) else self.ref.sample.ppm
            chrom = self.ref.sample.massExtraction(self.ref.mass(),
                                                   ppm,
                                                   asChromatogram=True)
            #show labels
            self.textLabels += self.showTextLabel(chrom.x_data, chrom.y_data)
            #drawing
            color = QColor.fromRgbF(*self.ref.sample.color + (.5, ))

            c = self.pw.plotItem.plot(chrom.x_data, chrom.y_data, pen=color)
            self.drawnItems[self.ref.sample] = c
            # peak's pixmap on the ref peak
            pix = PeakArrowItem(self.ref,
                                pen=color,
                                brush=color,
                                pos=(self.ref.rt, self.ref.height +
                                     (self.ref.height * 6) / 100.),
                                angle=-90,
                                parent=self.pw.plotItem.vb)
            pix.setZValue(1000)
            self.pw.addItem(pix)
            #both these connections are emitted
            #in peak Indicator by effictivamente qApp
            self.connect(qApp.instance(), SIGNAL("highlightRequested"),
                         c.setHighlighted)
            self.connect(qApp.instance(), SIGNAL('updateBarPlot'),
                         self.barPlot.setPeakGroup)  #
            self.emit(SIGNAL('linePlotted'), self.ref.sample.shortName())

            #if qApp.instance().lowMemory:
            #    chromatograms=[el.sample.loadAndExtract(el.mass(), el.sample.ppm, asChromatogram=True) \
            #                  for el in data if el != ref and el is not None]
            #else:
            ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked(
            ) else self.ref.sample.ppm
            chromatograms=[el.sample.massExtraction(el.mass(), ppm, asChromatogram=True) \
                          for el in data if el is not None and el != self.ref]
            self.drawEics(chromatograms)
            #initialisation zoom on the peak
            self.pw.setYRange(0.,
                              self.ref.height + (self.ref.height * 12) / 100.)
            self.pw.setXRange(self.ref.rtmin - 20, self.ref.rtmax + 20)

        elif self.flags == 'chroma':
            ref = [d for d in data if d is not None]
            if not ref:
                print "Error, empty data to plot"
                return
            self.ref = ref[0]
            self.textLabels += self.showTextLabel(self.ref.x_data,
                                                  self.ref.y_data)
            self.drawEics(data)

        else:  #spectrum
            if not data:
                #print "NOTHING TO PLOT"
                return
            self.ref = data[0]
            for el in data:
                c = SpectrumItem(el, centroid=True, scene=self.pw.scene())
                self.pw.addItem(c)
                self.drawnItems[el.sample] = c
                self.pw.plotItem.curves.append(c)
                self.emit(SIGNAL('linePlotted'), el.sample.shortName())
            #just put time information
            if data:
                i = 0
                while data[i] is None and i < len(data):
                    i += 1
                self.textLabels += self.showTextLabel(data[i].x_data,
                                                      data[i].y_data)
            #setting the range
            #warning: autoRange pw function does not work well
            #on spectrum item
            maxY = max([el.y_data.max() for el in data])
            minX, maxX = min([el.x_data.min() for el in data
                              ]), max([el.x_data.max() for el in data])
            self.pw.setXRange(minX, maxX, padding=0)
            self.pw.setYRange(0., maxY, padding=0)
Exemple #27
0
	def __init__( self, *args ):
		super(ColorPickerWidget, self).__init__( *args )
		self.updating = False
		self.updatingAlpha = False
		self.ui = ColorPickerForm()
		self.ui.setupUi( self )

		# self.setWindowFlags( Qt.Popup )

		self.preview     = ColorPreviewWidget( self.ui.containerPreview )
		self.hueSlider   = HueSliderWidget( self.ui.containerHueSlider )
		self.alphaSlider = AlphaSliderWidget( self.ui.containerAlphaSlider )

		self.colorPlane  = ColorPlaneWidget( self.ui.containerColorPlane )

		self.hueSlider   .valueChanged .connect( self.onHueChanged )
		self.alphaSlider .valueChanged .connect( self.onAlphaSliderChanged )
		self.colorPlane  .valueChanged .connect( self.onColorBaseChanged )

		self.preview.clicked.connect( self.onColorPreviewClicked )

		self.ui.buttonOK      .clicked .connect( self.onButtonOK )
		self.ui.buttonCancel  .clicked .connect( self.onButtonCancel )
		self.ui.buttonCopyHEX .clicked .connect( self.onButtonCopyHEX )
		self.ui.buttonCopyRGB .clicked .connect( self.onButtonCopyRGBA )
		self.ui.buttonCopyHSV .clicked .connect( self.onButtonCopyHSV )

		self.ui.buttonScreenPick.clicked.connect( self.onButtonScreenPick )

		self.ui.numR.valueChanged.connect( self.onTextRGBChanged )
		self.ui.numG.valueChanged.connect( self.onTextRGBChanged )
		self.ui.numB.valueChanged.connect( self.onTextRGBChanged )

		self.ui.numH.valueChanged.connect( self.onTextHSVChanged )
		self.ui.numS.valueChanged.connect( self.onTextHSVChanged )
		self.ui.numV.valueChanged.connect( self.onTextHSVChanged )

		self.ui.textHex.textChanged.connect( self.onTextHexChanged )
		self.ui.textHex.returnPressed.connect( self.onTextHexEntered )
		# self.ui.textHex.installEventFilter( self )

		self.ui.numA.valueChanged.connect( self.onAlphaSliderChanged )

		self.originalColor = QColor.fromRgbF( 0.0, 0.0, 0.0 )
		self.currentColor  = QColor.fromRgbF( 1.0, 1.0, 0.0 )

		self.preview.setColor( self.currentColor )
		self.preview.setOriginalColor( self.originalColor )

		self.updateAlphaWidgets()
		self.updateTextWidgets()
		self.updateColorPlane()

		self.paletteToolbar = toolbar = QtGui.QToolBar( self.ui.containerToolbar )
		toolbar.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
		toolbar.setIconSize( QtCore.QSize( 16, 16 ) )
		toolbar.setToolButtonStyle( Qt.ToolButtonTextOnly )

		layout = QtGui.QHBoxLayout( self.ui.containerToolbar )
		layout.addWidget( toolbar )
		layout.setSpacing( 0 )
		layout.setMargin( 0 )
		self.actionAddPalette    = toolbar.addAction( '+ Pal' )
		self.actionRemovePalette = toolbar.addAction( '- Pal' )
		toolbar.addSeparator()
		self.actionUpdateColor  = toolbar.addAction( 'Update' )
		self.actionMatchColor  = toolbar.addAction( 'Match' )
		toolbar.addSeparator()
		self.actionAddColor     = toolbar.addAction( '+' )
		self.actionRemoveColor  = toolbar.addAction( '-' )
		# self.screenPicker.grabMouse()

		self.listPalettes = PaletteList( self.ui.containerCategory )
		self.listPaletteItems    = PaletteItemList( self.ui.containerItems )
		self.listPalettes.owner = self
		self.listPaletteItems.owner = self
		
		# self.listPaletteItems.addColorData( {} )
		#palette data
		self.palettes = []
		self.currentPalette = None

		self.actionAddPalette.triggered.connect( self.onAddPalette )
		self.actionRemovePalette.triggered.connect( self.onRemovePalette )
		self.actionAddColor.triggered.connect( self.onAddColor )
		self.actionRemoveColor.triggered.connect( self.onRemoveColor )
		self.actionUpdateColor.triggered.connect( self.onUpdateColor )
		self.actionMatchColor.triggered.connect( self.onMatchColor )
		self.paletteProvider = None
		self.refreshPalettes()
Exemple #28
0
    def _plotting(self, data):
        """
        refactor this shit
        c = Line(chrom.x_data, chrom.y_data, 
                 QColor.fromRgbF(*(self.ref.sample.color+(.7,))),
                 parent=self.pw.plotItem.vb, 
                 scene=self.pw.scene())
        
        #test scatter plot
        self.scatter = ScatterPlotItem(x=chrom.x_data, y=chrom.y_data)
        self.pw.addDataItem(self.scatter)
        self.scatter.sigClicked.connect(self.requestSpectra)
        
        """
        if self.flags == 'peak':
            
            self.connect(self.pw.plotItem.vb, SIGNAL('showDiffOrSpectra(PyQt_PyObject)'), self.drawSpectra)
            self.ref = sorted([e for e in data if e is not None], key=lambda x:x.height)[-1]
            ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked() else self.ref.sample.ppm
            chrom = self.ref.sample.massExtraction(self.ref.mass(), 
                                                   ppm, 
                                                   asChromatogram=True) 
            #show labels
            self.textLabels += self.showTextLabel(chrom.x_data, chrom.y_data)
            #drawing
            color = QColor.fromRgbF(*self.ref.sample.color +(.5, ))

            c = self.pw.plotItem.plot(chrom.x_data, chrom.y_data, pen=color)
            self.drawnItems[self.ref.sample] = c
            # peak's pixmap on the ref peak
            pix= PeakArrowItem(self.ref, 
                               pen=color,
                               brush=color,
                               pos=(self.ref.rt, self.ref.height + (self.ref.height * 6) / 100.),
                               angle=-90,
                               parent=self.pw.plotItem.vb)
            pix.setZValue(1000)
            self.pw.addItem(pix)
            #both these connections are emitted 
            #in peak Indicator by effictivamente qApp
            self.connect(qApp.instance(), SIGNAL("highlightRequested"), c.setHighlighted)
            self.connect(qApp.instance(), SIGNAL('updateBarPlot'), self.barPlot.setPeakGroup) #
            self.emit(SIGNAL('linePlotted'), self.ref.sample.shortName())
     
            #if qApp.instance().lowMemory:
            #    chromatograms=[el.sample.loadAndExtract(el.mass(), el.sample.ppm, asChromatogram=True) \
            #                  for el in data if el != ref and el is not None]
            #else:
            ppm = self.view.ppmEditer.value() if self.view.usePpm.isChecked() else self.ref.sample.ppm
            chromatograms=[el.sample.massExtraction(el.mass(), ppm, asChromatogram=True) \
                          for el in data if el is not None and el != self.ref]
            self.drawEics(chromatograms)
            #initialisation zoom on the peak
            self.pw.setYRange(0., self.ref.height + (self.ref.height * 12) / 100.)
            self.pw.setXRange(self.ref.rtmin - 20, self.ref.rtmax + 20)
            
        elif self.flags == 'chroma':
            ref = [d for d in data if d is not None]
            if not ref:
                print "Error, empty data to plot"
                return 
            self.ref = ref[0] 
            self.textLabels+=self.showTextLabel(self.ref.x_data, self.ref.y_data)
            self.drawEics(data)
                        
        else:#spectrum
            if not data:
                #print "NOTHING TO PLOT"
                return
            self.ref = data[0]
            for el in data:
                c=SpectrumItem(el, centroid=True, scene=self.pw.scene())
                self.pw.addItem(c)
                self.drawnItems[el.sample] = c
                self.pw.plotItem.curves.append(c)    
                self.emit(SIGNAL('linePlotted'), el.sample.shortName()) 
            #just put time information
            if data:
                i=0
                while data[i] is None and i < len(data):
                    i+=1
                self.textLabels+=self.showTextLabel(data[i].x_data, data[i].y_data)
            #setting the range
            #warning: autoRange pw function does not work well
            #on spectrum item
            maxY = max([el.y_data.max() for el in data])
            minX, maxX = min([el.x_data.min() for el in data]), max([el.x_data.max() for el in data])
            self.pw.setXRange(minX, maxX, padding=0) 
            self.pw.setYRange(0., maxY, padding=0)