Skip to content
Snippets Groups Projects
Commit c255b8d5 authored by Nico's avatar Nico
Browse files

Split up containers

parent 1ebd8fb4
No related branches found
No related tags found
No related merge requests found
......@@ -2,9 +2,6 @@
# SPDX-License-Identifier: AGPL-3.0-only
# License-Filename: LICENSE.md
from briar.gtk.define import App
from briar.gtk.logger import Logger
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
......@@ -14,28 +11,12 @@ class Container(Gtk.Overlay):
def __init__(self):
Gtk.Overlay.__init__(self)
self.builder = Gtk.Builder()
self.__setup_view()
self.__register_signals()
def __setup_view(self):
Logger.debug("Api has account: %s", App().api.has_account())
self.builder = Gtk.Builder()
if not App().api.has_account():
self.builder.add_from_resource("/app/briar/gtk/ui/setup.ui")
self.add(self.builder.get_object("setup"))
else:
self.builder.add_from_resource("/app/briar/gtk/ui/login.ui")
self.add(self.builder.get_object("login"))
self.builder.connect_signals(self)
def on_username_button_clicked(self, button):
self.builder.get_object("username_grid").set_visible(False)
self.builder.get_object("password_grid").set_visible(True)
self.username = self.builder.get_object("username_entry").get_text()
def on_password_button_clicked(self, button):
password = self.builder.get_object("password_entry").get_text()
App().api.register((self.username, password)) # TODO: callback
pass
def on_login_pressed(self, button):
password = self.builder.get_object("password_entry").get_text()
App().api.login(password) # TODO: callback
def __register_signals(self):
pass
# Copyright (c) 2019 Nico Alt
# SPDX-License-Identifier: AGPL-3.0-only
# License-Filename: LICENSE.md
from briar.gtk.container import Container
class MainContainer(Container):
def __init__(self):
super().__init__()
self.__setup_view()
self.__register_signals()
def __setup_view(self):
self.builder.add_from_resource("/app/briar/gtk/ui/main.ui")
self.add(self.builder.get_object("main"))
self.builder.connect_signals(self)
# Copyright (c) 2019 Nico Alt
# SPDX-License-Identifier: AGPL-3.0-only
# License-Filename: LICENSE.md
from briar.gtk.container import Container
from briar.gtk.define import App
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import GObject, Gtk
class StartupContainer(Container):
def __init__(self):
super().__init__()
self.__setup_view()
self.__register_signals()
def on_username_button_clicked(self, button):
self.builder.get_object("username_grid").set_visible(False)
self.builder.get_object("password_grid").set_visible(True)
self.username = self.builder.get_object("username_entry").get_text()
def on_password_button_clicked(self, button):
password = self.builder.get_object("password_entry").get_text()
App().api.register((self.username, password),
self.__startup_completed)
def on_login_pressed(self, button):
password = self.builder.get_object("password_entry").get_text()
App().api.login(password, self.__startup_completed)
def __setup_view(self):
self.set_hexpand(True)
self.set_vexpand(True)
if not App().api.has_account():
self.builder.add_from_resource("/app/briar/gtk/ui/setup.ui")
self.add(self.builder.get_object("setup"))
else:
self.builder.add_from_resource("/app/briar/gtk/ui/login.ui")
self.add(self.builder.get_object("login"))
self.builder.connect_signals(self)
def __register_signals(self):
GObject.signal_new("briar_startup_completed", Gtk.Overlay,
GObject.SignalFlags.RUN_LAST, GObject.TYPE_BOOLEAN,
(GObject.TYPE_STRING,))
def __startup_completed(self, succeded=True):
self.emit("briar_startup_completed", ("succeded",))
......@@ -2,7 +2,8 @@
# SPDX-License-Identifier: AGPL-3.0-only
# License-Filename: LICENSE.md
from briar.gtk.container import Container
from briar.gtk.containers.main import MainContainer
from briar.gtk.containers.startup import StartupContainer
from briar.gtk.define import App
import gi
......@@ -13,9 +14,7 @@ from gi.repository import Gtk, Gdk, GLib
class Window(Gtk.ApplicationWindow):
def __init__(self):
Gtk.ApplicationWindow.__init__(self,
application=App(),
title="Briar",
Gtk.ApplicationWindow.__init__(self, application=App(), title="Briar",
icon_name="app.briar.gtk")
self.__setup_content()
......@@ -24,16 +23,9 @@ class Window(Gtk.ApplicationWindow):
return self.__container
def __setup_content(self):
self.__container = Container()
self.__container.show()
self.__container.set_hexpand(True)
self.__container.set_vexpand(True)
self.__vgrid = Gtk.Grid()
self.__vgrid.set_orientation(Gtk.Orientation.VERTICAL)
self.__vgrid.show()
self.__vgrid.add(self.__container)
self.add(self.__vgrid)
self.__setup_size((800, 600))
self.__setup_size((800, 600)) # TODO: do properly (constants, save)
self.__setup_grid()
self.__setup_startup_container()
def __setup_size(self, size):
if len(size) == 2 and\
......@@ -41,3 +33,26 @@ class Window(Gtk.ApplicationWindow):
isinstance(size[1], int):
self.resize(size[0], size[1])
def __setup_grid(self):
self.__grid = Gtk.Grid()
self.__grid.set_orientation(Gtk.Orientation.HORIZONTAL)
self.__grid.show()
self.add(self.__grid)
def __setup_startup_container(self):
self.__container = StartupContainer()
self.__container.show()
self.__container.connect("briar_startup_completed",
self.__on_startup_completed)
self.__grid.add(self.__container)
def __on_startup_completed(self):
self.__grid.remove_all()
self.__setup_main_container(self)
def __setup_main_container(self):
self.__container = MainContainer()
self.__container.show()
self.__grid.add(self.__container)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment