Пример #1
0
	def onTextHexChanged( self, value ):
		if self.updating: return
		hexText = value
		color = QColor( value )
		color.setAlphaF( self.currentColor.alphaF() )
		self.setColor( color )
		self.updateColorPlane()
Пример #2
0
    def __init__(self, i, mu1, mu2, sigma1, sigma2, phi, color):
        OWPlotItem.__init__(self)
        self.outer_box = QGraphicsPolygonItem(self)
        self.inner_box = QGraphicsPolygonItem(self)

        self.i = i
        self.mu1 = mu1
        self.mu2 = mu2
        self.sigma1 = sigma1
        self.sigma2 = sigma2
        self.phi = phi

        self.twosigmapolygon = QPolygonF([
            QPointF(i, mu1 - sigma1),
            QPointF(i, mu1 + sigma1),
            QPointF(i + 1, mu2 + sigma2),
            QPointF(i + 1, mu2 - sigma2),
            QPointF(i, mu1 - sigma1)
        ])

        self.sigmapolygon = QPolygonF([
            QPointF(i, mu1 - .5 * sigma1),
            QPointF(i, mu1 + .5 * sigma1),
            QPointF(i + 1, mu2 + .5 * sigma2),
            QPointF(i + 1, mu2 - .5 * sigma2),
            QPointF(i, mu1 - .5 * sigma1)
        ])

        if isinstance(color, tuple):
            color = QColor(*color)
        color.setAlphaF(.3)
        self.outer_box.setBrush(color)
        self.outer_box.setPen(QColor(0, 0, 0, 0))
        self.inner_box.setBrush(color)
        self.inner_box.setPen(color)
Пример #3
0
def makeBrush( **option ):
	brush = QtGui.QBrush()
	brush.setStyle( option.get( 'style', Qt.SolidPattern ) )
	color = QColor( option.get( 'color', '#ffffff' ) )
	color.setAlphaF( option.get( 'alpha', 1 ) )
	brush.setColor( color )
	return brush
Пример #4
0
    def paintEvent(self, event):
        if not self.displayedWhenStopped and not self.isAnimated():
            return

        width = min(self.width(), self.height())

        p = QPainter(self)
        p.setRenderHint(QPainter.Antialiasing)

        outerRadius = (width-1) * 0.5
        innerRadius = (width-1) * 0.5 * 0.38

        capsuleHeight = outerRadius - innerRadius
        capsuleWidth  = capsuleHeight * 0.23 if width > 32 else capsuleHeight * 0.35
        capsuleRadius = capsuleWidth / 2

        for i in range(12):
            color = QColor(self.color)
            color.setAlphaF(float(1.0 - float(i / 12.0)))
            p.setPen(Qt.NoPen)
            p.setBrush(color)
            p.save()
            p.translate(self.rect().center())
            p.rotate(self.angle - float(i * 30.0))
            p.drawRoundedRect(-capsuleWidth * 0.5,\
                              -(innerRadius + capsuleHeight),\
                              capsuleWidth,\
                              capsuleHeight,\
                              capsuleRadius,\
                              capsuleRadius)
            p.restore()
Пример #5
0
    def _get_color(self, value, asQColor=False, alpha=0.5):
        ''' Get interpolated color from value '''

        if not len(self.vcolors):
            return (0., 0., 0., self.alpha)
        elif len(self.vcolors) == 1:
            return self.vcolors[0][1]
        elif value < 0.0:
            return self.vcolors[0][1]
        elif value > 1.0:
            return self.vcolors[-1][1]
        sup_color = self.vcolors[0]
        inf_color = self.vcolors[-1]
        for i in xrange(len(self.vcolors) - 1):
            if value < self.vcolors[i + 1][0]:
                inf_color = self.vcolors[i]
                sup_color = self.vcolors[i + 1]
                break
        r = (value - inf_color[0]) / (sup_color[0] - inf_color[0])
        if not asQColor:
            return (sup_color[1][0] * r + inf_color[1][0] * (1 - r),
                    sup_color[1][1] * r + inf_color[1][1] * (1 - r),
                    sup_color[1][2] * r + inf_color[1][2] * (1 - r))

        from PyQt4.QtGui import QColor
        q = QColor()
        q.setRedF(sup_color[1][0] * r + inf_color[1][0] * (1 - r))
        q.setGreen(sup_color[1][1] * r + inf_color[1][1] * (1 - r))
        q.setBlueF(sup_color[1][2] * r + inf_color[1][2] * (1 - r))
        q.setAlphaF(alpha)
        return q
Пример #6
0
    def _get_color (self, value, asQColor=False, alpha=0.5):
        ''' Get interpolated color from value '''

        if not len(self.vcolors):
            return (0.,0.,0.,self.alpha)
        elif len(self.vcolors) == 1:
            return self.vcolors[0][1]
        elif value < 0.0:
            return self.vcolors[0][1]
        elif value > 1.0:
            return self.vcolors[-1][1]
        sup_color = self.vcolors[0]
        inf_color = self.vcolors[-1]
        for i in xrange (len(self.vcolors)-1):
            if value < self.vcolors[i+1][0]:
                inf_color = self.vcolors[i]
                sup_color = self.vcolors[i+1]
                break
        r = (value-inf_color[0])/(sup_color[0]-inf_color[0])
        if not asQColor:
            return (sup_color[1][0]*r + inf_color[1][0]*(1-r), 
                    sup_color[1][1]*r + inf_color[1][1]*(1-r),
                    sup_color[1][2]*r + inf_color[1][2]*(1-r))
        
        from PyQt4.QtGui import QColor
        q = QColor()
        q.setRedF(sup_color[1][0]*r + inf_color[1][0]*(1-r))
        q.setGreen(sup_color[1][1]*r + inf_color[1][1]*(1-r))
        q.setBlueF(sup_color[1][2]*r + inf_color[1][2]*(1-r))
        q.setAlphaF(alpha)
        return q
Пример #7
0
def makeBrush(**option):
    brush = QtGui.QBrush()
    brush.setStyle(option.get('style', Qt.SolidPattern))
    color = QColor(option.get('color', '#ffffff'))
    color.setAlphaF(option.get('alpha', 1))
    brush.setColor(color)
    return brush
Пример #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 )
Пример #9
0
    def __init__(self, i, mu1, mu2, sigma1, sigma2, phi, color):
        OWPlotItem.__init__(self)
        self.outer_box = QGraphicsPolygonItem(self)
        self.inner_box = QGraphicsPolygonItem(self)

        self.i = i
        self.mu1 = mu1
        self.mu2 = mu2
        self.sigma1 = sigma1
        self.sigma2 = sigma2
        self.phi = phi

        self.twosigmapolygon = QPolygonF([
            QPointF(i, mu1 - sigma1), QPointF(i, mu1 + sigma1),
            QPointF(i + 1, mu2 + sigma2), QPointF(i + 1, mu2 - sigma2),
            QPointF(i, mu1 - sigma1)
        ])

        self.sigmapolygon = QPolygonF([
            QPointF(i, mu1 - .5 * sigma1), QPointF(i, mu1 + .5 * sigma1),
            QPointF(i + 1, mu2 + .5 * sigma2), QPointF(i + 1, mu2 - .5 * sigma2),
            QPointF(i, mu1 - .5 * sigma1)
        ])

        if isinstance(color, tuple):
            color = QColor(*color)
        color.setAlphaF(.3)
        self.outer_box.setBrush(color)
        self.outer_box.setPen(QColor(0, 0, 0, 0))
        self.inner_box.setBrush(color)
        self.inner_box.setPen(color)
Пример #10
0
def makePen(**option):
    pen = QtGui.QPen()
    pen.setStyle(option.get('style', Qt.SolidLine))
    color = QColor(option.get('color', '#ffffff'))
    color.setAlphaF(option.get('alpha', 1))
    pen.setColor(color)
    pen.setWidth(option.get('width', .0))
    return pen
Пример #11
0
def makePen( **option ):
	pen = QtGui.QPen()
	pen.setStyle( option.get( 'style', Qt.SolidLine ) )
	color = QColor( option.get( 'color', '#ffffff' ) )
	color.setAlphaF( option.get( 'alpha', 1 ) )
	pen.setColor( color )
	pen.setWidth( option.get( 'width', .0 ) )
	return pen
Пример #12
0
def get_color(value, alpha=.2):
    """Return color depending on value type"""
    color = QColor()
    for typ in COLORS:
        if isinstance(value, typ):
            color = QColor(COLORS[typ])
    color.setAlphaF(alpha)
    return color
Пример #13
0
def get_color(value, alpha=.2):
    """Return color depending on value type"""
    color = QColor()
    for typ in COLORS:
        if isinstance(value, typ):
            color = QColor(COLORS[typ])
    color.setAlphaF(alpha)
    return color
Пример #14
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__rubber = QgsRubberBand(self.canvas(), QGis.Point)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubber.setColor(color)
     self.__rubber.setIcon(4)
     self.__rubber.setIconSize(20)
Пример #15
0
    def __init__(self, points, rgb, alpha):

        self.points = points
        colour = QColor(rgb)
        self.red = colour.red()
        self.green = colour.green()
        self.blue = colour.blue()
        colour.setAlphaF(alpha)
        self.alpha = alpha
        self.rgba = colour.rgb()
        self.projected = []
Пример #16
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__rubber = QgsRubberBand(self.canvas(), QGis.Point)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubber.setColor(color)
     self.__rubber.setIcon(4)
     self.__rubber.setIconSize(20)
Пример #17
0
    def createRubberBand(self, geomType):
        settings = QSettings()

        rb = QgsRubberBand(self.canvas, geomType)
        rb.setWidth(settings.value('/qgis/digitizing/line_width', 1, type=int))
        color = QColor(settings.value('/qgis/digitizing/line_color_red', 255, type=int),
                       settings.value('/qgis/digitizing/line_color_green', 0, type=int),
                       settings.value('/qgis/digitizing/line_color_blue', 0, type=int))
        alpha = settings.value('/qgis/digitizing/line_color_alpha', 200, type=int) / 255.0
        color.setAlphaF(alpha)
        rb.setColor(color)
        return rb
Пример #18
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__rubber = QgsRubberBand(self.canvas(), QGis.Polygon)
     color = QColor("red")
     color.setAlphaF(0.6)
     self.__rubber.setBorderColor(color)
     color = QColor("orange")
     color.setAlphaF(0.3)
     self.__rubber.setFillColor(color)
Пример #19
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__rubber = QgsRubberBand(self.canvas(), QGis.Polygon)
     color = QColor("red")
     color.setAlphaF(0.6)
     self.__rubber.setBorderColor(color)
     color = QColor("orange")
     color.setAlphaF(0.3)
     self.__rubber.setFillColor(color)
Пример #20
0
    def data(self, index, role):

        #
        if role == Qt.BackgroundColorRole and (
                index.column() == self.ColumnID.Fix
                or index.column() == self.ColumnID.FixIcon):
            row = index.row()
            value = self._elements[row]
            if value.isFixed:
                color = QColor(Qt.red)

                color.setAlphaF(0.5)
                return QVariant(color)

        if role == Qt.DisplayRole and index.column() == self.ColumnID.Text:
            row = index.row()
            value = self._elements[row]
            return value.density

        if role == Qt.DisplayRole and index.column() == self.ColumnID.Fix:
            row = index.row()
            value = self._elements[row]

            return value.fixvalue

        if role == Qt.DecorationRole and index.column() == self.ColumnID.Color:
            row = index.row()
            value = self._elements[row]
            pixmap = QPixmap(_NPIXELS, _NPIXELS)
            pixmap.fill(value.color)
            icon = QIcon(pixmap)
            return icon

        if role == Qt.DecorationRole and index.column(
        ) == self.ColumnID.FixIcon:
            row = index.row()
            value = self._elements[row]

            pixmap = QPixmap(_NPIXELS, _NPIXELS)

            if value.isFixed:
                iconpath = os.path.join(
                    os.path.split(__file__)[0], 'icons/lock-edit-icon-32.png')
            else:
                iconpath = os.path.join(
                    os.path.split(__file__)[0], 'icons/lock_open-32.png')
            pixmap.load(iconpath)
            icon = QIcon(pixmap)

            return icon

        return super(BoxListModel, self).data(index, role)
Пример #21
0
    def data(self, index, role):
            
#         
        if role == Qt.BackgroundColorRole and (index.column() == self.ColumnID.Fix or index.column() == self.ColumnID.FixIcon):
            row = index.row()
            value = self._elements[row]
            if value.isFixed:
                color=QColor(Qt.red)
                
                color.setAlphaF(0.5)
                return QVariant(color)
        
        if role == Qt.DisplayRole and index.column() == self.ColumnID.Text:
            row = index.row()
            value = self._elements[row]
            return value.density
        
        if role == Qt.DisplayRole and index.column() == self.ColumnID.Fix:
            row = index.row()
            value = self._elements[row]
            
            return value.fixvalue
                
        if role == Qt.DecorationRole and index.column() == self.ColumnID.Color:
            row = index.row()
            value = self._elements[row]
            pixmap = QPixmap(_NPIXELS, _NPIXELS)
            pixmap.fill(value.color)
            icon = QIcon(pixmap)
            return icon
        
        if role == Qt.DecorationRole and index.column() == self.ColumnID.FixIcon:
            row = index.row()
            value = self._elements[row]
                
            pixmap = QPixmap(_NPIXELS,_NPIXELS)
            
            if value.isFixed:
                iconpath=os.path.join(os.path.split(__file__)[0],
                                      'icons/lock-edit-icon-32.png')
            else:
                iconpath=os.path.join(os.path.split(__file__)[0],
                                      'icons/lock_open-32.png')       
            pixmap.load(iconpath)
            icon = QIcon(pixmap)
            
            return icon
        
        
        
        return super(BoxListModel,self).data(index, role)
Пример #22
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__rubber = QgsRubberBand(self.__canvas, QGis.Point)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubber.setColor(color)
     self.__rubber.setIcon(4)
     self.__rubber.setIconSize(20)
     self.__updateList()
     self.__canvas.layersChanged.connect(self.__updateList)
     QgsProject.instance().snapSettingsChanged.connect(self.__updateList)
Пример #23
0
    def draw_group(self, i, nmu1, nmu2, nsigma1, nsigma2, phi, color):
        xs2s = [i, i, i + 1, i + 1, i]
        ys2s = [nmu1 - nsigma1, nmu1 + nsigma1, nmu2 + nsigma2, nmu2 - nsigma2, nmu1 - nsigma1]
        xs1s = xs2s
        ys1s = [nmu1 - .5 * nsigma1, nmu1 + .5 * nsigma1, nmu2 + .5 * nsigma2, nmu2 - .5 * nsigma2, nmu1 - .5 * nsigma1]

        if isinstance(color, tuple):
            color = QColor(*color)
        color.setAlphaF(.3)

        outercurve = PolygonCurve(QPen(QColor(0, 0, 0, 0)), QBrush(color), xData=xs2s, yData=ys2s)
        outercurve.attach(self)
        innercurve = PolygonCurve(QPen(color), QBrush(color), xData=xs1s, yData=ys1s)
        innercurve.attach(self)
Пример #24
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapToolAdvancedDigitizing.activate(self)
     self.__updateList()
     self.__rubber = QgsRubberBand(self.canvas(), QGis.Point)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubber.setColor(color)
     self.__rubber.setIcon(4)
     self.__rubber.setIconSize(20)
     self.canvas().layersChanged.connect(self.__updateList)
     self.canvas().scaleChanged.connect(self.__updateList)
     self.setMode(self.CaptureLine)
Пример #25
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapToolAdvancedDigitizing.activate(self)
     self.__updateList()
     self.__rubber = QgsRubberBand(self.canvas(), QGis.Point)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubber.setColor(color)
     self.__rubber.setIcon(4)
     self.__rubber.setWidth(2)
     self.__rubber.setIconSize(20)
     self.canvas().layersChanged.connect(self.__updateList)
     self.canvas().scaleChanged.connect(self.__updateList)
     self.setMode(self.CaptureLine)
Пример #26
0
 def _createRubberBand(self, geometryType, moveBand=False):
     settings = QSettings()
     rb = QgsRubberBand(self.canvas(), geometryType)
     rb.setWidth(int(settings.value('/qgis/digitizing/line_width', 1)))
     color = QColor(int(settings.value('/qgis/digitizing/line_color_red', 255)),
                    int(settings.value('/qgis/digitizing/line_color_green', 0)),
                    int(settings.value('/qgis/digitizing/line_color_blue', 0)))
     myAlpha = int(settings.value('/qgis/digitizing/line_color_alpha', 200)) / 255.0
     if (moveBand):
         myAlpha = myAlpha * float(settings.value('/qgis/digitizing/line_color_alpha_scale', 0.75))
         rb.setLineStyle(Qt.DotLine)
     if (geometryType == QGis.Polygon):
         color.setAlphaF(myAlpha)
     color.setAlphaF(myAlpha)
     rb.setColor(color)
     rb.show()
     return rb
Пример #27
0
 def _createRubberBand(self, geometryType, moveBand=False):
     settings = QSettings()
     rb = QgsRubberBand(self.canvas(), geometryType)
     rb.setWidth(int(settings.value('/qgis/digitizing/line_width', 1)))
     color = QColor(int(settings.value('/qgis/digitizing/line_color_red', 255)),
                    int(settings.value('/qgis/digitizing/line_color_green', 0)),
                    int(settings.value('/qgis/digitizing/line_color_blue', 0)))
     myAlpha = int(settings.value('/qgis/digitizing/line_color_alpha', 200)) / 255.0
     if (moveBand):
         myAlpha = myAlpha * float(settings.value('/qgis/digitizing/line_color_alpha_scale', 0.75))
         rb.setLineStyle(Qt.DotLine)
     if (geometryType == QGis.Polygon):
         color.setAlphaF(myAlpha)
     color.setAlphaF(myAlpha)
     rb.setColor(color)
     rb.show()
     return rb
Пример #28
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__dockWdg = ProfileDockWidget(self.__iface)
     self.__iface.addDockWidget(Qt.BottomDockWidgetArea, self.__dockWdg)
     self.__dockWdg.closeSignal.connect(self.__closed)
     self.__rubberLine = QgsRubberBand(self.canvas(), QGis.Line)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubberLine.setColor(color)
     self.__rubberDots = QgsRubberBand(self.canvas(), QGis.Line)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubberDots.setColor(color)
     self.__rubberDots.setLineStyle(Qt.DotLine)
Пример #29
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__dockWdg = ProfileDockWidget(self.__iface)
     self.__iface.addDockWidget(Qt.BottomDockWidgetArea, self.__dockWdg)
     self.__dockWdg.closeSignal.connect(self.closed)
     self.__rubberSit = QgsRubberBand(self.__canvas, QGis.Point)
     self.__rubberDif = QgsRubberBand(self.__canvas, QGis.Point)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubberSit.setColor(color)
     self.__rubberSit.setIcon(4)
     self.__rubberSit.setIconSize(20)
     self.__rubberDif.setColor(color)
     self.__rubberDif.setIcon(2)
     self.__rubberDif.setIconSize(20)
Пример #30
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__dockWdg = ProfileDockWidget(self.__iface, self.__dockGeom)
     if self.__isfloating:
         self.__dockWdg.show()
     else:
        self.__iface.addDockWidget(Qt.BottomDockWidgetArea, self.__dockWdg)
     self.__dockWdg.closeSignal.connect(self.__closed)
     self.__rubberLine = QgsRubberBand(self.canvas(), QGis.Line)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubberLine.setColor(color)
     self.__rubberDots = QgsRubberBand(self.canvas(), QGis.Line)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubberDots.setColor(color)
     self.__rubberDots.setLineStyle(Qt.DotLine)
Пример #31
0
 def activate(self):
     """
     When the action is selected
     """
     QgsMapTool.activate(self)
     self.__dockWdg = ProfileDockWidget(self.__iface, self.__dockGeom)
     if self.__isfloating:
         self.__dockWdg.show()
     else:
        self.__iface.addDockWidget(Qt.BottomDockWidgetArea, self.__dockWdg)
     self.__dockWdg.closeSignal.connect(self.__closed)
     self.__rubberSit = QgsRubberBand(self.canvas(), QGis.Point)
     self.__rubberDif = QgsRubberBand(self.canvas(), QGis.Point)
     color = QColor("red")
     color.setAlphaF(0.78)
     self.__rubberSit.setColor(color)
     self.__rubberSit.setIcon(4)
     self.__rubberSit.setIconSize(20)
     self.__rubberDif.setColor(color)
     self.__rubberDif.setIcon(2)
     self.__rubberDif.setIconSize(20)
Пример #32
0
 def __onDstPreview(self):
     """
     When the Preview button in Duplicate Distance Dialog is pushed
     """
     if self.__rubberBand is not None:
         self.canvas().scene().removeItem(self.__rubberBand)
         self.__rubberBand = None
     if self.__dstDlg.distanceEdit().text() is not None:
         distance = float(self.__dstDlg.distanceEdit().text())
         if self.__dstDlg.directionCheck().checkState():
             distance = -distance
         if self.__layer.geometryType() == QGis.Polygon:
             self.__polygonPreview(distance)
         else:
             self.__linePreview(distance)
         color = QColor("red")
         color.setAlphaF(0.78)
         self.__rubberBand.setWidth(2)
         self.__rubberBand.setColor(color)
         self.__rubberBand.setLineStyle(Qt.DotLine)
         self.__rubberBand.show()
Пример #33
0
    def paint(self, painter, option, widget):
        drawingRect = self.model.rect.adjusted(2, 2, -2, -2)

        painter.save()
        painter.setRenderHint(QPainter.Antialiasing, True)
        if self.isSelected():
            pen = QPen(Qt.DashLine)
            pen.setWidth(2)
            pen.setColor(Qt.blue)
        else:
            pen = QPen(Qt.SolidLine)
            pen.setWidth(1)
            pen.setColor(Qt.gray)
        painter.setPen(pen)
        color = QColor(self.model.color)
        color.setAlphaF(self.model.accu)
        painter.setBrush(QBrush(color))
        painter.drawRoundedRect(drawingRect, 5, 5)
        painter.setPen(Qt.SolidLine)
        painter.drawText(drawingRect, str(self.model.classid),
                         QTextOption(Qt.AlignCenter))
        painter.restore()
Пример #34
0
 def get_bgcolor(self, index):
     """Background color depending on value"""
     if index.column() == 0:
         color = QColor(Qt.lightGray)
         color.setAlphaF(.05)
     elif index.column() < 3:
         color = QColor(Qt.lightGray)
         color.setAlphaF(.2)
     else:
         color = QColor(Qt.lightGray)
         color.setAlphaF(.3)
     return color
Пример #35
0
 def get_bgcolor(self, index):
     """Background color depending on value"""
     if index.column() == 0:
         color = QColor(Qt.lightGray)
         color.setAlphaF(.05)
     elif index.column() < 3:
         color = QColor(Qt.lightGray)
         color.setAlphaF(.2)
     else:
         color = QColor(Qt.lightGray)
         color.setAlphaF(.3)
     return color
Пример #36
0
 def cadCanvasReleaseEvent(self, event):
     """
     When the mouse is clicked
     :param event: mouse event
     """
     if not self.__isEditing and not self.__findVertex and not self.__onMove:
         found_features = self.__layer.selectedFeatures()
         if len(found_features) > 0:
             if len(found_features) > 1:
                 self.__iface.messageBar().pushMessage(
                     QCoreApplication.translate("VDLTools",
                                                "One feature at a time"),
                     level=QgsMessageBar.INFO)
                 return
             self.__selectedFeature = found_features[0]
             if self.__layer.geometryType() != QGis.Point:
                 self.__iface.messageBar().pushMessage(
                     QCoreApplication.translate(
                         "VDLTools",
                         "Select vertex for moving (ESC to undo)"),
                     level=QgsMessageBar.INFO,
                     duration=3)
                 self.__findVertex = True
                 self.setMode(self.CaptureLine)
                 self.__rubberBand = QgsRubberBand(self.canvas(),
                                                   QGis.Point)
             else:
                 self.setMode(self.CaptureNone)
                 self.__onMove = True
     elif self.__findVertex:
         self.__findVertex = False
         self.setMode(self.CaptureNone)
         closest = self.__selectedFeature.geometry().closestVertex(
             event.mapPoint())
         self.__selectedVertex = closest[1]
         self.__onMove = True
     elif self.__onMove:
         self.__onMove = False
         mapPoint = event.mapPoint()
         match = Finder.snap(event.mapPoint(), self.canvas())
         if match.hasVertex() or match.hasEdge():
             mapPoint = match.point()
             if match.hasEdge():
                 intersection = Finder.snapCurvedIntersections(
                     mapPoint, self.canvas(), self)
                 if intersection is not None:
                     mapPoint = intersection
         self.__isEditing = True
         if self.__rubberBand is not None:
             self.__rubberBand.reset()
         if self.__layer.geometryType() == QGis.Polygon:
             self.__polygonPreview(mapPoint)
         elif self.__layer.geometryType() == QGis.Line:
             self.__linePreview(mapPoint)
         else:
             self.__pointPreview(mapPoint)
         color = QColor("red")
         color.setAlphaF(0.78)
         self.__rubberBand.setColor(color)
         if self.__layer.geometryType() != QGis.Point:
             self.__rubberBand.setWidth(2)
             self.__rubberBand.setLineStyle(Qt.DotLine)
         else:
             self.__rubberBand.setIcon(4)
             self.__rubberBand.setIconSize(20)
         self.__confDlg = MoveConfirmDialog()
         self.__confDlg.rejected.connect(self.__cancel)
         self.__confDlg.moveButton().clicked.connect(self.__onConfirmMove)
         self.__confDlg.copyButton().clicked.connect(self.__onConfirmCopy)
         self.__confDlg.cancelButton().clicked.connect(
             self.__onConfirmCancel)
         self.__confDlg.show()
Пример #37
0
    def cadCanvasMoveEvent(self, event):
        """
        When the mouse is moved
        :param event: mouse event
        """

        if type(event) == QMoveEvent:
            map_point = self.toMapCoordinates(event.pos())
        else:
            map_point = event.mapPoint()

        if not self.__isEditing and not self.__findVertex and not self.__onMove:
            laySettings = QgsSnappingUtils.LayerConfig(self.__layer,
                                                       QgsPointLocator.All, 10,
                                                       QgsTolerance.Pixels)
            f_l = Finder.findClosestFeatureAt(map_point, self.canvas(),
                                              [laySettings])
            if f_l is not None and self.__lastFeatureId != f_l[0].id():
                self.__lastFeatureId = f_l[0].id()
                self.__layer.setSelectedFeatures([f_l[0].id()])
            if f_l is None:
                self.__layer.removeSelection()
                self.__lastFeatureId = None
        elif self.__findVertex:
            if self.__rubberBand is not None:
                self.__rubberBand.reset()
            closest = self.__selectedFeature.geometry().closestVertex(
                map_point)
            color = QColor("red")
            color.setAlphaF(0.78)
            self.__rubberBand.setColor(color)
            self.__rubberBand.setIcon(4)
            self.__rubberBand.setIconSize(20)
            self.__rubberBand.setToGeometry(
                QgsGeometry().fromPoint(closest[0]), None)
        elif self.__onMove:
            if self.__rubberBand is not None:
                self.__rubberBand.reset()
            if self.__layer.geometryType() == QGis.Polygon:
                self.__polygonPreview(map_point)
            elif self.__layer.geometryType() == QGis.Line:
                self.__linePreview(map_point)
            else:
                self.__pointPreview(map_point)
            color = QColor("red")
            color.setAlphaF(0.78)
            self.__rubberBand.setColor(color)
            self.__rubberBand.setWidth(2)
            if self.__layer.geometryType() != QGis.Point:
                self.__rubberBand.setLineStyle(Qt.DotLine)
            else:
                self.__rubberBand.setIcon(4)
                self.__rubberBand.setIconSize(8)
            if self.__rubberSnap is not None:
                self.__rubberSnap.reset()
            else:
                self.__rubberSnap = QgsRubberBand(self.canvas(), QGis.Point)
            self.__rubberSnap.setColor(color)
            self.__rubberSnap.setWidth(2)
            self.__rubberSnap.setIconSize(20)
            match = Finder.snap(map_point, self.canvas())
            if match.hasVertex() or match.hasEdge():
                point = match.point()
                if match.hasVertex():
                    if match.layer():
                        self.__rubberSnap.setIcon(4)
                    else:
                        self.__rubberSnap.setIcon(1)
                if match.hasEdge():
                    intersection = Finder.snapCurvedIntersections(
                        point, self.canvas(), self)
                    if intersection is not None:
                        self.__rubberSnap.setIcon(1)
                        point = intersection
                    else:
                        self.__rubberSnap.setIcon(3)
                self.__rubberSnap.setToGeometry(QgsGeometry().fromPoint(point),
                                                None)
Пример #38
0
 def paintEvent(self, event):
     painter = QPainter(self)
     color = QColor(Qt.darkGray)
     color.setAlphaF(.5)
     painter.fillRect(event.rect(), color)
Пример #39
0
    def load(self):
        settings = QSettings()

        settings.beginGroup("GraphicParameters")
# First, parameters for normal points
        self._point_size = None
        try:
            _point_size = float(settings.value("PointSize"))
        except (ValueError, TypeError):
            _point_size = 5.0
        self.point_size = _point_size
        self._point_thickness = None
        try:
            _point_thickness = int(settings.value("PointThickness"))
        except (ValueError, TypeError):
            _point_thickness = 0
        self.point_thickness = _point_thickness
        self._point_color = None
        _point_color = QColor(settings.value("PointColor"))
        if not _point_color.isValid():
            _point_color = QColor(Qt.red)
        self.point_color = _point_color
        _selected_point_color = QColor(settings.value("SelectedPointColor"))
        if not _selected_point_color.isValid():
            _selected_point_color = QColor(255, 128, 128, 255)
        self._selected_point_color = _selected_point_color
        _new_point_color = QColor(settings.value("NewPointColor"))
        if not _new_point_color.isValid():
            _new_point_color = QColor(Qt.blue)
        self._new_point_color = None
        self.new_point_color = _new_point_color

# Parameter for cells
        self._cell_size = None
        try:
            _cell_size = float(settings.value("CellSize"))
        except (ValueError, TypeError):
            _cell_size = 5.0
        self.cell_size = _cell_size
        self._cell_thickness = None
        try:
            _cell_thickness = int(settings.value("CellThickness"))
        except (ValueError, TypeError):
            _cell_thickness = 1
        self.cell_thickness = _cell_thickness
        self._cell_color = None
        _cell_color = QColor(settings.value("CellColor"))
        if not _cell_color.isValid():
            _cell_color = QColor(Qt.darkCyan)
            _cell_color.setAlphaF(0.5)
        self.cell_color = _cell_color

        self._selected_cell_color = None
        _selected_cell_color = QColor(settings.value("SelectedCellColor"))
        if not _selected_cell_color.isValid():
            _selected_cell_color = QColor(Qt.yellow)
            _selected_cell_color.setAlphaF(0.5)
        self.selected_cell_color = _selected_cell_color

        self._division_wall_color = None
        _division_wall_color = QColor(settings.value("DivisionWallColor"))
        if not _division_wall_color.isValid():
            _division_wall_color = QColor(255, 85, 0)
            _division_wall_color.setAlphaF(0.8)
        self.division_wall_color = _division_wall_color

# Then, parameters for old points
        try:
            self._old_point_size = float(settings.value("OldPointSize"))
        except (ValueError, TypeError):
            self._old_point_size = 5.0
        try:
            self._old_point_thickness = int(settings.value("OldPointThickness"))
        except (ValueError, TypeError):
            self._old_point_thickness = 0
        self._old_point_color = None
        self._old_point_color = QColor(settings.value("OldPointColor"))
        if not self._old_point_color.isValid():
            self._old_point_color = QColor(Qt.yellow)
        self._old_point_matching_color = QColor(settings.value("OldPointMatchingColor"))
        if not self._old_point_matching_color.isValid():
            self._old_point_matching_color = QColor(Qt.darkYellow)
        self._show_id = toBool(settings.value("ShowId", 'false'))
# Parameters for arrow
        try:
            self._arrow_line_size = float(settings.value("ArrowLineSize"))
        except (ValueError, TypeError):
            self._arrow_line_size = 2
        try:
            self._arrow_head_size = float(settings.value("ArrowHeadSize"))
        except (ValueError, TypeError):
            self._arrow_head_size = .1
        self._arrow_color = QColor(settings.value("ArrowColor"))
        if not self._arrow_color.isValid():
            self._arrow_color = QColor(Qt.lightGray)
        self._draw_arrow = toBool(settings.value("DrawArrow", 'true'))
        self._show_template = toBool(settings.value("ShowTemplate", 'false'))
        self._template_color = QColor(settings.value("TemplateColor"))
        if not self._template_color.isValid():
            self._template_color = QColor(255, 0, 0, 100)
        self._search_color = QColor(settings.value("SearchColor"))
        if not self._search_color.isValid():
            self._search_color = QColor(255, 0, 255, 100)
        settings.endGroup()

# The search parameters
        settings.beginGroup("SearchParameters")
        try:
            self._template_size = int(settings.value("TemplateSize"))
        except (ValueError, TypeError):
            self._template_size = 10
        s = self._template_size
        self.template_rect = QRectF(-s, -s, 2*s, 2*s)
        try:
            self._search_size = int(settings.value("SearchSize"))
        except (ValueError, TypeError):
            self._search_size = 50
        s = self._search_size
        self.search_rect = QRectF(-s, -s, 2*s, 2*s)
        self._estimate = toBool(settings.value("Estimate", 'false'))
        try:
            self._filter_size_ratio = float(settings.value("FilterSizeRatio"))
        except (ValueError, TypeError):
            self._filter_size_ratio = .5
        settings.endGroup()

        settings.beginGroup("GUI")
        self._show_vectors = toBool(settings.value("ShowVectors", 'true'))
        self._link_views = toBool(settings.value("LinkViews", 'true'))
        try:
            cache_size = int(settings.value("CacheSize"))
        except (ValueError, TypeError):
            cache_size = 200
        self.cache_size = cache_size
        self._last_dir = path(settings.value("LastsDir", "."))
        self._use_OpenGL = toBool(settings.value("UseOpenGL", 'false'))
        settings.beginGroup("RecentProjects")
        try:
            numproj = int(settings.value("NumberOfProjects"))
        except (ValueError, TypeError):
            numproj = 0
        self._recent_projects = []
        if numproj > 0:
            for i in range(numproj):
                name = "Project%d" % i
                value = path(settings.value(name))
                self._recent_projects.append(value)
        try:
            self._max_number_of_projects = int(settings.value("MaxNumberOfProjects"))
        except (ValueError, TypeError):
            self._max_number_of_projects = 5
        settings.endGroup()
        settings.endGroup()

# The plotting parameters
        settings.beginGroup("PlottingParameters")
        settings.beginGroup("Ellipsis")
        try:
            self._ellipsis_scaling = float(settings.value("Scaling", 1.0))
        except (ValueError, TypeError):
            self._ellipsis_scaling = 1.0
        self._ellipsis_color = QColor(settings.value("Color"))
        if not self._ellipsis_color.isValid():
            self._ellipsis_color = QColor(0, 0, 0)
        try:
            self._ellipsis_thickness = int(settings.value("Thickness", 0))
        except (ValueError, TypeError):
            self._ellipsis_thickness = 0
        try:
            self._ellipsis_min_anisotropy = float(settings.value("MinAnisotropy", 1e-3))
        except (ValueError, TypeError):
            self._ellipsis_min_anisotropy = 1e-3
        self._ellipsis_positive_color = QColor(settings.value("PositiveColor"))
        if not self._ellipsis_positive_color.isValid():
            self._ellipsis_positive_color = QColor(0, 0, 255)
        self._ellipsis_negative_color = QColor(settings.value("NegativeColor"))
        if not self._ellipsis_negative_color.isValid():
            self._ellipsis_negative_color = QColor(255, 0, 0)
        self._ellipsis_plot = toBool(settings.value("Plot", 'false'))
        self._ellipsis_scale_axis = toBool(settings.value("ScaleAxis", 'false'))
        settings.endGroup()
        settings.endGroup()
        self._point_editable = True
        self._point_selectable = True
        self._cell_editable = False
Пример #40
0
 def cadCanvasReleaseEvent(self, event):
     """
     When the mouse is clicked
     :param event: mouse event
     """
     if not self.__isEditing and not self.__findVertex and not self.__onMove:
         found_features = self.__layer.selectedFeatures()
         if len(found_features) > 0:
             if len(found_features) > 1:
                 self.__iface.messageBar().pushMessage(
                     QCoreApplication.translate("VDLTools", "One feature at a time"), level=QgsMessageBar.INFO)
                 return
             self.__selectedFeature = found_features[0]
             if self.__layer.geometryType() != QGis.Point:
                 self.__iface.messageBar().pushMessage(
                     QCoreApplication.translate("VDLTools",
                                                "Select vertex for moving (ESC to undo)"),
                     level=QgsMessageBar.INFO, duration=3)
                 self.__findVertex = True
                 self.setMode(self.CaptureLine)
                 self.__rubberBand = QgsRubberBand(self.canvas(), QGis.Point)
             else:
                 self.setMode(self.CaptureNone)
                 self.__onMove = True
     elif self.__findVertex:
         self.__findVertex = False
         self.setMode(self.CaptureNone)
         closest = self.__selectedFeature.geometry().closestVertex(event.mapPoint())
         self.__selectedVertex = closest[1]
         self.__onMove = True
     elif self.__onMove:
         self.__onMove = False
         mapPoint = event.mapPoint()
         match = Finder.snap(event.mapPoint(), self.canvas())
         if match.hasVertex() or match.hasEdge():
             mapPoint = match.point()
             if match.hasEdge():
                 intersection = Finder.snapCurvedIntersections(mapPoint, self.canvas(), self)
                 if intersection is not None:
                     mapPoint = intersection
         self.__isEditing = True
         if self.__rubberBand is not None:
             self.__rubberBand.reset()
         if self.__layer.geometryType() == QGis.Polygon:
             self.__polygonPreview(mapPoint)
         elif self.__layer.geometryType() == QGis.Line:
             self.__linePreview(mapPoint)
         else:
             self.__pointPreview(mapPoint)
         color = QColor("red")
         color.setAlphaF(0.78)
         self.__rubberBand.setColor(color)
         if self.__layer.geometryType() != QGis.Point:
             self.__rubberBand.setWidth(2)
             self.__rubberBand.setLineStyle(Qt.DotLine)
         else:
             self.__rubberBand.setIcon(4)
             self.__rubberBand.setIconSize(20)
         self.__confDlg = MoveConfirmDialog()
         self.__confDlg.rejected.connect(self.__cancel)
         self.__confDlg.moveButton().clicked.connect(self.__onConfirmMove)
         self.__confDlg.copyButton().clicked.connect(self.__onConfirmCopy)
         self.__confDlg.cancelButton().clicked.connect(self.__onConfirmCancel)
         self.__confDlg.show()
Пример #41
0
    def cadCanvasMoveEvent(self, event):
        """
        When the mouse is moved
        :param event: mouse event
        """

        if type(event) == QMoveEvent:
            map_point = self.toMapCoordinates(event.pos())
        else:
            map_point = event.mapPoint()

        if not self.__isEditing and not self.__findVertex and not self.__onMove:
            laySettings = QgsSnappingUtils.LayerConfig(self.__layer, QgsPointLocator.All, 10,
                                                       QgsTolerance.Pixels)
            f_l = Finder.findClosestFeatureAt(map_point, self.canvas(), [laySettings])
            if f_l is not None and self.__lastFeatureId != f_l[0].id():
                self.__lastFeatureId = f_l[0].id()
                self.__layer.setSelectedFeatures([f_l[0].id()])
            if f_l is None:
                self.__layer.removeSelection()
                self.__lastFeatureId = None
        elif self.__findVertex:
            if self.__rubberBand is not None:
                self.__rubberBand.reset()
            closest = self.__selectedFeature.geometry().closestVertex(map_point)
            color = QColor("red")
            color.setAlphaF(0.78)
            self.__rubberBand.setColor(color)
            self.__rubberBand.setIcon(4)
            self.__rubberBand.setIconSize(20)
            self.__rubberBand.setToGeometry(QgsGeometry().fromPoint(closest[0]), None)
        elif self.__onMove:
            if self.__rubberBand is not None:
                self.__rubberBand.reset()
            if self.__layer.geometryType() == QGis.Polygon:
                self.__polygonPreview(map_point)
            elif self.__layer.geometryType() == QGis.Line:
                self.__linePreview(map_point)
            else:
                self.__pointPreview(map_point)
            color = QColor("red")
            color.setAlphaF(0.78)
            self.__rubberBand.setColor(color)
            self.__rubberBand.setWidth(2)
            if self.__layer.geometryType() != QGis.Point:
                self.__rubberBand.setLineStyle(Qt.DotLine)
            else:
                self.__rubberBand.setIcon(4)
                self.__rubberBand.setIconSize(8)
            if self.__rubberSnap is not None:
                self.__rubberSnap.reset()
            else:
                self.__rubberSnap = QgsRubberBand(self.canvas(), QGis.Point)
            self.__rubberSnap.setColor(color)
            self.__rubberSnap.setWidth(2)
            self.__rubberSnap.setIconSize(20)
            match = Finder.snap(map_point, self.canvas())
            if match.hasVertex() or match.hasEdge():
                point = match.point()
                if match.hasVertex():
                    if match.layer():
                        self.__rubberSnap.setIcon(4)
                    else:
                        self.__rubberSnap.setIcon(1)
                if match.hasEdge():
                    intersection = Finder.snapCurvedIntersections(point, self.canvas(), self)
                    if intersection is not None:
                        self.__rubberSnap.setIcon(1)
                        point = intersection
                    else:
                        self.__rubberSnap.setIcon(3)
                self.__rubberSnap.setToGeometry(QgsGeometry().fromPoint(point), None)
Пример #42
0
 def canvasReleaseEvent(self, event):
     """
     When the mouse is clicked
     :param event: mouse event
     """
     if not self.__isEditing and not self.__findVertex and not self.__onMove:
         found_features = self.__layer.selectedFeatures()
         if len(found_features) > 0:
             if len(found_features) < 1:
                 self.__iface.messageBar().pushMessage(
                     QCoreApplication.translate("VDLTools",
                                                "One feature at a time"),
                     level=QgsMessageBar.INFO)
                 return
             self.__selectedFeature = found_features[0]
             if self.__layer.geometryType() != QGis.Point:
                 self.__findVertex = 1
                 self.__rubberBand = QgsRubberBand(self.__canvas,
                                                   QGis.Point)
             else:
                 self.__onMove = 1
                 # self.__snapperList, self.__layerList = Finder.updateSnapperList(self.__iface)
     elif self.__findVertex:
         self.__findVertex = 0
         closest = self.__selectedFeature.geometry().closestVertex(
             event.mapPoint())
         self.__selectedVertex = closest[1]
         self.__onMove = 1
         # self.__snapperList, self.__layerList = Finder.updateSnapperList(self.__iface)
     elif self.__onMove:
         self.__onMove = 0
         mapPoint = event.mapPoint()
         match = Finder.snap(event.mapPoint(), self.__canvas, True)
         if match.hasVertex() or match.hasEdge():
             mapPoint = match.point()
         # snappedIntersection = Finder.snapToIntersection(event.mapPoint(), self, self.__layerList)
         # if snappedIntersection is None:
         #     snappedPoint = Finder.snapToLayers(event.mapPoint(), self.__snapperList)
         #     if snappedPoint is not None:
         #         mapPoint = snappedPoint
         # else:
         #     mapPoint = snappedIntersection
         self.__isEditing = 1
         if self.__rubberBand:
             self.__rubberBand.reset()
         if self.__layer.geometryType() == QGis.Polygon:
             self.__polygonPreview(mapPoint)
         elif self.__layer.geometryType() == QGis.Line:
             self.__linePreview(mapPoint)
         else:
             self.__pointPreview(mapPoint)
         color = QColor("red")
         color.setAlphaF(0.78)
         self.__rubberBand.setColor(color)
         if self.__layer.geometryType() != QGis.Point:
             self.__rubberBand.setWidth(2)
             self.__rubberBand.setLineStyle(Qt.DotLine)
         else:
             self.__rubberBand.setIcon(4)
             self.__rubberBand.setIconSize(20)
         self.__confDlg = MoveConfirmDialog()
         self.__confDlg.moveButton().clicked.connect(self.__onConfirmMove)
         self.__confDlg.copyButton().clicked.connect(self.__onConfirmCopy)
         self.__confDlg.cancelButton().clicked.connect(
             self.__onConfirmClose)
         self.__confDlg.show()
Пример #43
0
 def canvasMoveEvent(self, event):
     """
     When the mouse is moved
     :param event: mouse event
     """
     if not self.__isEditing and not self.__findVertex and not self.__onMove:
         f = Finder.findClosestFeatureAt(event.mapPoint(),
                                         self.__layerConfig, self)
         if f is not None and self.__lastFeatureId != f.id():
             self.__lastFeatureId = f.id()
             self.__layer.setSelectedFeatures([f.id()])
         if f is None:
             self.__layer.removeSelection()
             self.__lastFeatureId = None
     elif self.__findVertex:
         self.__rubberBand.reset()
         closest = self.__selectedFeature.geometry().closestVertex(
             event.mapPoint())
         color = QColor("red")
         color.setAlphaF(0.78)
         self.__rubberBand.setColor(color)
         self.__rubberBand.setIcon(4)
         self.__rubberBand.setIconSize(20)
         self.__rubberBand.setToGeometry(
             QgsGeometry().fromPoint(closest[0]), None)
     elif self.__onMove:
         if self.__rubberBand:
             self.__rubberBand.reset()
         if self.__layer.geometryType() == QGis.Polygon:
             self.__polygonPreview(event.mapPoint())
         elif self.__layer.geometryType() == QGis.Line:
             self.__linePreview(event.mapPoint())
         else:
             self.__pointPreview(event.mapPoint())
         color = QColor("red")
         color.setAlphaF(0.78)
         self.__rubberBand.setColor(color)
         self.__rubberBand.setWidth(2)
         if self.__layer.geometryType() != QGis.Point:
             self.__rubberBand.setLineStyle(Qt.DotLine)
         else:
             self.__rubberBand.setIcon(4)
             self.__rubberBand.setIconSize(20)
         if self.__rubberSnap:
             self.__rubberSnap.reset()
         else:
             self.__rubberSnap = QgsRubberBand(self.__canvas, QGis.Point)
         self.__rubberSnap.setColor(color)
         self.__rubberSnap.setWidth(2)
         self.__rubberSnap.setIconSize(20)
         match = Finder.snap(event.mapPoint(), self.__canvas, True)
         if match.hasVertex():
             if match.layer():
                 self.__rubberSnap.setIcon(4)
                 self.__rubberSnap.setToGeometry(
                     QgsGeometry().fromPoint(match.point()), None)
             else:
                 self.__rubberSnap.setIcon(1)
                 self.__rubberSnap.setToGeometry(
                     QgsGeometry().fromPoint(match.point()), None)
         if match.hasEdge():
             self.__rubberSnap.setIcon(3)
             self.__rubberSnap.setToGeometry(
                 QgsGeometry().fromPoint(match.point()), None)
Пример #44
0
    def load(self):
        settings = QSettings()

        settings.beginGroup("GraphicParameters")
        # First, parameters for normal points
        self._point_size = None
        try:
            _point_size = float(settings.value("PointSize"))
        except (ValueError, TypeError):
            _point_size = 5.0
        self.point_size = _point_size
        self._point_thickness = None
        try:
            _point_thickness = int(settings.value("PointThickness"))
        except (ValueError, TypeError):
            _point_thickness = 0
        self.point_thickness = _point_thickness
        self._point_color = None
        _point_color = QColor(settings.value("PointColor"))
        if not _point_color.isValid():
            _point_color = QColor(Qt.red)
        self.point_color = _point_color
        _selected_point_color = QColor(settings.value("SelectedPointColor"))
        if not _selected_point_color.isValid():
            _selected_point_color = QColor(255, 128, 128, 255)
        self._selected_point_color = _selected_point_color
        _new_point_color = QColor(settings.value("NewPointColor"))
        if not _new_point_color.isValid():
            _new_point_color = QColor(Qt.blue)
        self._new_point_color = None
        self.new_point_color = _new_point_color

        # Parameter for cells
        self._cell_size = None
        try:
            _cell_size = float(settings.value("CellSize"))
        except (ValueError, TypeError):
            _cell_size = 5.0
        self.cell_size = _cell_size
        self._cell_thickness = None
        try:
            _cell_thickness = int(settings.value("CellThickness"))
        except (ValueError, TypeError):
            _cell_thickness = 1
        self.cell_thickness = _cell_thickness
        self._cell_color = None
        _cell_color = QColor(settings.value("CellColor"))
        if not _cell_color.isValid():
            _cell_color = QColor(Qt.darkCyan)
            _cell_color.setAlphaF(0.5)
        self.cell_color = _cell_color

        self._selected_cell_color = None
        _selected_cell_color = QColor(settings.value("SelectedCellColor"))
        if not _selected_cell_color.isValid():
            _selected_cell_color = QColor(Qt.yellow)
            _selected_cell_color.setAlphaF(0.5)
        self.selected_cell_color = _selected_cell_color

        self._division_wall_color = None
        _division_wall_color = QColor(settings.value("DivisionWallColor"))
        if not _division_wall_color.isValid():
            _division_wall_color = QColor(255, 85, 0)
            _division_wall_color.setAlphaF(0.8)
        self.division_wall_color = _division_wall_color

        # Then, parameters for old points
        try:
            self._old_point_size = float(settings.value("OldPointSize"))
        except (ValueError, TypeError):
            self._old_point_size = 5.0
        try:
            self._old_point_thickness = int(
                settings.value("OldPointThickness"))
        except (ValueError, TypeError):
            self._old_point_thickness = 0
        self._old_point_color = None
        self._old_point_color = QColor(settings.value("OldPointColor"))
        if not self._old_point_color.isValid():
            self._old_point_color = QColor(Qt.yellow)
        self._old_point_matching_color = QColor(
            settings.value("OldPointMatchingColor"))
        if not self._old_point_matching_color.isValid():
            self._old_point_matching_color = QColor(Qt.darkYellow)
        self._show_id = toBool(settings.value("ShowId", 'false'))
        # Parameters for arrow
        try:
            self._arrow_line_size = float(settings.value("ArrowLineSize"))
        except (ValueError, TypeError):
            self._arrow_line_size = 2
        try:
            self._arrow_head_size = float(settings.value("ArrowHeadSize"))
        except (ValueError, TypeError):
            self._arrow_head_size = .1
        self._arrow_color = QColor(settings.value("ArrowColor"))
        if not self._arrow_color.isValid():
            self._arrow_color = QColor(Qt.lightGray)
        self._draw_arrow = toBool(settings.value("DrawArrow", 'true'))
        self._show_template = toBool(settings.value("ShowTemplate", 'false'))
        self._template_color = QColor(settings.value("TemplateColor"))
        if not self._template_color.isValid():
            self._template_color = QColor(255, 0, 0, 100)
        self._search_color = QColor(settings.value("SearchColor"))
        if not self._search_color.isValid():
            self._search_color = QColor(255, 0, 255, 100)
        settings.endGroup()

        # The search parameters
        settings.beginGroup("SearchParameters")
        try:
            self._template_size = int(settings.value("TemplateSize"))
        except (ValueError, TypeError):
            self._template_size = 10
        s = self._template_size
        self.template_rect = QRectF(-s, -s, 2 * s, 2 * s)
        try:
            self._search_size = int(settings.value("SearchSize"))
        except (ValueError, TypeError):
            self._search_size = 50
        s = self._search_size
        self.search_rect = QRectF(-s, -s, 2 * s, 2 * s)
        self._estimate = toBool(settings.value("Estimate", 'false'))
        try:
            self._filter_size_ratio = float(settings.value("FilterSizeRatio"))
        except (ValueError, TypeError):
            self._filter_size_ratio = .5
        settings.endGroup()

        settings.beginGroup("GUI")
        self._show_vectors = toBool(settings.value("ShowVectors", 'true'))
        self._link_views = toBool(settings.value("LinkViews", 'true'))
        try:
            cache_size = int(settings.value("CacheSize"))
        except (ValueError, TypeError):
            cache_size = 200
        self.cache_size = cache_size
        self._last_dir = path(settings.value("LastsDir", "."))
        self._use_OpenGL = toBool(settings.value("UseOpenGL", 'false'))
        settings.beginGroup("RecentProjects")
        try:
            numproj = int(settings.value("NumberOfProjects"))
        except (ValueError, TypeError):
            numproj = 0
        self._recent_projects = []
        if numproj > 0:
            for i in range(numproj):
                name = "Project%d" % i
                value = path(settings.value(name))
                self._recent_projects.append(value)
        try:
            self._max_number_of_projects = int(
                settings.value("MaxNumberOfProjects"))
        except (ValueError, TypeError):
            self._max_number_of_projects = 5
        settings.endGroup()
        settings.endGroup()

        # The plotting parameters
        settings.beginGroup("PlottingParameters")
        settings.beginGroup("Ellipsis")
        try:
            self._ellipsis_scaling = float(settings.value("Scaling", 1.0))
        except (ValueError, TypeError):
            self._ellipsis_scaling = 1.0
        self._ellipsis_color = QColor(settings.value("Color"))
        if not self._ellipsis_color.isValid():
            self._ellipsis_color = QColor(0, 0, 0)
        try:
            self._ellipsis_thickness = int(settings.value("Thickness", 0))
        except (ValueError, TypeError):
            self._ellipsis_thickness = 0
        try:
            self._ellipsis_min_anisotropy = float(
                settings.value("MinAnisotropy", 1e-3))
        except (ValueError, TypeError):
            self._ellipsis_min_anisotropy = 1e-3
        self._ellipsis_positive_color = QColor(settings.value("PositiveColor"))
        if not self._ellipsis_positive_color.isValid():
            self._ellipsis_positive_color = QColor(0, 0, 255)
        self._ellipsis_negative_color = QColor(settings.value("NegativeColor"))
        if not self._ellipsis_negative_color.isValid():
            self._ellipsis_negative_color = QColor(255, 0, 0)
        self._ellipsis_plot = toBool(settings.value("Plot", 'false'))
        self._ellipsis_scale_axis = toBool(settings.value(
            "ScaleAxis", 'false'))
        settings.endGroup()
        settings.endGroup()
        self._point_editable = True
        self._point_selectable = True
        self._cell_editable = False
Пример #45
0
 def paintEvent(self, event):
     painter = QPainter(self)
     color = QColor(Qt.darkGray)
     color.setAlphaF(.5)
     painter.fillRect(event.rect(), color)