def testLinkProjectColor(self): """ Test linking to a project color """ project_scheme = [s for s in QgsApplication.colorSchemeRegistry().schemes() if isinstance(s, QgsProjectColorScheme)][0] project_scheme.setColors([[QColor(255, 0, 0), 'col1'], [QColor(0, 255, 0), 'col2']]) button = QgsColorButton() spy = QSignalSpy(button.unlinked) button.setColor(QColor(0, 0, 255)) self.assertFalse(button.linkedProjectColorName()) button.linkToProjectColor('col1') self.assertEqual(button.linkedProjectColorName(), 'col1') self.assertEqual(button.color().name(), '#ff0000') self.assertEqual(len(spy), 0) button.unlink() self.assertFalse(button.linkedProjectColorName()) self.assertEqual(button.color().name(), '#0000ff') self.assertEqual(len(spy), 1) button.linkToProjectColor('col2') self.assertEqual(button.linkedProjectColorName(), 'col2') self.assertEqual(button.color().name(), '#00ff00') self.assertEqual(len(spy), 1) project_scheme.setColors([[QColor(255, 0, 0), 'xcol1'], [QColor(0, 255, 0), 'xcol2']]) # linked color no longer exists self.assertFalse(button.linkedProjectColorName()) self.assertEqual(button.color().name(), '#0000ff') self.assertEqual(len(spy), 2)
def testLinkedColorButton(self): definition = QgsPropertyDefinition('test', 'test', QgsPropertyDefinition.ColorWithAlpha) button = QgsPropertyOverrideButton() button.init(0, QgsProperty(), definition) cb = QgsColorButton() button.registerLinkedWidget(cb) project_scheme = [s for s in QgsApplication.colorSchemeRegistry().schemes() if isinstance(s, QgsProjectColorScheme)][0] project_scheme.setColors([[QColor(255, 0, 0), 'col1'], [QColor(0, 255, 0), 'col2']]) button.setToProperty(QgsProperty.fromValue('#ff0000')) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setActive(False) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setToProperty(QgsProperty.fromExpression('project_color(\'Cthulhu\'s delight\')')) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setToProperty(QgsProperty.fromExpression('project_color(\'col1\')')) self.assertTrue(cb.isEnabled()) self.assertEqual(cb.linkedProjectColorName(), 'col1') button.setActive(False) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setActive(True) self.assertTrue(cb.isEnabled()) self.assertEqual(cb.linkedProjectColorName(), 'col1')
def testLinkProjectColor(self): """ Test linking to a project color """ project_scheme = [ s for s in QgsApplication.colorSchemeRegistry().schemes() if isinstance(s, QgsProjectColorScheme) ][0] project_scheme.setColors([[QColor(255, 0, 0), 'col1'], [QColor(0, 255, 0), 'col2']]) button = QgsColorButton() spy = QSignalSpy(button.unlinked) button.setColor(QColor(0, 0, 255)) self.assertFalse(button.linkedProjectColorName()) button.linkToProjectColor('col1') self.assertEqual(button.linkedProjectColorName(), 'col1') self.assertEqual(button.color().name(), '#ff0000') self.assertEqual(len(spy), 0) button.unlink() self.assertFalse(button.linkedProjectColorName()) self.assertEqual(button.color().name(), '#0000ff') self.assertEqual(len(spy), 1) button.linkToProjectColor('col2') self.assertEqual(button.linkedProjectColorName(), 'col2') self.assertEqual(button.color().name(), '#00ff00') self.assertEqual(len(spy), 1) project_scheme.setColors([[QColor(255, 0, 0), 'xcol1'], [QColor(0, 255, 0), 'xcol2']]) # linked color no longer exists self.assertFalse(button.linkedProjectColorName()) self.assertEqual(button.color().name(), '#0000ff') self.assertEqual(len(spy), 2)
def testLinkedColorButton(self): definition = QgsPropertyDefinition( 'test', 'test', QgsPropertyDefinition.ColorWithAlpha) button = QgsPropertyOverrideButton() button.init(0, QgsProperty(), definition) cb = QgsColorButton() button.registerLinkedWidget(cb) project_scheme = [ s for s in QgsApplication.colorSchemeRegistry().schemes() if isinstance(s, QgsProjectColorScheme) ][0] project_scheme.setColors([[QColor(255, 0, 0), 'col1'], [QColor(0, 255, 0), 'col2']]) button.setToProperty(QgsProperty.fromValue('#ff0000')) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setActive(False) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setToProperty( QgsProperty.fromExpression( 'project_color(\'Cthulhu\'s delight\')')) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setToProperty( QgsProperty.fromExpression('project_color(\'col1\')')) self.assertTrue(cb.isEnabled()) self.assertEqual(cb.linkedProjectColorName(), 'col1') button.setActive(False) self.assertTrue(cb.isEnabled()) self.assertFalse(cb.linkedProjectColorName()) button.setActive(True) self.assertTrue(cb.isEnabled()) self.assertEqual(cb.linkedProjectColorName(), 'col1')