@@ 36,9 36,11 @@
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
- <object class="HdyLeaflet" id="main_leaflet">
+ <object class="HdyLeaflet" id="leaflet">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <signal name="notify::folded" handler="on_leaflet_change" swapped="no"/>
+ <signal name="notify::visible-child" handler="on_leaflet_change" swapped="no"/>
<child>
<object class="GtkBox" id="keys">
<property name="visible">True</property>
@@ 90,6 92,9 @@
</packing>
</child>
</object>
+ <packing>
+ <property name="name">sidebar</property>
+ </packing>
</child>
<child>
<object class="GtkSeparator">
@@ 338,6 343,9 @@
</packing>
</child>
</object>
+ <packing>
+ <property name="name">main</property>
+ </packing>
</child>
</object>
<packing>
@@ 355,19 363,60 @@
<property name="title" translatable="yes">Keyring</property>
<property name="show-close-button">True</property>
<child>
- <object class="GtkMenuButton">
+ <object class="GtkStack" id="headerstack">
<property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="focus-on-click">False</property>
- <property name="receives-default">True</property>
- <property name="draw-indicator">True</property>
- <property name="popup">addmenu</property>
+ <property name="can-focus">False</property>
<child>
- <object class="GtkLabel">
+ <object class="GtkMenuButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="focus-on-click">False</property>
+ <property name="receives-default">True</property>
+ <property name="draw-indicator">True</property>
+ <property name="popup">addmenu</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Add</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">sidebar</property>
+ <property name="title" translatable="yes">page0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="label" translatable="yes">Add</property>
+ <child>
+ <object class="GtkButton" id="back">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <signal name="clicked" handler="on_back_clicked" swapped="no"/>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">go-previous-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
</object>
+ <packing>
+ <property name="name">main</property>
+ <property name="title" translatable="yes">page0</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
</child>
@@ 35,6 35,8 @@ class KeyringWindow:
self.window = builder.get_object("window")
self.window.set_application(self.application)
self.mainstack = builder.get_object("mainstack")
+ self.headerstack = builder.get_object("headerstack")
+ self.leaflet = builder.get_object("leaflet")
self.keylist = builder.get_object("keylist")
self.keyinfo = builder.get_object("keyinfo")
self.addkey = builder.get_object("addkey")
@@ 198,6 200,7 @@ class KeyringWindow:
context.add_class("dim-label")
row.pack_start(value, True, True, 0)
self.keyinfo.show_all()
+ self.leaflet.set_visible_child_name("main")
def on_keyrow_activated(self, widget, row):
self.mainstack.set_visible_child_name('keyinfo')
@@ 244,6 247,7 @@ class KeyringWindow:
row.add(box)
keyentry = Gtk.Entry()
+ keyentry.set_width_chars(10)
if name:
keyentry.set_text(name)
keyentry.connect('key-press-event', self.on_add_keypress)
@@ 276,6 280,8 @@ class KeyringWindow:
self.addkey_add_placeholder()
self.addkey.show_all()
+ self.leaflet.set_visible_child_name("main")
+
if name == 'basic':
self.add_entry_val[0].grab_focus()
elif name == 'web':
@@ 306,6 312,7 @@ class KeyringWindow:
newkey.add(key, val, private=private)
self.himitsu.add(newkey)
+ self.leaflet.set_visible_child_name("sidebar")
self.load_keys()
def on_search_changed(self, widget):
@@ 340,5 347,14 @@ class KeyringWindow:
return False
return True
+ def on_back_clicked(self, widget, *args):
+ self.headerstack.set_visible_child_name('sidebar')
+ self.leaflet.set_visible_child_name('sidebar')
+
+ def on_leaflet_change(self, *args):
+ folded = self.leaflet.get_folded()
+ main = self.leaflet.get_visible_child_name() == "main"
+ self.headerstack.set_visible_child_name("main" if main and folded else "sidebar")
+
def on_main_window_destroy(self, widget):
Gtk.main_quit()