Added keyboard navigation on treeview
This commit is contained in:
12
gtkpass.py
12
gtkpass.py
@@ -4,9 +4,11 @@ import signal
|
|||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
gi.require_version('Gdk', '3.0')
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
gi.require_version('Pango', '1.0')
|
gi.require_version('Pango', '1.0')
|
||||||
from gi.repository import GLib
|
from gi.repository import GLib
|
||||||
|
from gi.repository import Gdk
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
from gi.repository import Pango
|
from gi.repository import Pango
|
||||||
import yaml
|
import yaml
|
||||||
@@ -16,6 +18,7 @@ XDG_CONF_DIR = os.getenv('XDG_CONFIG_HOME', os.path.expanduser('~/.config'))
|
|||||||
|
|
||||||
|
|
||||||
class GTKPass(Gtk.Window):
|
class GTKPass(Gtk.Window):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Gtk.Window.__init__(self, title="GTKPass")
|
Gtk.Window.__init__(self, title="GTKPass")
|
||||||
|
|
||||||
@@ -69,6 +72,7 @@ class GTKPass(Gtk.Window):
|
|||||||
self.ts_filter.set_visible_column(0)
|
self.ts_filter.set_visible_column(0)
|
||||||
self.treeview = Gtk.TreeView(model=self.ts_filter)
|
self.treeview = Gtk.TreeView(model=self.ts_filter)
|
||||||
self.treeview.set_headers_visible(False)
|
self.treeview.set_headers_visible(False)
|
||||||
|
self.treeview.connect("key-release-event", self.on_treeview_keypress)
|
||||||
|
|
||||||
icon_renderer = Gtk.CellRendererPixbuf()
|
icon_renderer = Gtk.CellRendererPixbuf()
|
||||||
text_renderer = Gtk.CellRendererText()
|
text_renderer = Gtk.CellRendererText()
|
||||||
@@ -275,6 +279,14 @@ class GTKPass(Gtk.Window):
|
|||||||
break
|
break
|
||||||
self._set_visible(self.grid, True)
|
self._set_visible(self.grid, True)
|
||||||
|
|
||||||
|
def on_treeview_keypress(self, treeview, event):
|
||||||
|
# expand current branch on right cursor key or enter/return
|
||||||
|
if (event.keyval in (Gdk.KEY_Right, Gdk.KEY_Return) and
|
||||||
|
treeview.get_cursor()[0]):
|
||||||
|
treeview.expand_row(treeview.get_cursor()[0], False)
|
||||||
|
# collapse row under cursor on left cursor key
|
||||||
|
if event.keyval == Gdk.KEY_Left and treeview.get_cursor()[0]:
|
||||||
|
treeview.collapse_row(treeview.get_cursor()[0])
|
||||||
|
|
||||||
|
|
||||||
class Leaf:
|
class Leaf:
|
||||||
|
|||||||
Reference in New Issue
Block a user