~martijnbraam/keyring

ea862d47c3ae6276bd745dc8557fd16ce25485c0 — Martijn Braam 1 year, 3 months ago 9422c16
Support collapsing for mobile
2 files changed, 74 insertions(+), 9 deletions(-)

M himitsu_gtk/ui/main.glade
M himitsu_gtk/window.py
M himitsu_gtk/ui/main.glade => himitsu_gtk/ui/main.glade +58 -9
@@ 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>

M himitsu_gtk/window.py => himitsu_gtk/window.py +16 -0
@@ 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()