summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorTomasz Chabora <kobewi4e@gmail.com>2020-11-15 01:54:24 +0100
committerkobewi <kobewi4e@gmail.com>2021-03-23 12:49:19 +0100
commiteb4082b24a5ad037fff8b3c881bbdec78a9a26ed (patch)
tree2bb0cfad0c69e5ca3398229d678bd4145c63a87e /editor
parent9e7348f78852b965a628193289075e3a10f1ef85 (diff)
Add option to exclude selected resources on export
Diffstat (limited to 'editor')
-rw-r--r--editor/editor_export.cpp13
-rw-r--r--editor/editor_export.h1
-rw-r--r--editor/project_export.cpp1
3 files changed, 15 insertions, 0 deletions
diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp
index 97800fe961..db1c6e0407 100644
--- a/editor/editor_export.cpp
+++ b/editor/editor_export.cpp
@@ -717,6 +717,12 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
if (p_preset->get_export_filter() == EditorExportPreset::EXPORT_ALL_RESOURCES) {
//find stuff
_export_find_resources(EditorFileSystem::get_singleton()->get_filesystem(), paths);
+ } else if (p_preset->get_export_filter() == EditorExportPreset::EXCLUDE_SELECTED_RESOURCES) {
+ _export_find_resources(EditorFileSystem::get_singleton()->get_filesystem(), paths);
+ Vector<String> files = p_preset->get_files_to_export();
+ for (int i = 0; i < files.size(); i++) {
+ paths.erase(files[i]);
+ }
} else {
bool scenes_only = p_preset->get_export_filter() == EditorExportPreset::EXPORT_SELECTED_SCENES;
@@ -1303,6 +1309,10 @@ void EditorExport::_save() {
config->set_value(section, "export_filter", "resources");
save_files = true;
} break;
+ case EditorExportPreset::EXCLUDE_SELECTED_RESOURCES: {
+ config->set_value(section, "export_filter", "exclude");
+ save_files = true;
+ } break;
}
if (save_files) {
@@ -1481,6 +1491,9 @@ void EditorExport::load_config() {
} else if (export_filter == "resources") {
preset->set_export_filter(EditorExportPreset::EXPORT_SELECTED_RESOURCES);
get_files = true;
+ } else if (export_filter == "exclude") {
+ preset->set_export_filter(EditorExportPreset::EXCLUDE_SELECTED_RESOURCES);
+ get_files = true;
}
if (get_files) {
diff --git a/editor/editor_export.h b/editor/editor_export.h
index 09feaad255..b83597bbf6 100644
--- a/editor/editor_export.h
+++ b/editor/editor_export.h
@@ -50,6 +50,7 @@ public:
EXPORT_ALL_RESOURCES,
EXPORT_SELECTED_SCENES,
EXPORT_SELECTED_RESOURCES,
+ EXCLUDE_SELECTED_RESOURCES,
};
enum ScriptExportMode {
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index e8c2b1f954..557fd40207 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -1029,6 +1029,7 @@ ProjectExportDialog::ProjectExportDialog() {
export_filter->add_item(TTR("Export all resources in the project"));
export_filter->add_item(TTR("Export selected scenes (and dependencies)"));
export_filter->add_item(TTR("Export selected resources (and dependencies)"));
+ export_filter->add_item(TTR("Export all resources in the project except resources checked below"));
resources_vb->add_margin_child(TTR("Export Mode:"), export_filter);
export_filter->connect("item_selected", callable_mp(this, &ProjectExportDialog::_export_type_changed));