OSDN Git Service

影の種類設定のセーブ/ロード
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / gui / ConfigDialog.java
index 56bfdae..e2f7838 100644 (file)
@@ -9,6 +9,7 @@ import java.util.Arrays;
 import java.util.List;
 import javax.swing.BorderFactory;
 import javax.swing.ButtonGroup;
+import javax.swing.ComboBoxModel;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.DefaultListModel;
 import javax.swing.GroupLayout;
@@ -418,6 +419,38 @@ public class ConfigDialog extends JDialog {
                 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
 
+        final JPanel pnlFileProhibit = new JPanel();
+        pnlFileProhibit.setBorder(BorderFactory.createTitledBorder("禁則文字"));
+        final JLabel lblReplaceFrom = new JLabel("置換対象文字");
+        final JLabel lblReplaceTo = new JLabel("置換後文字");
+
+        final GroupLayout glProhibit = new GroupLayout(pnlFileProhibit);
+        glProhibit.setAutoCreateContainerGaps(true);
+        glProhibit.setAutoCreateGaps(true);
+        pnlFileProhibit.setLayout(glProhibit);
+
+        glProhibit.setHorizontalGroup(glProhibit.createSequentialGroup()
+            .addGroup(glProhibit.createParallelGroup()
+                .addComponent(lblReplaceFrom)
+                .addComponent(lblReplaceTo)
+            )
+            .addGroup(glProhibit.createParallelGroup()
+                .addComponent(fldReplaceFrom)
+                .addComponent(fldReplaceTo)
+            )
+        );
+
+        glProhibit.setVerticalGroup(glProhibit.createSequentialGroup()
+            .addGroup(glProhibit.createParallelGroup(Alignment.BASELINE)
+                .addComponent(lblReplaceFrom)
+                .addComponent(fldReplaceFrom)
+            )
+            .addGroup(glProhibit.createParallelGroup(Alignment.BASELINE)
+                .addComponent(lblReplaceTo)
+                .addComponent(fldReplaceTo)
+            )
+        );
+
         GroupLayout gl_pnlFile = new GroupLayout(pnlFile);
         pnlFile.setLayout(gl_pnlFile);
         gl_pnlFile.setHorizontalGroup(
@@ -427,7 +460,9 @@ public class ConfigDialog extends JDialog {
                 .addGroup(gl_pnlFile.createParallelGroup(GroupLayout.Alignment.TRAILING)
                     .addComponent(pnlFileOutput, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                     .addComponent(pnlFileVideo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
-                    .addComponent(pnlFileComment, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+                    .addComponent(pnlFileComment, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                    .addComponent(pnlFileProhibit, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                )
                 .addContainerGap())
         );
         gl_pnlFile.setVerticalGroup(
@@ -439,6 +474,8 @@ public class ConfigDialog extends JDialog {
                 .addComponent(pnlFileComment, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                 .addPreferredGap(ComponentPlacement.RELATED)
                 .addComponent(pnlFileOutput, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addComponent(pnlFileProhibit, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                 .addContainerGap())
         );
 
@@ -519,6 +556,9 @@ public class ConfigDialog extends JDialog {
         lblFontIndex.setText("フォント番号");
 
         lblFontShadow.setText("影の種類");
+        final ComboBoxModel<String> cbmFontShadow
+                = new DefaultComboBoxModel<>(new String[]{"0:なし", "1:ニコニコ動画風", "2:右下", "3:囲い込み"});
+        cmbFontShadow.setModel(cbmFontShadow);
 
         GroupLayout gl_pnlCommentAdvanced = new GroupLayout(pnlCommentAdvanced);
         pnlCommentAdvanced.setLayout(gl_pnlCommentAdvanced);
@@ -1087,6 +1127,9 @@ public class ConfigDialog extends JDialog {
     private final JCheckBox cbOutputEnable;
     private final JCheckBox cbOutputCommentOverlay;
     private final JCheckBox cbOutputDisplayProgress;
+    // ファイル - 禁則文字
+    private final JTextField fldReplaceFrom = new JTextField();
+    private final JTextField fldReplaceTo = new JTextField();
     // コメント
     // コメント
     private final JCheckBox cbCommentSizeAuto;
@@ -1190,6 +1233,12 @@ public class ConfigDialog extends JDialog {
         cbOutputCommentOverlay.setSelected(p.getOutputCommentOverlay());
         cbOutputDisplayProgress.setSelected(p.getOutputDisplayProgress());
 
+        /*
+         * ファイル - 禁則文字
+         */
+        fldReplaceFrom.setText(p.getReplaceFrom());
+        fldReplaceTo.setText(p.getReplaceTo());
+
         /**
          * コメント
          */
@@ -1205,7 +1254,7 @@ public class ConfigDialog extends JDialog {
          */
         fldFontPath.setText(p.getFontPath());
         fldFontIndex.setText(p.getFontIndex());
-        // TODO 影の種類はコンボボックス
+        cmbFontShadow.setSelectedIndex(p.getFontShadow());
         cbFontSizeArrangeDisable.setSelected(p.getFontSizeArrangeDisable());
         cbCommentOpaque.setSelected(p.getCommentOpaque());
 
@@ -1283,7 +1332,13 @@ public class ConfigDialog extends JDialog {
         p.setOutputCommentOverlay(cbOutputCommentOverlay.isSelected());
         p.setOutputDisplayProgress(cbOutputDisplayProgress.isSelected());
 
-        /**
+        /*
+         * ファイル - 禁則文字
+         */
+        p.setReplaceFrom(fldReplaceFrom.getText());
+        p.setReplaceTo(fldReplaceTo.getText());
+
+        /*
          * コメント
          */
         p.setCommentSizeAutosize(cbCommentSizeAuto.isSelected());
@@ -1298,7 +1353,7 @@ public class ConfigDialog extends JDialog {
          */
         p.setFontPath(fldFontPath.getText());
         p.setFontIndex(fldFontIndex.getText());
-        // TODO 影の種類はコンボボックス
+        p.setFontShadow(cmbFontShadow.getSelectedIndex());
         p.setFontSizeArrangeDisable(cbFontSizeArrangeDisable.isSelected());
         p.setCommentOpaque(cbCommentOpaque.isSelected());