update timeline layout and frame counter, add 500ms update timer on windows to force redraw, fix animation frames export
This commit is contained in:
@@ -580,7 +580,8 @@ void App::initLayout()
|
||||
|
||||
if (auto* slider = layout[main_id]->find<NodeSliderH>("frames-slider"))
|
||||
{
|
||||
slider->on_value_changed = [this](Node*, float value)
|
||||
auto frame_text = layout[main_id]->find<NodeText>("timeline-frame");
|
||||
slider->on_value_changed = [this, frame_text](Node*, float value)
|
||||
{
|
||||
auto& c = *ui::Canvas::I;
|
||||
|
||||
@@ -590,7 +591,7 @@ void App::initLayout()
|
||||
layers->handle_layer_opacity(l, .0f);
|
||||
}
|
||||
|
||||
int current_layer = (int)floor(value * c.m_layers.size());
|
||||
int current_layer = (int)std::min<int>(floor(value * c.m_layers.size()), c.m_layers.size() - 1);
|
||||
auto l = layers->get_layer_at(current_layer);
|
||||
layers->handle_layer_selected(l);
|
||||
layers->handle_layer_opacity(l, 1.f);
|
||||
@@ -599,8 +600,17 @@ void App::initLayout()
|
||||
auto l = layers->get_layer_at(current_layer - 1);
|
||||
layers->handle_layer_opacity(l, .25f);
|
||||
}
|
||||
|
||||
if (frame_text)
|
||||
{
|
||||
char str[16];
|
||||
snprintf(str, sizeof(str), "%02d", current_layer);
|
||||
frame_text->set_text(str);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
App::I.redraw = true;
|
||||
};
|
||||
LOG("initializing layout xml");
|
||||
if (layout.m_loaded)
|
||||
|
||||
Reference in New Issue
Block a user