Example #1
0
    def testReadWriteXml(self):
        pr = QgsProject()
        l = QgsLayout(pr)

        pic = QgsLayoutItemPicture(l)
        # mode should be saved/restored
        pic.setMode(QgsLayoutItemPicture.FormatRaster)

        #save original item to xml
        doc = QDomDocument("testdoc")
        elem = doc.createElement("test")
        self.assertTrue(pic.writeXml(elem, doc, QgsReadWriteContext()))

        pic2 = QgsLayoutItemPicture(l)
        self.assertTrue(
            pic2.readXml(elem.firstChildElement(), doc, QgsReadWriteContext()))
        self.assertEqual(pic2.mode(), QgsLayoutItemPicture.FormatRaster)

        pic.setMode(QgsLayoutItemPicture.FormatSVG)
        elem = doc.createElement("test2")
        self.assertTrue(pic.writeXml(elem, doc, QgsReadWriteContext()))
        pic3 = QgsLayoutItemPicture(l)
        self.assertTrue(
            pic3.readXml(elem.firstChildElement(), doc, QgsReadWriteContext()))
        self.assertEqual(pic3.mode(), QgsLayoutItemPicture.FormatSVG)
Example #2
0
    def testMode(self):
        pic = QgsLayoutItemPicture(self.layout)
        # should default to unknown
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatUnknown)
        spy = QSignalSpy(pic.changed)
        pic.setMode(QgsLayoutItemPicture.FormatRaster)
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatRaster)
        self.assertEqual(len(spy), 1)
        pic.setMode(QgsLayoutItemPicture.FormatRaster)
        self.assertEqual(len(spy), 1)
        pic.setMode(QgsLayoutItemPicture.FormatSVG)
        self.assertEqual(len(spy), 3)  # ideally only 2!
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatSVG)

        # set picture path without explicit format
        pic.setPicturePath(self.pngImage)
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatRaster)
        pic.setPicturePath(self.svgImage)
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatSVG)
        # forced format
        pic.setPicturePath(self.pngImage, QgsLayoutItemPicture.FormatSVG)
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatSVG)
        pic.setPicturePath(self.pngImage, QgsLayoutItemPicture.FormatRaster)
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatRaster)
        pic.setPicturePath(self.svgImage, QgsLayoutItemPicture.FormatSVG)
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatSVG)
        pic.setPicturePath(self.svgImage, QgsLayoutItemPicture.FormatRaster)
        self.assertEqual(pic.mode(), QgsLayoutItemPicture.FormatRaster)