|
@@ -26,17 +26,26 @@ class ColorInput(StringElement):
|
|
|
temp=False,
|
|
|
)
|
|
|
|
|
|
- icon_button = jp.parse_html('''
|
|
|
+ self._icon_button = jp.parse_html('''
|
|
|
<q-icon name="colorize" class="cursor-pointer">
|
|
|
- <q-popup-proxy transition-show="scale" transition-hide="scale" name="popup">
|
|
|
+ <q-popup-proxy transition-show="scale" transition-hide="scale" name="popup" no-parent-event>
|
|
|
<q-color name="color_input"/>
|
|
|
</q-popup-proxy>
|
|
|
</q-icon>''')
|
|
|
- view.add_scoped_slot('append', icon_button)
|
|
|
- icon_button.name_dict['color_input'].on('change', self.handle_change)
|
|
|
- icon_button.name_dict['color_input'].disable_input_event = True
|
|
|
- icon_button.name_dict['popup'].on('input', lambda *_: create_task(view.update()) or False)
|
|
|
- icon_button.name_dict['popup'].on('show', lambda *_: create_task(view.update()) or False)
|
|
|
- icon_button.name_dict['popup'].on('hide', lambda *_: create_task(view.update()) or False)
|
|
|
+ view.add_scoped_slot('append', self._icon_button)
|
|
|
+ self._icon_button.on('click', lambda *_: self.open() or False)
|
|
|
+ self._icon_button.name_dict['color_input'].on('change', self.handle_change)
|
|
|
+ self._icon_button.name_dict['color_input'].disable_input_event = True
|
|
|
+ self._icon_button.name_dict['popup'].on('input', lambda *_: create_task(view.update()) or False)
|
|
|
+ self._icon_button.name_dict['popup'].on('show', lambda *_: create_task(view.update()) or False)
|
|
|
+ self._icon_button.name_dict['popup'].on('hide', lambda *_: create_task(view.update()) or False)
|
|
|
|
|
|
super().__init__(view, value=value, on_change=on_change)
|
|
|
+
|
|
|
+ def open(self):
|
|
|
+ self._icon_button.name_dict['popup'].value = True
|
|
|
+ create_task(self.view.update())
|
|
|
+
|
|
|
+ def close(self):
|
|
|
+ self.view.name_dict['popup'].value = False
|
|
|
+ create_task(self.view.update())
|