diff --git a/android/src/cpp/main.cpp b/android/src/cpp/main.cpp
index b8ab7b7..962455f 100644
--- a/android/src/cpp/main.cpp
+++ b/android/src/cpp/main.cpp
@@ -376,6 +376,7 @@ bool android_set_clipboard(const std::string& s)
bool android_create_dir(const std::string& path)
{
+ android_attach_jni();
jclass clazz = jni->GetObjectClass(g_engine.app->activity->clazz);
jmethodID method = jni->GetMethodID(clazz, "createDir", "(Ljava/lang/String;)Z");
jstring js = JniStringFromUTF8(path);
diff --git a/data/layout.xml b/data/layout.xml
index 815e929..f6f0132 100644
--- a/data/layout.xml
+++ b/data/layout.xml
@@ -59,28 +59,30 @@
-
+
+
+
-
+
-
+
-
+
-
+
-
+
diff --git a/src/app_dialogs.cpp b/src/app_dialogs.cpp
index 1ed14da..a7f3242 100644
--- a/src/app_dialogs.cpp
+++ b/src/app_dialogs.cpp
@@ -615,6 +615,7 @@ void App::dialog_ppbr_export()
info.email = dialog->txt_email->m_text;
info.descr = dialog->txt_descr->m_text;
info.header_image = dialog->m_header_image;
+ info.export_data = dialog->export_check->checked;
#if __IOS__
App::I->pick_file_save("ppbr",
[this, dialog, info] (std::string path) {
diff --git a/src/node_dialog_export_ppbr.cpp b/src/node_dialog_export_ppbr.cpp
index b2a1fee..0252af2 100644
--- a/src/node_dialog_export_ppbr.cpp
+++ b/src/node_dialog_export_ppbr.cpp
@@ -53,6 +53,7 @@ void NodeDialogExportPPBR::init_controls()
txt_email = find("info-email");
txt_url = find("info-url");
txt_descr = find("info-descr");
+ export_check = find("export-data");
}
void NodeDialogExportPPBR::open_header()
diff --git a/src/node_dialog_export_ppbr.h b/src/node_dialog_export_ppbr.h
index 49c432c..c53171a 100644
--- a/src/node_dialog_export_ppbr.h
+++ b/src/node_dialog_export_ppbr.h
@@ -5,6 +5,7 @@
#include "node_text.h"
#include "node_text_input.h"
#include "node_image_texture.h"
+#include "node_checkbox.h"
class NodeDialogExportPPBR : public NodeBorder
{
@@ -22,6 +23,7 @@ public:
NodeTextInput* txt_descr;
NodeTextInput* txt_url;
NodeTextInput* txt_email;
+ NodeCheckBox* export_check;
virtual Node* clone_instantiate() const override;
virtual void clone_finalize(Node* dest) const override;
virtual void init() override;
diff --git a/src/node_panel_brush.cpp b/src/node_panel_brush.cpp
index 76f12ce..f59255d 100644
--- a/src/node_panel_brush.cpp
+++ b/src/node_panel_brush.cpp
@@ -686,7 +686,9 @@ void NodePanelBrushPreset::add_brush(std::shared_ptr brush)
bool NodePanelBrushPreset::export_ppbr(const std::string& path, const PPBRInfo& info_data)
{
- std::regex r(R"((.*)[\\/]([^\\/]+)\.(\w+)$)");
+ LOG("export ppbr to: %s", path.c_str());
+
+ std::regex r(R"((.*)[\\/]([^\\/]+)(\.\w+)?$)");
std::smatch m;
if (!std::regex_search(path, m, r))
return false;
@@ -695,7 +697,7 @@ bool NodePanelBrushPreset::export_ppbr(const std::string& path, const PPBRInfo&
auto ext = m[3].str();
std::string out_path = base + "/" + name + "_data";
- bool path_created = Asset::create_dir(out_path);
+ bool path_created = info_data.export_data ? Asset::create_dir(out_path) : false;
std::ofstream f(path, std::ios::binary);
if (f.good())
@@ -805,6 +807,7 @@ bool NodePanelBrushPreset::export_ppbr(const std::string& path, const PPBRInfo&
return true;
}
+ LOG("export failed file creation");
return false;
}
diff --git a/src/node_panel_brush.h b/src/node_panel_brush.h
index 0712107..62f6596 100644
--- a/src/node_panel_brush.h
+++ b/src/node_panel_brush.h
@@ -95,6 +95,7 @@ public:
std::string url;
std::string descr;
std::shared_ptr header_image;
+ bool export_data;
};
Node* m_container;
diff --git a/src/util.cpp b/src/util.cpp
index acb3234..b461cae 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -579,8 +579,7 @@ std::wstring str2wstr(const std::string& str)
//return converted;
if (str.empty())
return {};
- using convert_typeX = std::codecvt_utf8;
- std::wstring_convert converterX;
+ std::wstring_convert, wchar_t> converterX;
return converterX.from_bytes(str);
}
@@ -594,8 +593,7 @@ std::string wstr2str(const std::wstring & wstr)
//return converted;
if (wstr.empty())
return {};
- using convert_typeX = std::codecvt_utf8;
- std::wstring_convert converterX;
+ std::wstring_convert, wchar_t> converterX;
return converterX.to_bytes(wstr);
}