update timeline layout and frame counter, add 500ms update timer on windows to force redraw, fix animation frames export

This commit is contained in:
2018-03-10 18:28:41 +01:00
parent f45a7c2e67
commit 660a7ea1ef
4 changed files with 29 additions and 30 deletions

View File

@@ -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)