Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MDButton disable=False of disabled button fails in MDDialog #1662

Open
RobertFlatt opened this issue Apr 1, 2024 · 0 comments
Open

MDButton disable=False of disabled button fails in MDDialog #1662

RobertFlatt opened this issue Apr 1, 2024 · 0 comments
Labels
Type: Bug Bug report/Bug fix

Comments

@RobertFlatt
Copy link

Description of the Bug

In an MDDialog setting an MDButton disable=False does not enable the button.

Code and Logs

from kivy.lang import Builder
from kivy.uix.widget import Widget

from kivymd.app import MDApp
from kivymd.uix.button import MDButton, MDButtonText
from kivymd.uix.dialog import (
    MDDialog,
    MDDialogIcon,
    MDDialogHeadlineText,
    MDDialogSupportingText,
    MDDialogButtonContainer,
    MDDialogContentContainer,
)
from kivymd.uix.divider import MDDivider
from kivymd.uix.list import (
    MDListItem,
    MDListItemLeadingIcon,
    MDListItemSupportingText,
)

KV = '''
MDScreen:
    md_bg_color: self.theme_cls.backgroundColor

    MDButton:
        pos_hint: {'center_x': .5, 'center_y': .5}
        on_release: app.show_alert_dialog()

        MDButtonText:
            text: "Show dialog"
'''


class Example(MDApp):
    def build(self):
        return Builder.load_string(KV)

    def show_alert_dialog(self):
        self.accept_button = MDButton(
            MDButtonText(text="Accept"),

            disabled=True,
            on_release=self.is_enabled)
        
        MDDialog(
            # -----------------------Headline text-------------------------
            MDDialogHeadlineText(
                text="Button Enable Test",
            ),
            # -----------------------Supporting text-----------------------
            MDDialogSupportingText(
                text="Click left button to enable right button.\n\n"
                "Issue: Right button background gets lighter, text color does "
                "not change, right button does not respond to on_release. "
                "See print messages in terminal."
            ),
            # -----------------------Custom content------------------------
            MDDialogContentContainer(
            ),
            # ---------------------Button container------------------------
            MDDialogButtonContainer(
                Widget(),
                MDButton(
                    MDButtonText(text="Enable Other"),
                    style="elevated",
                    on_release=self.enable_other
                ),
                self.accept_button,
                spacing="8dp",
            ),
            # -------------------------------------------------------------
        ).open()

    def enable_other(self, button):
        print('old disabled state =',self.accept_button.disabled)
        self.accept_button.disabled = False
        print('new disabled state =',self.accept_button.disabled)

    def is_enabled(self, button):
        print('Is enabled =', not self.accept_button.disabled)

Example().run()

Screenshots

issue 1 before
issue 1 after

Versions

  • OS: Windows 11
  • Python: 3.11.1
  • Kivy: 2.3.0
  • KivyMD: 2.0.1.dev0
@HeaTTheatR HeaTTheatR added the Type: Bug Bug report/Bug fix label Apr 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Bug report/Bug fix
Projects
None yet
Development

No branches or pull requests

2 participants