@@ -294,6 +294,12 @@ def _handle_property_button(self, button_id: int) -> bool:
294294 if prop_type == "toggle" :
295295 self ._handle_toggle_property (prop , item , button , prop_name )
296296 return True
297+ if prop_type == "text" :
298+ self ._handle_text_property (item , button , prop_name )
299+ return True
300+ if prop_type == "number" :
301+ self ._handle_number_property (item , button , prop_name )
302+ return True
297303
298304 return self ._handle_options_property (prop , item , button , prop_name )
299305
@@ -650,6 +656,39 @@ def _handle_toggle_property(self, prop, item: MenuItem, button, prop_name: str)
650656
651657 self ._refresh_selected_item ()
652658
659+ def _handle_text_property (self , item : MenuItem , button , prop_name : str ) -> None :
660+ """Handle a text-type property via keyboard input."""
661+ current_value = resolve_label (item .properties .get (prop_name , "" ))
662+ title = resolve_label (button .title ) if button .title else prop_name
663+
664+ keyboard = xbmc .Keyboard (current_value , title )
665+ keyboard .doModal ()
666+ if not keyboard .isConfirmed ():
667+ return
668+
669+ new_value = keyboard .getText ()
670+ if new_value :
671+ self ._log (f"Setting text property { prop_name } ={ new_value } on item { item .name } " )
672+ self ._set_item_property (item , prop_name , new_value , apply_suffix = False )
673+ else :
674+ self ._log (f"Clearing text property { prop_name } on item { item .name } " )
675+ self ._set_item_property (item , prop_name , None , apply_suffix = False )
676+
677+ self ._refresh_selected_item ()
678+
679+ def _handle_number_property (self , item : MenuItem , button , prop_name : str ) -> None :
680+ """Handle a number-type property via numeric input dialog."""
681+ current_value = item .properties .get (prop_name , "" )
682+ title = resolve_label (button .title ) if button .title else prop_name
683+
684+ result = xbmcgui .Dialog ().input (title , current_value , type = xbmcgui .INPUT_NUMERIC )
685+ if not result and result != "0" :
686+ return
687+
688+ self ._log (f"Setting number property { prop_name } ={ result } on item { item .name } " )
689+ self ._set_item_property (item , prop_name , result , apply_suffix = False )
690+ self ._refresh_selected_item ()
691+
653692 def _handle_options_property (self , prop , item : MenuItem , button , prop_name : str ) -> bool :
654693 """Handle a regular property with options list.
655694
0 commit comments