OSDN Git Service

・TVアニメ「Fate/...」のサブタイトル分離がうまくいかない問題を修正 work
authorpeeweedee <peeweedee@users.sourceforge.jp>
Sun, 2 Nov 2014 06:16:02 +0000 (15:16 +0900)
committerpeeweedee <peeweedee@users.sourceforge.jp>
Sun, 2 Nov 2014 06:16:02 +0000 (15:16 +0900)
・各種設定のサブタイトル分離設定が①更新してもすぐに反映されない②有効無効の判定が逆転している問題を修正

TinyBannavi/src/tainavi/AbsPaperView.java
TinyBannavi/src/tainavi/AbsSettingView.java
TinyBannavi/src/tainavi/TVProgramUtils.java
TinyBannavi/src/tainavi/Viewer.java

index 4b9468f..004745a 100644 (file)
@@ -295,7 +295,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
        public AbsPaperView() {\r
                \r
                super();\r
-               \r
+\r
                this.setLayout(new BorderLayout());\r
                this.add(getJTextPane_detail(), BorderLayout.PAGE_START);\r
                this.add(getJSplitPane_view(), BorderLayout.CENTER);\r
@@ -837,7 +837,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
        public void buildMainViewByDate() {\r
                \r
                if (env.getDebug()) System.out.println(DBGID+"CALLED buildMainViewByDate()");\r
-               \r
+\r
                if (jLayeredPane_space_main_view_byMakeshift == null) {\r
                        jLayeredPane_space_main_view_byMakeshift = new JLayeredPane();\r
                        for (int i=0; i<framebuffersize; i++) {\r
index b3bdf51..3fae5fd 100644 (file)
@@ -752,7 +752,7 @@ public abstract class AbsSettingView extends JScrollPane {
 \r
                        y+=(PARTS_HEIGHT+SEP_HEIGHT);\r
                        CommonSwingUtils.putComponentOn(jPanel_setting, jCBP_splitEpno = new JCheckBoxPanel("タイトルに話数が含まれる場合に以降を分離する",LABEL_WIDTH), PARTS_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);\r
-                       jCBP_splitEpno.setSelected( ! env.getSplitEpno());\r
+                       jCBP_splitEpno.setSelected(env.getSplitEpno());\r
                        jCBP_splitEpno.addItemListener(IL_RELOAD_PROG_NEEDED);\r
                                \r
                        y+=(PARTS_HEIGHT+SEP_HEIGHT);\r
index 2059b1c..cb89898 100644 (file)
@@ -523,32 +523,37 @@ public class TVProgramUtils implements Cloneable {
                else {\r
                        if ( genre == ProgGenre.DORAMA ) {\r
                                // ドラマの場合は、"「*」"での分割をしない(土曜ドラマ「タイトル」とかあるため)\r
-                               Matcher mc = Pattern.compile(spep_expr_dorama).matcher(title);\r
+                               Matcher mc = Pattern.compile(SPEP_EXPR_DORAMA).matcher(title);\r
                                if ( mc.find() ) {\r
                                        return(new String[] { mc.group(1),mc.group(2)+" " });\r
                                }\r
                        }\r
                        else {\r
+                               String ani = "";\r
+                               String tit = title;\r
+                               Matcher mani = Pattern.compile("^(\\s*(?:TV|TV)?アニメ\\s*)(.*)$").matcher(title);\r
+                               if ( mani.find() ) {\r
+                                       ani = mani.group(1);\r
+                                       tit = mani.group(2);\r
+                               }\r
+\r
                                // いきなり「で始まる場合や、タイトル中に『TOKYO「萌」探偵』のように「ほげほげ」を含む場合\r
-                               Matcher mc = Pattern.compile("^([^  ]*「.+?」[^  ]+)(.*)$").matcher(title);\r
-                               if ( mc.find() ) {\r
-                                       Matcher md = Pattern.compile("^[  ]*(.*?)[  ]*?"+spep_expr).matcher(mc.group(2));\r
-                                       if ( md.find() ) {\r
-                                               if ( md.group(1).length() == 0 ) {\r
-                                                       return(new String[] { mc.group(1),md.group(2)+" " });\r
-                                               }\r
-                                               else {\r
-                                                       return(new String[] { mc.group(1)+" "+md.group(1),md.group(2)+" " });\r
+                               Matcher mc = Pattern.compile("^([^  ]*「.+?」[^  ]+)(.*)$").matcher(tit);\r
+                               if (mc.find()) {\r
+                                       Matcher md = Pattern.compile("^[  ]*(.*?)[  ]*?" + SPEP_EXPR).matcher(mc.group(2));\r
+                                       if (md.find()) {\r
+                                               if (md.group(1).length() == 0) {\r
+                                                       return (new String[]{ani+mc.group(1), md.group(2) + " "});\r
+                                               } else {\r
+                                                       return (new String[]{ani+mc.group(1) + " " + md.group(1), md.group(2) + " "});\r
                                                }\r
-                                       }\r
-                                       else {\r
-                                               return(new String[] { title,"" });\r
+                                       } else {\r
+                                               return (new String[]{ani+tit, ""});\r
                                        }\r
                                }\r
-                               // まあこれが普通\r
-                               mc = Pattern.compile("^(.+?)[  ]*?"+spep_expr).matcher(title);\r
-                               if ( mc.find() ) {\r
-                                       return(new String[] { mc.group(1),mc.group(2)+" " });\r
+                               mc = Pattern.compile("^(.+?)[  ]*?" + SPEP_EXPR).matcher(tit);\r
+                               if (mc.find()) {\r
+                                       return (new String[]{ani+mc.group(1), mc.group(2) + " "});\r
                                }\r
                        }\r
                }\r
@@ -556,10 +561,10 @@ public class TVProgramUtils implements Cloneable {
        }\r
        \r
        // サブタイトル判定条件\r
-       private static final String spep_expr = "(([<<]?[((##♯第全「][第]?[12345678901234567890一二三四五六七八九十百千]+?[回話章]?|「).*)$";\r
+       private static final String SPEP_EXPR = "(([<<]?[((##♯第全「][第]?[12345678901234567890一二三四五六七八九十百千]+?[回話章]?|「).*)$";\r
        \r
        // サブタイトル判定条件(ジャンル=ドラマ専用)\r
-       private static final String spep_expr_dorama = "^(.+?)[  ]*?(([<<]?[((##♯第全「][第]?[12345678901234567890一二三四五六七八九十百千]+?[回話章]?).*)$";\r
+       private static final String SPEP_EXPR_DORAMA = "^(.+?)[  ]*?(([<<]?[((##♯第全「][第]?[12345678901234567890一二三四五六七八九十百千]+?[回話章]?).*)$";\r
        \r
        \r
        /**\r
index 815cf30..d0ebd9b 100644 (file)
@@ -3456,7 +3456,7 @@ public class Viewer extends JFrame implements ChangeListener,TickTimerListener,H
                                                if ( tvd.isEqualsGenre(ProgGenre.ANIME, null) ) {\r
                                                        if ( pl.Center.startsWith("NHK") || pl.Center.startsWith("NHK") ) {\r
                                                                // NHK系で先頭が「アニメ 」ではじまるものから「アニメ 」を削除する\r
-                                                               tvd.title = tvd.title.replaceFirst("^アニメ[  ・]+","");\r
+                                                               tvd.title = tvd.title.replaceFirst("^(?:TV|TV)アニメ[  ・]+","");\r
                                                                tvd.titlePop = TraceProgram.replacePop(tvd.title);\r
                                                        }\r
                                                        if ( tvd.title.contains("コメンタリ") || tvd.detail.contains("コメンタリ") ) {\r
@@ -3741,7 +3741,10 @@ public class Viewer extends JFrame implements ChangeListener,TickTimerListener,H
                listed.setRsvdLineColor((env.getRsvdLineEnhance())?(env.getRsvdLineColor()):(null));\r
                listed.setPickedLineColor((env.getRsvdLineEnhance())?(env.getPickedLineColor()):(null));\r
                listed.setCurrentLineColor((env.getCurrentLineEnhance())?(env.getCurrentLineColor()):(null));\r
-               \r
+\r
+               //\r
+               paper.updateFonts(env);\r
+\r
                // システムトレイアイコン\r
                setTrayIconVisible(env.getShowSysTray());\r
                setXButtonAction(env.getShowSysTray() && env.getHideToTray());\r
@@ -5085,7 +5088,7 @@ public class Viewer extends JFrame implements ChangeListener,TickTimerListener,H
                        e.printStackTrace();\r
                        System.exit(1);\r
                }\r
-               \r
+\r
                // 背景色設定ダイアログにフォント名の一覧を設定する\r
                pcwin.setFontList(vwfont);\r
                \r