Как сделать так, чтобы две функции RichText были взаимоисключающими

В общем, я добавил две пользовательские функции для раскрашивания текста в RichTextBlock, и я хотел бы сделать так, чтобы выбор одной из них для части текста автоматически снимал выбор другой цветовой кнопки, как это уже сделано для тегов h.

Я немного поискал, но ничего не нашел, так что, думаю, мне не помешает помощь, будь то совет, инструкция или даже код.

Мои характеристики выглядят следующим образом:

@hooks.register('register_rich_text_features')
def register_redtext_feature(features):
    feature_name = 'redtext'
    type_ = 'RED_TEXT'
    tag = 'span'

    control = {
        'type': type_,
        'label': 'Red',
        'style': {'color': '#bd003f'},
    }

    features.register_editor_plugin(
        'draftail', feature_name, draftail_features.InlineStyleFeature(control)
    )

    db_conversion = {
        'from_database_format': {tag: InlineStyleElementHandler(type_)},
        'to_database_format': {
            'style_map': {
                type_: {'element': tag, 'props': {'class': 'text-primary'}}
            }
        },
    }

    features.register_converter_rule(
        'contentstate', feature_name, db_conversion
    )

Другая похожа, но цвет другой.

Вернуться на верх