Timeline: investigate how to handle profile rebuilding
as it turns out, the core problem is that we need a way to detect and signal structural changes to the logical UI model
This commit is contained in:
parent
d5af020520
commit
83c462abc3
5 changed files with 408 additions and 266 deletions
|
|
@ -235,13 +235,6 @@ namespace timeline {
|
|||
|
||||
|
||||
|
||||
TimelineCanvas::TimelineCanvas (_Renderer groundingFac, _Renderer overlayFac)
|
||||
: Gtk::Layout{}
|
||||
, renderGrounding_{groundingFac}
|
||||
, renderOverlay_{overlayFac}
|
||||
{ }
|
||||
|
||||
|
||||
|
||||
BodyCanvasWidget::~BodyCanvasWidget() { }
|
||||
|
||||
|
|
@ -308,6 +301,15 @@ namespace timeline {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
TimelineCanvas::TimelineCanvas (_Renderer groundingFac, _Renderer overlayFac)
|
||||
: Gtk::Layout{}
|
||||
, renderGrounding_{groundingFac}
|
||||
, renderOverlay_{overlayFac}
|
||||
{ }
|
||||
|
||||
|
||||
/**
|
||||
* Custom drawing of the timeline content area.
|
||||
* The inherited `Gtk::Layout::on_raw(Context)` handles all drawing of child widgets placed onto the virtual canvas.
|
||||
|
|
|
|||
|
|
@ -118,9 +118,8 @@ namespace timeline {
|
|||
TrackBody::establishTrackSpace (TrackProfile& profile)
|
||||
{
|
||||
bool topLevel = isnil (profile);
|
||||
|
||||
if (topLevel)
|
||||
profile.append_prelude(rulers_.size());
|
||||
profile.append_prelude (rulers_.size());
|
||||
|
||||
for (auto& ruler : rulers_)
|
||||
{
|
||||
|
|
@ -130,7 +129,7 @@ namespace timeline {
|
|||
profile.append_gap (gapHeight);
|
||||
}
|
||||
profile.append_content (this->contentHeight_);
|
||||
if (not isnil(subTracks_))
|
||||
if (not isnil (subTracks_))
|
||||
{
|
||||
profile.addSlopeDown();
|
||||
for (TrackBody* subTrack : subTracks_)
|
||||
|
|
@ -139,7 +138,7 @@ namespace timeline {
|
|||
}
|
||||
|
||||
if (topLevel)
|
||||
profile.append_coda(TIMELINE_BOTTOM_PADDING_px);
|
||||
profile.append_coda (TIMELINE_BOTTOM_PADDING_px);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,10 @@
|
|||
|
||||
/** @file track-presenter.cpp
|
||||
** Implementation details of track presentation management.
|
||||
** Especially here we define the model binding of all sub-elements belonging
|
||||
** to a given track. The TrackPresenter::buildMutator() implementation hooks up
|
||||
** the necessary callbacks, to allow adding and removing of sub elements and properties
|
||||
** of a track, by sending appropriate _mutation messages_ over the stage::UiBus.
|
||||
**
|
||||
** @todo WIP-WIP-WIP as of 12/2016
|
||||
** @todo as of 10/2018 timeline display in the UI is rebuilt to match the architecture
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace timeline {
|
|||
~DisplayFrame()
|
||||
{
|
||||
TODO ("cause the managed presentation elements to detach from their parents");
|
||||
}
|
||||
} ///////////////////////////////////TICKET #1198 -- clarify to what extent esp. the header widgets need to be actively removed from the display structure. Is it sufficient just to kill the TrackHeadWidget
|
||||
|
||||
void
|
||||
setTrackName (cuString& name)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue