#1150 closed todo (done)

GUI content connector

Reported by: Ichthyostega Owned by: Ichthyostega
Priority: normal Milestone: 0integration
Component: lumieraGui Keywords: gui session architecture interfaces integration
Sub Tickets: #1043, #1145, #1151, #1153 Parent Tickets: #1014, #1039, #1147, #1251, #1253, #1327

Description

Define and draft the mechanism for the UI to be populated with actual content.

The UI-Layer must not perform this on its own behalf -- rather, the UI top-level need to issue some kind of request and/or install a listener somehow into the session. Which in turn then causes the session to cast a population diff upwards into the UI. The task for this ticket is to establish the framework and mechanisms to make establishing such a connection possible.

Change history (12)

comment:1 by Ichthyostega, at 2018-07-28T13:17:04Z

Owner: set to Ichthyostega
Status: newaccepted

from #1145 it is clear that -- while our start-up sequence for the UI is basically sane -- we're lacking a proper trigger point. The reason is, content population has to start after the event loop is running and the UI frame is shown. Incidentally, at that poin we also know that the session subsystem is already completely booted and ready (command processing is open and running). The ordering of subsystem dependencies ensures this ordering. Yet this doesn't mean that actual session (content) is already loaded. It could be present (if the session to load was given as commandline argument), or alternatively, a placeholder session is constructed and populated with some default content.

comment:2 by Ichthyostega, at 2018-07-28T16:30:01Z

The general plan to trigger content population boils down to

  • have someone(TM) inject the population trigger into the GTK event loop
  • the trigger itself issues a command towards the session
  • execution of aforementioned command activates sending of population / diff messages
  • on shutdown of the top-level, send the corresponding deactivation command
Last edited at 2018-08-04T14:07:50Z by Ichthyostega (previous) (diff)

comment:3 by Ichthyostega, at 2018-08-02T15:08:26Z

blockedby: 11451145, 1151

comment:4 by Ichthyostega, at 2018-08-04T15:20:09Z

blocking: 11471147, 1014

comment:5 by Ichthyostega, at 2018-08-04T15:29:12Z

blockedby: 1145, 11511145, 1151, 1153

comment:6 by Ichthyostega, at 2020-02-23T07:43:10Z

blockedby: 1145, 1151, 11531043, 1145, 1151, 1153

comment:7 by Ichthyostega, at 2022-10-17T01:02:31Z

blocking: 1147, 10141014, 1147, 1251

comment:8 by Ichthyostega, at 2022-10-21T19:36:21Z

blocking: 1014, 1147, 12511014, 1147, 1251, 1253

comment:9 by Ichthyostega, at 2023-02-02T02:06:39Z

blocking: 1014, 1147, 1251, 12531014, 1039, 1147, 1251, 1253

comment:10 by Ichthyostega, at 2023-03-17T22:37:05Z

Resolution: done
Status: acceptedclosed

Over the course of the last years, while reworking the backbone of the UI-Layer, the envisioned new solution to this tricky problem has been clarified, implemented and validated to great extent

  • after starting the GTK Event-Loop, an action is scheduled into this event loop, which in turn queries the Steam-Layer for the actual model contents
  • the response arrives asynchronously, and is dispatched into the GTK-Thread over the UI-Bus
  • the model content is described in the form of a »Population Diff« — thereby avoiding the use of a common shared model implementation.
  • all relevant entities in the GUI (which represent some part of the model) do implement a Diff Mutator and can thus be addressed through the UI-Bus to bring up the necessary widgets and structures in conformance to the diff description of the model.
  • based alone on this setup, it was possible to establish all the wiring and scaffolding to build a fully functional UI, including the handling of dragging-gestures

comment:11 by Ichthyostega, at 2023-09-13T18:58:35Z

blocking: 1014, 1039, 1147, 1251, 12531014, 1039, 1147, 1251, 1253, 1327

comment:12 by Undercover Agent, at 2025-12-25T00:00:00Z

blockedby: 1043, 1145, 1151, 1153
blocking: 1014, 1039, 1147, 1251, 1253, 1327
Parent Tickets: 1014, 1039, 1147, 1251, 1253, 1327
Sub Tickets: 1043, 1145, 1151, 1153

Migration MasterTickets ⟼ Subtickets-plugin

Note: See TracTickets for help on using tickets.