def unload(self):
        QgsRendererV2Registry.instance().removeRenderer('MilStd2525Renderer')

        try:
            from milstd2525.tests import testerplugin
            from qgistester.tests import removeTestModule
            removeTestModule(testerplugin, 'MIL-STD-2525')
        except:
            pass
    def testAddRenderer(self):
        """ test adding renderers to registry """
        clearRegistry()

        # add a renderer
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(TestRenderer('test2')))
        self.assertTrue('test2' in QgsRendererV2Registry.instance().renderersList())

        # try adding it again - should be rejected due to duplicate name
        self.assertFalse(QgsRendererV2Registry.instance().addRenderer(TestRenderer('test2')))
        self.assertTrue('test2' in QgsRendererV2Registry.instance().renderersList())
    def testInstance(self):
        """ test retrieving global instance """
        self.assertTrue(QgsRendererV2Registry.instance())

        # instance should be initially populated with some default renderers
        self.assertTrue('singleSymbol' in QgsRendererV2Registry.instance().renderersList())

        # register a renderer to the singleton, to test that the same instance is always returned
        self.assertFalse('test' in QgsRendererV2Registry.instance().renderersList())
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(TestRenderer('test')))
        self.assertTrue('test' in QgsRendererV2Registry.instance().renderersList())
Beispiel #4
0
    def __init__(self, iface):
        self.iface = iface

        '''Create the renderer objects'''
        self._rendererMetadata = MilStd2525RendererMetadata()
        self._widgetWrapperFactory = SIDCWidgetWrapperFactory()

        '''
        and register them so they are shown when the user edits the layer
        symbology
        '''
        QgsRendererV2Registry.instance().addRenderer(self._rendererMetadata)
        QgsEditorWidgetRegistry.instance().registerWidget('SIDC code editor', self._widgetWrapperFactory)
    def __init__(self, iface):
        self.iface = iface
        try:
            from milstd2525.tests import testerplugin
            from qgistester.tests import addTestModule
            addTestModule(testerplugin, 'MIL-STD-2525')
        except:
            pass

        self._rendererMetadata = MilStd2525RendererMetadata()
        self._widgetWrapperFactory = SIDCWidgetWrapperFactory()

        QgsRendererV2Registry.instance().addRenderer(self._rendererMetadata)
        QgsEditorWidgetRegistry.instance().registerWidget('SIDC code editor', self._widgetWrapperFactory)
    def __init__(self, iface):
        self.iface = iface
        try:
            from .tests import testerplugin
            from qgistester.tests import addTestModule
            addTestModule(testerplugin, 'MIL-STD-2525')
        except:
            pass

        self._rendererMetadata = MilStd2525RendererMetadata()
        self._widgetWrapperFactory = SIDCWidgetWrapperFactory()

        QgsRendererV2Registry.instance().addRenderer(self._rendererMetadata)
        QgsEditorWidgetRegistry.instance().registerWidget('SIDC code editor', self._widgetWrapperFactory)
    def testRetrieveRenderer(self):
        """ test retrieving renderer by name """
        clearRegistry()

        # try non-existant renderer
        self.assertFalse(QgsRendererV2Registry.instance().rendererMetadata('test4'))

        # now add it
        r = TestRenderer('test4')
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r))

        # try retrieving it
        result = QgsRendererV2Registry.instance().rendererMetadata('test4')
        self.assertTrue(result)
        self.assertEqual(result.name(), 'test4')
    def testRenderersByLayerType(self):
        """ test retrieving compatible renderers by layer type """
        clearRegistry()

        # add some renderers
        r1 = TestRenderer('test1', QgsRendererV2AbstractMetadata.PointLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r1))
        r2 = TestRenderer('test2', QgsRendererV2AbstractMetadata.LineLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r2))
        r3 = TestRenderer('test3', QgsRendererV2AbstractMetadata.PolygonLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r3))
        r4 = TestRenderer('test4', QgsRendererV2AbstractMetadata.PointLayer | QgsRendererV2AbstractMetadata.LineLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r4))

        # make some layers
        point_layer = QgsVectorLayer("Point?field=fldtxt:string",
                                     "pointlayer", "memory")
        line_layer = QgsVectorLayer("LineString?field=fldtxt:string",
                                    "linelayer", "memory")
        polygon_layer = QgsVectorLayer("Polygon?field=fldtxt:string",
                                       "polylayer", "memory")

        # test subsets
        self.assertEqual(QgsRendererV2Registry.instance().renderersList(point_layer), ['singleSymbol', 'test1', 'test4'])
        self.assertEqual(QgsRendererV2Registry.instance().renderersList(line_layer), ['singleSymbol', 'test2', 'test4'])
        self.assertEqual(QgsRendererV2Registry.instance().renderersList(polygon_layer), ['singleSymbol', 'test3'])
    def unload(self):
        QgsRendererV2Registry.instance().removeRenderer('MilStd2525Renderer')

        removeHelpMenu("MIL-STD-2525")
        removeAboutMenu("MIL-STD-2525")

        try:
            from milstd2525.tests import testerplugin
            from qgistester.tests import removeTestModule
            removeTestModule(testerplugin, 'MIL-STD-2525')
        except:
            pass

        try:
            from lessons import removeLessonsFolder
            folder = os.path.join(pluginPath, '_lessons')
            removeLessonsFolder(folder)
        except:
            pass
    def testRenderersList(self):
        """ test getting list of renderers from registry """
        clearRegistry()

        self.assertEqual(QgsRendererV2Registry.instance().renderersList(), ['singleSymbol'])

        # add some renderers
        r1 = TestRenderer('test1', QgsRendererV2AbstractMetadata.PointLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r1))
        r2 = TestRenderer('test2', QgsRendererV2AbstractMetadata.LineLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r2))
        r3 = TestRenderer('test3', QgsRendererV2AbstractMetadata.PolygonLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r3))
        r4 = TestRenderer('test4', QgsRendererV2AbstractMetadata.PointLayer | QgsRendererV2AbstractMetadata.LineLayer)
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(r4))

        self.assertEqual(QgsRendererV2Registry.instance().renderersList(), ['singleSymbol', 'test1', 'test2', 'test3', 'test4'])

        # test subsets
        self.assertEqual(QgsRendererV2Registry.instance().renderersList(QgsRendererV2AbstractMetadata.PointLayer), ['singleSymbol', 'test1', 'test4'])
        self.assertEqual(QgsRendererV2Registry.instance().renderersList(QgsRendererV2AbstractMetadata.LineLayer), ['singleSymbol', 'test2', 'test4'])
        self.assertEqual(QgsRendererV2Registry.instance().renderersList(QgsRendererV2AbstractMetadata.PolygonLayer), ['singleSymbol', 'test3'])
        self.assertEqual(QgsRendererV2Registry.instance().renderersList(QgsRendererV2AbstractMetadata.LineLayer | QgsRendererV2AbstractMetadata.PolygonLayer), ['singleSymbol', 'test2', 'test3', 'test4'])
    def testRemoveRenderer(self):
        """ test removing renderers from registry """
        clearRegistry()

        # try removing non-existant renderer
        self.assertFalse(QgsRendererV2Registry.instance().removeRenderer('test3'))

        # now add it
        self.assertTrue(QgsRendererV2Registry.instance().addRenderer(TestRenderer('test3')))
        self.assertTrue('test3' in QgsRendererV2Registry.instance().renderersList())

        # try removing it again - should be ok this time
        self.assertTrue(QgsRendererV2Registry.instance().removeRenderer('test3'))
        self.assertFalse('test3' in QgsRendererV2Registry.instance().renderersList())

        # try removing it again - should be false since already removed
        self.assertFalse(QgsRendererV2Registry.instance().removeRenderer('test3'))
def clearRegistry():
    # clear registry to start with
    for r in QgsRendererV2Registry.instance().renderersList():
        if r == 'singleSymbol':
            continue
        QgsRendererV2Registry.instance().removeRenderer(r)
Beispiel #13
0
    def unload(self):
        '''Remove the renderer when the plugin is unloaded'''
        QgsRendererV2Registry.instance().removeRenderer('MilStd2525Renderer')

        removeHelpMenu("GeoGig")
 def initGui(self):
     # QgsSymbolLayerV2Registry.instance().addSymbolLayerType( VectorArrowMarkerMetadata() )
     self._controller = VectorFieldRendererController(self._iface)
     self._metadata = VectorFieldRendererMetadata(self._controller)
     QgsRendererV2Registry.instance().addRenderer(self._metadata)
class RandomRendererMetadata(QgsRendererV2AbstractMetadata):
    def __init__(self):
        QgsRendererV2AbstractMetadata.__init__(
            self,
            "RandomRenderer",
            "Random renderer"
        )

    def createRenderer(self, element):
        return RandomRenderer()

    def createRendererWidget(self, layer, style, renderer):
        return RandomRendererWidget(layer, style, renderer)

QgsRendererV2Registry.instance().addRenderer(RandomRendererMetadata())

print(QgsRendererV2Registry.instance().renderersList())
print(QgsRendererV2Registry.instance().rendererMetadata(u'RandomRenderer'))

layer, canvas = iface.activeLayer(), iface.mapCanvas()

style = QgsStyleV2.defaultStyle()
random_renderer_widget = RandomRendererWidget(
    layer,
    style,
    RandomRenderer()
)

# random_renderer_widget.show()