create NodeDialogOpen and bind it to the layout template

This commit is contained in:
2017-05-02 00:15:27 +01:00
parent 16a53af679
commit 182c0b1baf
5 changed files with 58 additions and 12 deletions

View File

@@ -477,20 +477,24 @@ void App::initLayout()
button->on_click = [this,button](Node*) {
if (canvas)
{
//canvas->m_canvas->project_open(data_path);
//for (auto& i : canvas->m_canvas->m_order)
// layers->add_layer(canvas->m_canvas->m_layers[i].m_name.c_str());
// load thumbnail test
auto open_dialog = layout[const_hash("popup-dialog-open")]->m_children[0]->clone();
auto open_dialog = std::make_shared<NodeDialogOpen>();
open_dialog->m_manager = &layout;
open_dialog->data_path = data_path;
open_dialog->init();
open_dialog->create();
open_dialog->loaded();
layout[main_id]->add_child(open_dialog);
layout[main_id]->update();
if (open_dialog)
open_dialog->btn_ok->on_click = [this,open_dialog](Node*)
{
Image thumb = canvas->m_canvas->thumbnail_read(data_path);
auto image_tex = open_dialog->find<NodeImageTexture>("thumb-tex");
image_tex->tex.create(thumb);
}
canvas->m_canvas->project_open(data_path);
for (auto& i : canvas->m_canvas->m_order)
layers->add_layer(canvas->m_canvas->m_layers[i].m_name.c_str());
open_dialog->destroy();
};
}
};
}