We still don't want to fully rely on the CSS machinery because that would
require widgets, which is far too heavy for the number of render nodes we
need to regularly draw.
We don't need to render text in most cases. Additionally, that requires
inflating a GObject to extract from the capture.
Instead, try to determine if we will even want to render the text before
causing any of that work to happen.
Also setup the pixel range for the layout so it may ellipsize as necessary.
This allows us to pre-calculate the values and re-use them, while also
allowing for us to avoid inflating GObject's for marks unless it becomes
necessary to access additional information.
This includes a helper to generate timeseries items such as marks which
have a point in time and optionally a duration.
The TimeSpan has also been beefed up to gain a few operations that are
useful for implementing that.
That way we can use it for the document itself, and have it update the
timespan of the recording in case it didn't get updated due to ctrl+c or
something prematurely stopping.
This is just playing around to get things to render. There is much to do
to ensure that we interact with this well (and cache some values for
faster generation on allocation changes).
This doesn't work when you have recycling rows because even/odd isn't
stable. Additionally, the hover highlight is generally enough to be able
to give yourself a guide to read across columns.
This doesn't yet render things, but it starts to get the plumbing in place
so that we can create a custom row type and then consume the marks
catalog from SysprofDocument eventually.
This is a raw view of the marks in a session which should help for just
finding the information you care about when the visual model is too
cumbersome or lacks searching capabilities.
This is meant to become our toplevel object controlling an analysis
session. We need it to know about any filters in place such as time
selections.
Callgraph needs to be updated to use this as well.
This allows you to set a flag to show the thread id of what was recorded.
Use this to help disassociate similar threads in a process to figure out
which thread is consuming a majority of the Total time of that process.
This allows us to provide a bit more context to things in the descendants
callgraph based on the symbol. Context switches get specialized highlight
as well as All Processes and Processes nodes.