from propsettings.setting import Setting
from propsettings_qt.input_handlers.input_handler import SettingDrawer


class ObjectHandler(SettingDrawer):
	"""
	InputHandler que se encarga de las configuraciones que sean de tipo object.
	Estas solo se podrán modificar si tienen miembros de tipo Setting o si son de algún tipo de dato que se puede cargar.
	"""

	def __init__(self, setting_owner, setting: Setting):
		from propsettings_qt.ui_settings_area import SettingsAreaWidget

		super().__init__(setting_owner=setting_owner, setting=setting)
		self.widget = SettingsAreaWidget()
		self.widget.populate_object(setting.fget(self._setting_owner))

	def get_widget(self):
		return self.widget

	def _on_configurable_object_selected(self, obj):
		"""
		Capturar evento de selección de objeto en combobox. Solo se usa cuando el objeto que se está configurando se
		puede cargar desde memoria externa y por tanto se puede seleccionar en un combobox.
		:param obj:
		:return:
		"""
		self._set_value(obj)


from propsettings.setting import Setting
from propsettings_qt.input_handlers.input_handler import SettingDrawer


class ObjectHandler(SettingDrawer):
	"""
	InputHandler que se encarga de las configuraciones que sean de tipo object.
	Estas solo se podrán modificar si tienen miembros de tipo Setting o si son de algún tipo de dato que se puede cargar.
	"""

	def __init__(self, setting_owner, setting: Setting):
		from propsettings_qt.ui_settings_area import SettingsAreaWidget

		super().__init__(setting_owner=setting_owner, setting=setting)
		self.widget = SettingsAreaWidget()
		self.widget.populate_object(setting.fget(self._setting_owner))

	def get_widget(self):
		return self.widget

	def _on_configurable_object_selected(self, obj):
		"""
		Capturar evento de selección de objeto en combobox. Solo se usa cuando el objeto que se está configurando se
		puede cargar desde memoria externa y por tanto se puede seleccionar en un combobox.
		:param obj:
		:return:
		"""
		self._set_value(obj)


InputHandler que se encarga de las configuraciones que sean de tipo object. 	Estas solo se podrán modificar si tienen miembros de tipo Setting o si son de algún tipo de dato que se puede cargar. Capturar evento de selección de objeto en combobox. Solo se usa cuando el objeto que se está configurando se 		puede cargar desde memoria externa y por tanto se puede seleccionar en un combobox. 		:param obj: 		:return: