mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 06:32:53 +01:00
feat: toggle radio from inside Gtk.Entry
This commit is contained in:
1 parent
e568814a11
commit
9fa93f5938
2 files changed
+11
No files matched your search
@@ -232,6 +232,7 @@ class Notebook(ScrollableMixin, Gtk.Notebook): # type: ignore
|
|||||||
def _on_keypress(self, widget: Gtk.Widget, event: Gdk.EventKey) -> None:
|
def _on_keypress(self, widget: Gtk.Widget, event: Gdk.EventKey) -> None:
|
||||||
match event.keyval:
|
match event.keyval:
|
||||||
case Gdk.KEY_Right | Gdk.KEY_l:
|
case Gdk.KEY_Right | Gdk.KEY_l:
|
||||||
|
# FIXME: propagation bool
|
||||||
if event.state is Gdk.ModifierType.CONTROL_MASK:
|
if event.state is Gdk.ModifierType.CONTROL_MASK:
|
||||||
return
|
return
|
||||||
MainController.get_emitter().emit("request_button_box_focus")
|
MainController.get_emitter().emit("request_button_box_focus")
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ class LanPanel(Gtk.Frame):
|
|||||||
self.entry = PortEntry(controller)
|
self.entry = PortEntry(controller)
|
||||||
self.scan = Gtk.Button(label=lan_panel.scan_button)
|
self.scan = Gtk.Button(label=lan_panel.scan_button)
|
||||||
self.scan.connect("clicked", self._on_scan_clicked)
|
self.scan.connect("clicked", self._on_scan_clicked)
|
||||||
|
|
||||||
# TODO: strings
|
# TODO: strings
|
||||||
self.early_abort = Gtk.CheckButton(label="Stop scanning on first hit")
|
self.early_abort = Gtk.CheckButton(label="Stop scanning on first hit")
|
||||||
self.early_abort.set_active(True)
|
self.early_abort.set_active(True)
|
||||||
@@ -51,6 +52,7 @@ class LanPanel(Gtk.Frame):
|
|||||||
|
|
||||||
self.entry.connect("activate", self._on_entry_activated)
|
self.entry.connect("activate", self._on_entry_activated)
|
||||||
self.entry.connect("string_validated", self._on_port_validated)
|
self.entry.connect("string_validated", self._on_port_validated)
|
||||||
|
self.entry.connect("key-release-event", self._on_lan_keypress)
|
||||||
self.emitter.connect("request_custom_port_focus", self._on_custom_port_binding)
|
self.emitter.connect("request_custom_port_focus", self._on_custom_port_binding)
|
||||||
self.emitter.connect(
|
self.emitter.connect(
|
||||||
"request_default_port_focus", lambda _: self.default_radio.set_active(True)
|
"request_default_port_focus", lambda _: self.default_radio.set_active(True)
|
||||||
@@ -76,6 +78,14 @@ class LanPanel(Gtk.Frame):
|
|||||||
|
|
||||||
self.entry.set_sensitive(False)
|
self.entry.set_sensitive(False)
|
||||||
|
|
||||||
|
def _on_lan_keypress(self, widget: Gtk.Entry, event: Gdk.EventKey) -> None:
|
||||||
|
if event.state & Gdk.ModifierType.CONTROL_MASK:
|
||||||
|
if event.keyval == Gdk.KEY_d:
|
||||||
|
self.default_radio.set_active(True)
|
||||||
|
self.controller.grab_active_treeview()
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def _on_custom_port_binding(self, emitter: "Emitter") -> None:
|
def _on_custom_port_binding(self, emitter: "Emitter") -> None:
|
||||||
self.custom_radio.set_active(True)
|
self.custom_radio.set_active(True)
|
||||||
self.entry.grab_focus()
|
self.entry.grab_focus()
|
||||||
|
|||||||
Reference in new issue
Block a user