mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Move duplicate safe calls to update_styles into a single method
It's done as an internal, but can be called from child classes of course. This is intended to be a single central method of asking the app to update styles while also not caring if there is no active app available just yet.
This commit is contained in:
@@ -874,6 +874,16 @@ class DOMNode(MessagePump):
|
||||
else:
|
||||
self.remove_class(*class_names)
|
||||
|
||||
def _update_styles(self) -> None:
|
||||
"""Request an update of this node's styles.
|
||||
|
||||
Should be called whenever CSS classes / pseudo classes change.
|
||||
"""
|
||||
try:
|
||||
self.app.update_styles(self)
|
||||
except NoActiveAppError:
|
||||
pass
|
||||
|
||||
def add_class(self, *class_names: str) -> None:
|
||||
"""Add class names to this Node.
|
||||
|
||||
@@ -886,10 +896,7 @@ class DOMNode(MessagePump):
|
||||
self._classes.update(class_names)
|
||||
if old_classes == self._classes:
|
||||
return
|
||||
try:
|
||||
self.app.update_styles(self)
|
||||
except NoActiveAppError:
|
||||
pass
|
||||
self._update_styles()
|
||||
|
||||
def remove_class(self, *class_names: str) -> None:
|
||||
"""Remove class names from this Node.
|
||||
@@ -903,10 +910,7 @@ class DOMNode(MessagePump):
|
||||
self._classes.difference_update(class_names)
|
||||
if old_classes == self._classes:
|
||||
return
|
||||
try:
|
||||
self.app.update_styles(self)
|
||||
except NoActiveAppError:
|
||||
pass
|
||||
self._update_styles()
|
||||
|
||||
def toggle_class(self, *class_names: str) -> None:
|
||||
"""Toggle class names on this Node.
|
||||
@@ -920,10 +924,7 @@ class DOMNode(MessagePump):
|
||||
self._classes.symmetric_difference_update(class_names)
|
||||
if old_classes == self._classes:
|
||||
return
|
||||
try:
|
||||
self.app.update_styles(self)
|
||||
except NoActiveAppError:
|
||||
pass
|
||||
self._update_styles()
|
||||
|
||||
def has_pseudo_class(self, *class_names: str) -> bool:
|
||||
"""Check for pseudo class (such as hover, focus etc)"""
|
||||
|
||||
Reference in New Issue
Block a user