def ramp_color_rgb(values, feature, parent):
    """
        Return only the rgb part of a defined color ramp
        
        <p><h4>Syntax</h4>
        ramp_color_rgb(<i>ramp_name,value</i>)</p>

        <p><h4>Arguments</h4>
        <i>  ramp_name</i> &rarr; the name of the color ramp as a string, for example 'Spectral'.<br>
        <i>  value</i> &rarr; the position on the ramp to select the color from as a real number between 0 and 1.<br></p>
        
        <p><h4>Example</h4>
        <!-- Show example of function.-->
             ramp_color_rgb('Spectral',0.3) &rarr; '253,190,115'</p>
        
        <p><h4>Note:</h4>
        The color ramps available vary between QGIS installations.  This function
        may not give the expected results if you move your Quantum project.
        </p>
    """
    ramp_name = values[0]
    ramp_position = values[1]

    ramp = QgsStyleV2.defaultStyle().colorRampRef(ramp_name)
    if not ramp:
        parent.setEvalErrorString(QObject.tr('"{}" is not a valid color ramp'.format(ramp_name)))
        return QColor(0, 0, 0).name()

    value, error = getFloat(ramp_position)
    if error:
        parent.setEvalErrorString(error)

    color = ramp.color(value)
    return "{},{},{}".format(color.red(), color.green(), color.blue())
Beispiel #2
0
    def on_mPageStyleButton_clicked(self):
        if self.timeStart != 0:
            self.timeEnd = time.time()
            print self.timeEnd
            if self.timeEnd - self.timeStart <= 2:
                self.timeStart = 0
                return
        if ( not self.mComposition ):
            return

        coverageLayer = None
        # use the atlas coverage layer, if any
        if ( self.mComposition.atlasComposition().enabled() ):
            coverageLayer = self.mComposition.atlasComposition().coverageLayer()

        newSymbol = self.mComposition.pageStyleSymbol().clone()
        if ( not newSymbol ):
            newSymbol = QgsFillSymbolV2()
        d = QgsSymbolV2SelectorDialog( newSymbol, QgsStyleV2.defaultStyle(), coverageLayer, self)
        d.setExpressionContext( self.mComposition.createExpressionContext() )

        if ( d.exec_() == QDialog.Accepted ):

            self.mComposition.setPageStyleSymbol( newSymbol )
            self.updatePageStyle()
        self.timeStart = time.time()
Beispiel #3
0
def ramp_color_rgb(values, feature, parent):
    """
        Return only the rgb part of a defined color ramp
        
        <h4>Syntax</h4>
        <p>ramp_color_rgb(<i>ramp_name,value</i>)</p>

        <h4>Arguments</h4>
        <p><i>  ramp_name</i> &rarr; the name of the color ramp as a string, for example 'Spectral'.<br>
        <i>  value</i> &rarr; the position on the ramp to select the color from as a real number between 0 and 1.<br></p>
        
        <h4>Example</h4>
        <p><!-- Show example of function.-->
             ramp_color_rgb('Spectral',0.3) &rarr; '253,190,115'</p>
        
        <h4>Note:</h4>
        <p>The color ramps available vary between QGIS installations.  This function
        may not give the expected results if you move your Quantum project.
        </p>
    """  
    ramp_name = values[0]
    ramp_position = values[1]
    
    ramp = QgsStyleV2.defaultStyle().colorRampRef(ramp_name)
    if not ramp:
        parent.setEvalErrorString( QObject.tr( '"{}" is not a valid color ramp'.format(ramp_name)))
        return QColor(0,0,0).name()
    
    value, error = getFloat(ramp_position)
    if error:
        parent.setEvalErrorString(error)
    
    color = ramp.color(value)
    return "{},{},{}".format(color.red(), color.green(), color.blue())
    def on_mLineStyleButton_clicked(self):
        if self.timeStart != 0:
            self.timeEnd = time.time()
            print self.timeEnd
            if self.timeEnd - self.timeStart <= 2:
                self.timeStart = 0
                return
        if (not self.mArrow):
            return

        newSymbol = self.mArrow.lineSymbol().clone()
        d = QgsSymbolV2SelectorDialog(newSymbol, QgsStyleV2.defaultStyle(),
                                      None, self)
        d.setExpressionContext(self.mArrow.createExpressionContext())

        if (d.exec_() == QDialog.Accepted):

            self.mArrow.beginCommand(QString("Arrow line style changed"))
            self.mArrow.setLineSymbol(newSymbol)
            self.updateLineSymbolMarker()
            self.mArrow.endCommand()
            self.mArrow.update()
        else:
            pass
            # delete newSymbol;
        self.timeStart = time.time()
    def on_mShapeStyleButton_clicked(self):
        if self.timeStart != 0:
            self.timeEnd = time.time()
            print self.timeEnd
            if self.timeEnd - self.timeStart <= 2:
                self.timeStart = 0
                return
        if (not self.mComposerShape):
            return

        # use the atlas coverage layer, if any
        coverageLayer = self.atlasCoverageLayer()

        newSymbol = self.mComposerShape.shapeStyleSymbol().clone()
        d = QgsSymbolV2SelectorDialog(newSymbol, QgsStyleV2.defaultStyle(),
                                      coverageLayer, self)
        d.setExpressionContext(self.mComposerShape.createExpressionContext())

        if (d.exec_() == QDialog.Accepted):

            self.mComposerShape.beginCommand(QString("Shape style changed"))
            self.mComposerShape.setShapeStyleSymbol(newSymbol)
            self.updateShapeStyle()
            self.mComposerShape.endCommand()
        self.timeStart = time.time()
Beispiel #6
0
    def __init__(self, parent, layer):
        '''
        Constructor
        '''
        QDialog.__init__(self, parent)
        self.ui = Ui_VectorLayerProPertyDialog()
        self.ui.setupUi(self)

        self.ui.txtLayerName.setText(layer.name())
        self.ui.txtLayerSource.setText(layer.source())
        self.ui.txtCrs.setText(layer.crs().authid() + " - " +
                               layer.crs().description())
        self.ui.btnCrsSelect.clicked.connect(self.selectCrs)
        self.mCrs = layer.crs()
        self.vLayer = layer
        self.ui.mOptionsListWidget.currentRowChanged.connect(
            self.changeStackWidget)
        ''' init RenderV2 Widget'''
        self.mRendererDialog = QgsRendererV2PropertiesDialog(
            self.vLayer, QgsStyleV2.defaultStyle(), True)
        self.ui.stackedWidget.insertWidget(1, self.mRendererDialog)
        self.ui.buttonBox.accepted.connect(self.OK)

        frame_Label = QFrame()
        verticalLayout_Label = QVBoxLayout(frame_Label)
        self.mLabelWidget = QgsFieldExpressionWidget()
        self.mLabelWidget.setLayer(layer)
        verticalLayout_Label.addWidget(self.mLabelWidget)

        spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum,
                                 QSizePolicy.Expanding)
        verticalLayout_Label.addItem(spacerItem)
        frame_Label.setLayout(verticalLayout_Label)
        self.ui.stackedWidget.insertWidget(2, frame_Label)
 def on_mMapMarkerButton_clicked(self):
     if ( self.mMarkerSymbol == None ):
         return
     markerSymbol = self.mMarkerSymbol.clone() 
     dlg = QgsSymbolV2SelectorDialog ( markerSymbol, QgsStyleV2.defaultStyle(), None, self )
     if ( dlg.exec_()!= QDialog.Rejected ):
         self.mMarkerSymbol = markerSymbol
         self.updateCenterIcon()
Beispiel #8
0
    def __init__(self, parent=None):
        super(MapWidget, self).__init__(parent)
        self.setupUi(self)

        self.canvas.setCanvasColor(Qt.white)
        self.canvas.enableAntiAliasing(True)
        self.canvas.setWheelAction(QgsMapCanvas.WheelZoomToMouseCursor)
        self.canvas.mapRenderer().setLabelingEngine(QgsPalLabeling())
        self.style = QgsStyleV2.defaultStyle()
        self.styledlg = None
        self.bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), self.canvas)
        self.bridge.setAutoSetupOnFirstLayer(False)
        QgsProject.instance().writeProject.connect(self.bridge.writeProject)
        QgsProject.instance().readProject.connect(self.bridge.readProject)

        self.applyStyleButton.pressed.connect(self.apply_style)
Beispiel #9
0
    def __init__(self, parent=None):
        super(MapWidget, self).__init__(parent)
        self.setupUi(self)

        self.canvas.setCanvasColor(Qt.white)
        self.canvas.enableAntiAliasing(True)
        self.canvas.setWheelAction(QgsMapCanvas.WheelZoomToMouseCursor)
        self.canvas.mapRenderer().setLabelingEngine(QgsPalLabeling())
        self.style = QgsStyleV2.defaultStyle()
        self.styledlg = None
        self.bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), self.canvas)
        self.bridge.setAutoSetupOnFirstLayer(False)
        QgsProject.instance().writeProject.connect(self.bridge.writeProject)
        QgsProject.instance().readProject.connect(self.bridge.readProject)

        self.applyStyleButton.pressed.connect(self.apply_style)
# coding:utf-8
from qgis.core import QgsStyleV2
from qgis.gui import QgsGraduatedSymbolRendererV2Widget
from qgis.utils import iface

layer = iface.activeLayer()
canvas = iface.mapCanvas()
graduated_symbol_renderer_v2_widget = QgsGraduatedSymbolRendererV2Widget(
    layer,
    QgsStyleV2.defaultStyle(),
    layer.rendererV2()
)

graduated_symbol_renderer_v2_widget.setMapCanvas(canvas)


def on_widget_changed():
    layer.setRendererV2(
        graduated_symbol_renderer_v2_widget.renderer()
    )
    if canvas.isCachingEnabled():
        layer.setCacheImage(None)
        layer.triggerRepaint()
    else:
        canvas.refresh()

graduated_symbol_renderer_v2_widget.widgetChanged.connect(on_widget_changed)
graduated_symbol_renderer_v2_widget.show()
Beispiel #11
0
# coding: utf-8
from qgis.core import QgsStyleV2
from qgis.gui import QgsSymbolV2SelectorDialog
from qgis.utils import iface

layer = iface.activeLayer()
symbol_v2_selector_dialog = QgsSymbolV2SelectorDialog(
    layer.rendererV2().symbol(),  # Symbol,
    QgsStyleV2.defaultStyle(),  # Style,
    layer,  # QgsVectorLayer
    None,  # Parent
    False  # Embedded
)

symbol_v2_selector_dialog.show()
Beispiel #12
0
# coding: utf-8
from qgis.core import QgsStyleV2
from qgis.gui import QgsRendererV2PropertiesDialog
from qgis.utils import iface

layer = iface.activeLayer()

renderer_v2_properties = QgsRendererV2PropertiesDialog(
    layer, QgsStyleV2.defaultStyle(), True)

renderer_v2_properties.show()
Beispiel #13
0
# coding: utf-8
from qgis.core import QgsStyleV2
from qgis.gui import Qgs25DRendererWidget
from qgis.utils import iface

layer = iface.activeLayer()
renderer_25D_widget = Qgs25DRendererWidget(layer, QgsStyleV2.defaultStyle(),
                                           layer.rendererV2())

renderer_25D_widget.show()

renderer_25D_widget_create = Qgs25DRendererWidget.create(
    layer, QgsStyleV2.defaultStyle(), layer.rendererV2())

renderer_25D_widget_create.show()
Beispiel #14
0
def check_pat_symbols():
    pat_xml = os.path.join(PLUGIN_DIR, 'PAT_Symbols.xml')
    if not os.path.exists(pat_xml):
        return

    loaded_date = read_setting(PLUGIN_NAME + "/PAT_SYMBOLOGY")
    if loaded_date is not None:
        loaded_date = datetime.strptime(loaded_date,'%Y-%m-%d %H:%M:%S')

    xml_date = datetime.fromtimestamp(os.path.getmtime(pat_xml)).replace(microsecond=0)

    if loaded_date is None or xml_date > loaded_date:
        style = QgsStyleV2.defaultStyle()

        # add a group if it doesn't exist.
        group_id = style.groupId('PAT')
        if group_id == 0:
            group_id = style.addGroup('PAT')

        xml_file = QFile(pat_xml)

        document = QDomDocument()
        if not document.setContent(xml_file):
            LOGGER.debug('Could not open file {}'.format(xml_file))
            return

        xml_file.close()

        document_element = document.documentElement()
        if document_element.tagName() != 'qgis_style':
            LOGGER.debug("File {} doesn't contain qgis styles".format(xml_file))
            return

        # Get all the symbols
        symbols = []
        symbols_element = document_element.firstChildElement('symbols')
        symbol_element = symbols_element.firstChildElement()
        while not symbol_element.isNull():
            if symbol_element.tagName() == 'symbol':
                symbol = QgsSymbolLayerV2Utils.loadSymbol(symbol_element)
                if symbol:
                    symbols.append({
                        'name': symbol_element.attribute('name'),
                        'symbol': symbol
                    })
            symbol_element = symbol_element.nextSiblingElement()

        # Get all the colorramps
        colorramps = []
        ramps_element = document_element.firstChildElement('colorramps')
        ramp_element = ramps_element.firstChildElement()
        while not ramp_element.isNull():
            if ramp_element.tagName() == 'colorramp':
                colorramp = QgsSymbolLayerV2Utils.loadColorRamp(ramp_element)
                if colorramp:
                    colorramps.append({
                        'name': ramp_element.attribute('name'),
                        'colorramp': colorramp
                    })

            ramp_element = ramp_element.nextSiblingElement()

        for symbol in symbols:
            if style.addSymbol(symbol['name'], symbol['symbol'], True):
                style.group(QgsStyleV2.SymbolEntity, symbol['name'], group_id)

        for colorramp in colorramps:
            if style.addColorRamp(colorramp['name'], colorramp['colorramp'], True):
                style.group(QgsStyleV2.ColorrampEntity, colorramp['name'], group_id)

        LOGGER.info(
            'Loaded {} symbols and {} colour ramps into group {}'.format(len(symbols), len(colorramps),
                                                                         style.groupName(group_id)))

        write_setting(PLUGIN_NAME + '/PAT_SYMBOLOGY', xml_date.strftime('%Y-%m-%d %H:%M:%S'))

    return
# coding: utf-8
from qgis.core import QgsStyleV2
from qgis.gui import QgsStyleV2ManagerDialog

style_v2_manager_dialog = QgsStyleV2ManagerDialog(QgsStyleV2.defaultStyle())

style_v2_manager_dialog.show()
Beispiel #16
0
# coding:utf-8
from qgis.core import QgsStyleV2
from qgis.gui import QgsSingleSymbolRendererV2Widget
from qgis.utils import iface

layer = iface.activeLayer()
canvas = iface.mapCanvas()
single_symbol_renderer_v2_widget = QgsSingleSymbolRendererV2Widget(
    layer, QgsStyleV2.defaultStyle(), layer.rendererV2())

single_symbol_renderer_v2_widget.setMapCanvas(canvas)


def on_widget_changed():
    layer.setRendererV2(single_symbol_renderer_v2_widget.renderer())
    if canvas.isCachingEnabled():
        layer.setCacheImage(None)
        layer.triggerRepaint()
    else:
        canvas.refresh()


single_symbol_renderer_v2_widget.widgetChanged.connect(on_widget_changed)
single_symbol_renderer_v2_widget.show()
 def __init__(self, collection_id):
     """Constructor of the base class."""
     BaseResourceHandler.__init__(self, collection_id)
     # Init the default style
     self.style = QgsStyle.defaultStyle()
Beispiel #18
0
# coding: utf-8
from qgis.core import QgsStyleV2
from qgis.gui import QgsStyleV2ExportImportDialog

style_v2_export_import_dialog = QgsStyleV2ExportImportDialog(
    QgsStyleV2.defaultStyle())

style_v2_export_import_dialog.show()
Beispiel #19
0
 def __init__(self, collection_id):
     """Constructor of the base class."""
     BaseResourceHandler.__init__(self, collection_id)
     # Initialize with the default style
     self.style = QgsStyle.defaultStyle()
Beispiel #20
0
# coding: utf-8
from PyQt4.QtGui import QMenu
from qgis.core import QgsStyleV2
from qgis.gui import QgsSymbolsListWidget
from qgis.utils import iface

layer = iface.activeLayer()
symbols_list_widget = QgsSymbolsListWidget(layer.rendererV2().symbol(),
                                           QgsStyleV2.defaultStyle(), QMenu(),
                                           None, layer)

symbols_list_widget.show()