def testLinkedColorButton(self): definition = QgsPropertyDefinition( 'test', 'test', QgsPropertyDefinition.ColorWithAlpha) button = QgsPropertyOverrideButton() button.init(0, QgsProperty(), definition) cb = QgsColorButton() button.registerEnabledWidget(cb, False) # set button to a non color property button.setToProperty(QgsProperty.fromValue('#ff0000')) self.assertFalse(cb.isEnabled()) button.setActive(False) self.assertTrue(cb.isEnabled()) # set button to a color property button.setToProperty( QgsProperty.fromExpression( 'project_color(\'Cthulhu\'s delight\')')) self.assertFalse(cb.isEnabled()) button.setActive(False) self.assertTrue(cb.isEnabled()) # test with FlagDisableCheckedWidgetOnlyWhenProjectColorSet set button.setFlags(QgsPropertyOverrideButton. FlagDisableCheckedWidgetOnlyWhenProjectColorSet) button.setToProperty(QgsProperty.fromValue('#ff0000')) self.assertTrue(cb.isEnabled()) button.setActive(False) self.assertTrue(cb.isEnabled()) button.setToProperty( QgsProperty.fromExpression( 'project_color(\'Cthulhu\'s delight\')')) self.assertFalse(cb.isEnabled()) button.setActive(False) self.assertTrue(cb.isEnabled())
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 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')