def testSetGetSymbol(self): button = QgsSymbolButton() symbol = QgsMarkerSymbol.createSimple({}) symbol.setColor(QColor(255, 0, 0)) signal_spy = QSignalSpy(button.changed) button.setSymbol(symbol) self.assertEqual(len(signal_spy), 1) r = button.symbol() self.assertEqual(r.color(), QColor(255, 0, 0))
def testGettersSetters(self): button = QgsSymbolButton() canvas = QgsMapCanvas() button.setDialogTitle('test title') self.assertEqual(button.dialogTitle(), 'test title') button.setMapCanvas(canvas) self.assertEqual(button.mapCanvas(), canvas) button.setSymbolType(QgsSymbol.Line) self.assertEqual(button.symbolType(), QgsSymbol.Line)
def testSetColor(self): button = QgsSymbolButton() symbol = QgsMarkerSymbol.createSimple({}) symbol.setColor(QColor(255, 255, 0)) button.setSymbol(symbol) signal_spy = QSignalSpy(button.changed) button.setColor(QColor(0, 255, 0)) self.assertEqual(len(signal_spy), 1) r = button.symbol() self.assertEqual(r.color().name(), QColor(0, 255, 0).name()) # set same color, should not emit signal button.setColor(QColor(0, 255, 0)) self.assertEqual(len(signal_spy), 1) # color with transparency - should be stripped button.setColor(QColor(0, 255, 0, 100)) r = button.symbol() self.assertEqual(r.color(), QColor(0, 255, 0))
def testSettingSymbolType(self): button = QgsSymbolButton() button.setSymbolType(QgsSymbol.Marker) symbol = QgsMarkerSymbol.createSimple({}) symbol.setColor(QColor(255, 0, 0)) button.setSymbol(symbol) # if same symbol type, existing symbol should be kept button.setSymbolType(QgsSymbol.Marker) self.assertEqual(button.symbol(), symbol) # if setting different symbol type, symbol should be reset to new type button.setSymbolType(QgsSymbol.Fill) self.assertTrue(isinstance(button.symbol(), QgsFillSymbol))
def testPasteSymbol(self): button = QgsSymbolButton() button.setSymbolType(QgsSymbol.Marker) symbol = QgsMarkerSymbol.createSimple({}) symbol.setColor(QColor(255, 0, 0)) button.setSymbol(symbol) button2 = QgsSymbolButton() button2.setSymbolType(QgsSymbol.Marker) symbol2 = QgsMarkerSymbol.createSimple({}) symbol2.setColor(QColor(0, 255, 0)) button2.setSymbol(symbol2) button.copySymbol() button2.pasteSymbol() self.assertEqual(button2.symbol().color(), QColor(255, 0, 0)) # try pasting incompatible symbol button2.setSymbolType(QgsSymbol.Fill) fill_symbol = QgsFillSymbol.createSimple({}) fill_symbol.setColor(QColor(0, 0, 255)) button2.setSymbol(fill_symbol) button.copySymbol() # copied a marker symbol button2.pasteSymbol() # should have no effect self.assertEqual(button2.symbol(), fill_symbol)