use unique_ptr to hold the Layers vector

This commit is contained in:
2019-02-24 13:19:15 +01:00
parent 3d1412aee2
commit dfa44dbb55
13 changed files with 216 additions and 200 deletions

View File

@@ -153,14 +153,14 @@ void App::init_sidebar()
auto& src = Canvas::I->m_layers[Canvas::I->m_order[source_index]];
for (int i = 0; i < 6; i++)
{
if (!src.m_dirty_face[i])
if (!src->m_dirty_face[i])
continue;
dst.m_rtt[i].copy(src.m_rtt[i]);
dst.m_dirty_face[i] = src.m_dirty_face[i];
dst.m_dirty_box[i] = src.m_dirty_box[i];
dst.m_opacity = src.m_opacity;
dst.m_blend_mode = src.m_blend_mode;
dst.m_alpha_locked = src.m_alpha_locked;
dst->m_rtt[i].copy(src->m_rtt[i]);
dst->m_dirty_face[i] = src->m_dirty_face[i];
dst->m_dirty_box[i] = src->m_dirty_box[i];
dst->m_opacity = src->m_opacity;
dst->m_blend_mode = src->m_blend_mode;
dst->m_alpha_locked = src->m_alpha_locked;
}
Canvas::I->m_unsaved = true;
title_update();
@@ -183,31 +183,31 @@ void App::init_sidebar()
};
layers->on_layer_opacity_changed = [this](Node*, int idx, float value) {
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]].m_opacity = value;
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]]->m_opacity = value;
canvas->m_canvas->m_unsaved = true;
title_update();
};
layers->on_layer_visibility_changed = [this](Node*, int idx, bool visible) {
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]].m_visible = visible;
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]]->m_visible = visible;
canvas->m_canvas->m_unsaved = true;
title_update();
};
layers->on_layer_alpha_lock_changed = [this](Node*, int idx, bool locked) {
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]].m_alpha_locked = locked;
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]]->m_alpha_locked = locked;
canvas->m_canvas->m_unsaved = true;
title_update();
};
layers->on_layer_blend_mode_changed = [this](Node*, int idx, int mode) {
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]].m_blend_mode = mode;
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]]->m_blend_mode = mode;
canvas->m_canvas->m_unsaved = true;
title_update();
};
layers->on_layer_highlight_changed = [this](Node*, int idx, bool highlight) {
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]].m_hightlight = highlight;
canvas->m_canvas->m_layers[canvas->m_canvas->m_order[idx]]->m_hightlight = highlight;
};
if (auto* button = layout[main_id]->find<NodeButtonCustom>("btn-stroke"))
{
@@ -786,7 +786,7 @@ void App::init_menu_layer()
canvas->m_canvas->layer_remove(current_idx_order);
layers->clear();
for (auto& i : canvas->m_canvas->m_order)
layers->add_layer(canvas->m_canvas->m_layers[i].m_name.c_str());
layers->add_layer(canvas->m_canvas->m_layers[i]->m_name.c_str());
layers->m_current_layer->m_selected = false;
layers->m_current_layer = layers->m_layers[current_idx_order - 1];
layers->m_current_layer->m_selected = true;
@@ -804,7 +804,7 @@ void App::init_menu_layer()
int down_layer_idx = order[current_idx_order - 1];
popup->find<NodeButtonCustom>("layer-merge")->
find<NodeText>("menu-label")->
set_text(("Merge with " + canvas->m_canvas->m_layers[down_layer_idx].m_name).c_str());
set_text(("Merge with " + canvas->m_canvas->m_layers[down_layer_idx]->m_name).c_str());
}
else
{