Skip to content

Commit f28d73b

Browse files
committed
Fixed FileBrowse/FolderBrowse/xxxBrowse disable problem #146
1 parent 04ca2f9 commit f28d73b

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

TkEasyGUI/widgets.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1612,6 +1612,17 @@ def get_prev_element(
16121612
return None
16131613
return self.prev_element
16141614

1615+
def is_disabled(self) -> bool:
1616+
"""Check if the widget is disabled."""
1617+
if self.widget is not None:
1618+
try:
1619+
state = self.widget.cget("state")
1620+
if state == "disabled":
1621+
return True
1622+
except tk.TclError:
1623+
pass
1624+
return False
1625+
16151626
def __getattr__(self, name: str) -> Any:
16161627
"""Get unknown attribute."""
16171628
# Method called when the attribute is not found in the object's instance dictionary
@@ -4729,9 +4740,15 @@ def show_dialog(self, *args) -> Union[Any, None]:
47294740
"""Show file dialog"""
47304741
from . import dialogs
47314742

4743+
# return if state is disabled (#146)
4744+
if self.is_disabled():
4745+
return None
4746+
47324747
target: Union[Element, None] = self.get_prev_element(self.target_key)
4748+
47334749
# get initial directory
47344750
init_dir = self._get_initial_directory()
4751+
47354752
# popup
47364753
result = dialogs.popup_get_file(
47374754
title=self.title,
@@ -4749,6 +4766,7 @@ def show_dialog(self, *args) -> Union[Any, None]:
47494766
self.window.dispatch_event(
47504767
self.key, {"event": result, "event_type": "change"}
47514768
)
4769+
47524770
return result
47534771

47544772
def set_text(self, text: str) -> None:
@@ -4852,6 +4870,10 @@ def show_dialog(self, *args) -> Union[str, None]:
48524870
"""Show file dialog"""
48534871
from . import dialogs
48544872

4873+
# return if state is disabled (#146)
4874+
if self.is_disabled():
4875+
return None
4876+
48554877
target: Union[Element, None] = self.get_prev_element(self.target_key)
48564878
# popup
48574879
result = dialogs.popup_get_folder(
@@ -4895,6 +4917,10 @@ def show_dialog(self, *args) -> Union[str, None]:
48954917
"""Show file dialog"""
48964918
from . import dialogs
48974919

4920+
# return if state is disabled (#146)
4921+
if self.is_disabled():
4922+
return None
4923+
48984924
target: Union[Element, None] = self.get_prev_element(self.target_key)
48994925
# popup
49004926
result = dialogs.popup_color(
@@ -4944,6 +4970,10 @@ def show_dialog(self, *args) -> Union[str, None]:
49444970
"""Show Listbox dialog"""
49454971
from . import dialogs
49464972

4973+
# return if state is disabled (#146)
4974+
if self.is_disabled():
4975+
return None
4976+
49474977
target: Union[Element, None] = self.get_prev_element(self.target_key)
49484978
if target is not None:
49494979
val = target.get() # type: ignore[attr-defined]
@@ -4996,6 +5026,9 @@ def show_dialog(self, *args) -> Union[str, None]:
49965026
"""Show Listbox dialog"""
49975027
from . import dialogs
49985028

5029+
if self.is_disabled():
5030+
return None
5031+
49995032
target: Union[Element, None] = self.get_prev_element(self.target_key)
50005033
if target is not None:
50015034
val = target.get() # type: ignore[attr-defined]
@@ -5057,6 +5090,9 @@ def show_dialog(self, *args) -> Union[datetime, None]:
50575090
"""Show file dialog"""
50585091
from . import dialogs
50595092

5093+
if self.is_disabled():
5094+
return None
5095+
50605096
target: Union[Element, None] = self.get_prev_element(self.target_key)
50615097
# popup
50625098
result = dialogs.popup_get_date(

0 commit comments

Comments
 (0)