Character sets are limited to GB2312, Shift_JIS, Unicode, and all singlebyte.

Fixed font code points - proper characters display, adding, etc.
This commit is contained in:
Jindra Petřík
2022-11-14 10:04:55 +01:00
parent c266037785
commit 4c6ccf0d63
20 changed files with 21146 additions and 34 deletions
@@ -25,6 +25,7 @@ import com.jpexs.decompiler.flash.tags.base.FontTag;
import com.jpexs.decompiler.flash.tags.base.TextTag;
import com.jpexs.decompiler.flash.treeitems.TreeItem;
import com.jpexs.helpers.Helper;
import com.jpexs.helpers.utf8.Utf8Helper;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
@@ -166,6 +167,12 @@ public class FontPanel extends JPanel {
if (font.getSize() != 1024) { //Do not resize if not required so we can have single instance of custom fonts
font = font.deriveFont(f.getFontStyle(), 1024);
}
if (Utf8Helper.charToCodePoint(c, ft.getCodesCharset()) == -1) {
String msg = translate("error.charset.nocharacter").replace("%char%", "" + c);
Logger.getLogger(FontPanel.class.getName()).log(Level.SEVERE, msg);
ViewMessages.showMessageDialog(FontPanel.this, msg, translate("error"), JOptionPane.ERROR_MESSAGE);
return;
}
if (!font.canDisplay(c)) {
String msg = translate("error.font.nocharacter").replace("%char%", "" + c);
Logger.getLogger(FontPanel.class.getName()).log(Level.SEVERE, msg);
@@ -949,4 +949,6 @@ contextmenu.moveTagWithDependencies = Move tag with dependencies to
contextmenu.moveUp = Move up
contextmenu.moveDown = Move down
contextmenu.changeCharset = Change charset (Current: %charset%)
contextmenu.more = More...
contextmenu.more = More...
error.charset.nocharacter = Selected charset does not contain character "%char%".
@@ -921,4 +921,6 @@ contextmenu.moveTagWithDependencies = P\u0159esunout tag se z\u00e1vislostmi do
contextmenu.moveUp = Posunout nahoru
contextmenu.moveDown = Posunout dol\u016f
contextmenu.changeCharset = Zm\u011bnit znakovou sadu (Nyn\u011bj\u0161\u00ed: %charset%)
contextmenu.more = V\u00edce...
contextmenu.more = V\u00edce...
error.charset.nocharacter = Vybran\u00e1 znakov\u00e1 sada neobsahuje znak "%char%".
@@ -83,6 +83,7 @@ import com.jpexs.decompiler.graph.CompilationException;
import com.jpexs.decompiler.graph.DottedChain;
import com.jpexs.helpers.Helper;
import com.jpexs.helpers.Reference;
import com.jpexs.helpers.utf8.Utf8Helper;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
@@ -231,7 +232,7 @@ public class TagTreeContextMenu extends JPopupMenu {
changeCharsetMenu = new JMenu();
JMenu currentCharsetMenu = changeCharsetMenu;
int charsetCnt = 0;
for (String charsetStr : Charset.availableCharsets().keySet()) {
for (String charsetStr : Utf8Helper.allowedCharsets) {
if (charsetCnt == 30) {
JMenu moreMenu = new JMenu(mainPanel.translate("contextmenu.more"));
currentCharsetMenu.add(moreMenu);