From e40d2cb13d092c010098301fe41417649cab1ed0 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Mon, 24 Nov 2014 21:07:31 +0100 Subject: [PATCH] #709 Text Export to Single File with custom filename: fixed --- .../decompiler/flash/configuration/Configuration.java | 3 +++ .../decompiler/flash/exporters/TextExporter.java | 11 +++++++++-- libsrc/ffdec_lib/src/com/jpexs/helpers/Path.java | 5 +++-- .../gui/locales/AdvancedSettingsDialog.properties | 3 +++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java index b548e0da6..5e77eb815 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java @@ -135,6 +135,9 @@ public class Configuration { @ConfigurationCategory("export") public static final ConfigurationItem openFolderAfterFlaExport = null; + @ConfigurationCategory("export") + public static final ConfigurationItem overrideTextExportFileName = null; + @ConfigurationDefaultBoolean(false) @ConfigurationCategory("debug") public static final ConfigurationItem useDetailedLogging = null; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/TextExporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/TextExporter.java index 3202ae541..ea0796e4a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/TextExporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/TextExporter.java @@ -29,6 +29,7 @@ import com.jpexs.decompiler.flash.tags.base.BoundedTag; import com.jpexs.decompiler.flash.tags.base.TextTag; import com.jpexs.decompiler.flash.types.CXFORMWITHALPHA; import com.jpexs.helpers.Helper; +import com.jpexs.helpers.Path; import com.jpexs.helpers.utf8.Utf8Helper; import java.io.File; import java.io.FileOutputStream; @@ -84,8 +85,14 @@ public class TextExporter { } if (settings.singleFile) { - final File file = new File(outdir + File.separator - + (settings.mode == TextExportMode.FORMATTED ? TEXT_EXPORT_FILENAME_FORMATTED : TEXT_EXPORT_FILENAME_PLAIN)); + String fileName = Configuration.overrideTextExportFileName.get(); + if (fileName != null) { + String swfName = Path.getFileNameWithoutExtension(new File(tags.get(0).getSwf().getShortFileName())); + fileName = fileName.replace("{fileName}", swfName); + } else { + fileName = settings.mode == TextExportMode.FORMATTED ? TEXT_EXPORT_FILENAME_FORMATTED : TEXT_EXPORT_FILENAME_PLAIN; + } + final File file = new File(outdir + File.separator + fileName); try (FileOutputStream fos = new FileOutputStream(file)) { for (final Tag t : tags) { if (t instanceof TextTag) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/helpers/Path.java b/libsrc/ffdec_lib/src/com/jpexs/helpers/Path.java index ee045ca80..cd8de7655 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/helpers/Path.java +++ b/libsrc/ffdec_lib/src/com/jpexs/helpers/Path.java @@ -12,7 +12,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.helpers; import java.io.File; @@ -65,7 +66,7 @@ public class Path { int i = s.lastIndexOf('.'); if (i > 0 && i < s.length() - 1) { - ext = s.substring(0, i).toLowerCase(); + ext = s.substring(0, i); } return ext; } diff --git a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties index 0b75578ec..1f50b84ca 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog.properties @@ -293,3 +293,6 @@ config.description.tagTreeShowEmptyFolders = Show empty folders in tag tree. config.name.autoLoadEmbeddedSwfs = Auto load embedded SWFs config.description.autoLoadEmbeddedSwfs = Automaticaly load the embedded SWFs from DefineBinaryData tags. + +config.name.overrideTextExportFileName = Override text export filename +config.description.overrideTextExportFileName = You can customite the filename of the expoted text. Use {filename} placeholder to use the filename of current SWF.