implement frames save and open from ppi

This commit is contained in:
2019-10-17 23:41:37 +02:00
parent 880eb7a406
commit 4e0520da80
9 changed files with 165 additions and 128 deletions

View File

@@ -37,21 +37,16 @@ void NodePanelAnimation::init_controls()
Canvas::I->layer().add_frame();
load_layers();
};
btn_up->on_click = [this](Node*) {
auto& layers = Canvas::I->m_layers;
auto layer = std::find_if(layers.begin(), layers.end(),
[id = m_selected_frame_layer_id](const auto& l) { return l->id == id; });
if (layer != layers.end())
(*layer)->m_frames[m_selected_frame_index].m_duration++;
};
btn_up->on_click = [this](Node*) {
if (auto layer = Canvas::I->layer_with_id(m_selected_frame_layer_id))
layer->m_frames[m_selected_frame_index].m_duration++;
layer->m_frames[m_selected_frame_index].m_duration =
glm::max(layer->m_frames[m_selected_frame_index].m_duration + 1, 1);
load_layers();
};
btn_down->on_click = [this](Node*) {
if (auto layer = Canvas::I->layer_with_id(m_selected_frame_layer_id))
layer->m_frames[m_selected_frame_index].m_duration--;
layer->m_frames[m_selected_frame_index].m_duration =
glm::max(layer->m_frames[m_selected_frame_index].m_duration - 1, 1);
load_layers();
};
@@ -85,9 +80,9 @@ void NodePanelAnimation::load_layers()
}
b->on_click = [this, fi, lid=layers[i]->id] (Node* target) {
auto frame = static_cast<NodeAnimationFrame*>(target);
frame->set_active(true);
if (m_selected_frame)
m_selected_frame->set_active(false);
frame->set_active(true);
m_selected_frame = frame;
m_selected_frame_layer_id = lid;
m_selected_frame_index = fi;