fix update tips after importing brushes

This commit is contained in:
2019-09-27 09:02:40 +02:00
parent fb25178416
commit c26a4d1e86
2 changed files with 53 additions and 38 deletions

View File

@@ -183,43 +183,7 @@ void NodePanelBrush::init()
}
if (m_container->m_children.empty() && !m_dir_name.empty())
{
auto icons = Asset::list_files("data/" + m_dir_name, ".*\\.png$");
for (auto& i : icons)
{
std::string path = "data/" + m_dir_name + "/thumbs/" + i;
std::string path_hi = "data/" + m_dir_name + "/" + i;
NodeButtonBrush* brush = new NodeButtonBrush;
m_container->add_child(brush);
brush->init();
brush->create();
brush->loaded();
brush->set_icon(path.c_str());
brush->thumb_path = path;
brush->high_path = path_hi;
brush->brush_name = i;
brush->m_user_brush = false; // system brush, cannot be deleted from file
brush->on_click = std::bind(&NodePanelBrush::handle_click, this, std::placeholders::_1);
}
auto custom_icons = Asset::list_files(App::I->data_path + "/" + m_dir_name, ".*\\.png$");
for (auto& i : custom_icons)
{
std::string path_thumb = App::I->data_path + "/" + m_dir_name + "/thumbs/" + i;
std::string path_high = App::I->data_path + "/" + m_dir_name + "/" + i;
NodeButtonBrush* brush = new NodeButtonBrush;
m_container->add_child(brush);
brush->init();
brush->create();
brush->loaded();
brush->set_icon(path_thumb.c_str());
brush->thumb_path = path_thumb;
brush->high_path = path_high;
brush->brush_name = i;
brush->m_user_brush = true;
brush->on_click = std::bind(&NodePanelBrush::handle_click, this, std::placeholders::_1);
}
}
scan();
save();
}
@@ -363,6 +327,52 @@ void NodePanelBrush::clear()
m_container->remove_all_children();
}
void NodePanelBrush::scan()
{
auto icons = Asset::list_files("data/" + m_dir_name, ".*\\.png$");
for (auto& i : icons)
{
std::string path = "data/" + m_dir_name + "/thumbs/" + i;
std::string path_hi = "data/" + m_dir_name + "/" + i;
NodeButtonBrush* brush = new NodeButtonBrush;
m_container->add_child(brush);
brush->init();
brush->create();
brush->loaded();
brush->set_icon(path.c_str());
brush->thumb_path = path;
brush->high_path = path_hi;
brush->brush_name = i;
brush->m_user_brush = false; // system brush, cannot be deleted from file
brush->on_click = std::bind(&NodePanelBrush::handle_click, this, std::placeholders::_1);
}
auto custom_icons = Asset::list_files(App::I->data_path + "/" + m_dir_name, ".*\\.png$");
for (auto& i : custom_icons)
{
std::string path_thumb = App::I->data_path + "/" + m_dir_name + "/thumbs/" + i;
std::string path_high = App::I->data_path + "/" + m_dir_name + "/" + i;
NodeButtonBrush* brush = new NodeButtonBrush;
m_container->add_child(brush);
brush->init();
brush->create();
brush->loaded();
brush->set_icon(path_thumb.c_str());
brush->thumb_path = path_thumb;
brush->high_path = path_high;
brush->brush_name = i;
brush->m_user_brush = true;
brush->on_click = std::bind(&NodePanelBrush::handle_click, this, std::placeholders::_1);
}
}
void NodePanelBrush::reload()
{
clear();
scan();
save();
}
void NodePanelBrush::added(Node* parent)
{
m_interacted = false;
@@ -482,7 +492,7 @@ void NodePanelBrushPreset::init()
};
m_btn_menu = find<NodeButtonCustom>("btn-menu");
m_btn_menu->on_click = [this](Node* b) {
auto popup = m_manager->instantiate<NodePopupMenu>("tpl-brush-popup");
auto popup = add_child_file<NodePopupMenu>("data/dialogs/panel-brushes.xml", "tpl-brush-popup");
popup->SetPosition(b->m_pos.x + b->m_size.x, b->m_pos.y);
root()->add_child(popup);
root()->update();
@@ -938,6 +948,8 @@ bool NodePanelBrushPreset::import_ppbr(const std::string& path)
}
save();
App::I->stroke->m_brush_popup->reload();
pb->destroy();
return true;
@@ -1015,6 +1027,7 @@ bool NodePanelBrushPreset::import_abr(const std::string& path)
});
save();
App::I->stroke->m_brush_popup->reload();
pb->destroy();
return true;

View File

@@ -54,6 +54,8 @@ public:
bool save();
bool restore();
void clear();
void scan();
void reload();
};
// -----------------------------------------------------------------------