diff --git a/pom.xml b/pom.xml
index 285742cd4..4981d95e5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 5.41
+ 5.42
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java b/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java
index 89063988d..0d5ecdfb5 100644
--- a/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java
+++ b/src/main/java/com/tonikelope/megabasterd/LabelTranslatorSingleton.java
@@ -41,6 +41,9 @@ public final class LabelTranslatorSingleton {
private void Spanish() {
+ _addTranslation("Font:", "Fuente:");
+ _addTranslation("DEFAULT", "POR DEFECTO");
+ _addTranslation("ALTERNATIVE", "ALTERNATIVA");
_addTranslation("Download latest version", "Descargar la última versión");
_addTranslation("PROVISION FAILED", "ERROR AL APROVISIONAR");
_addTranslation("Error registering download: file is already downloading.", "Error al registrar la descarga: el archivo ya se está descargando.");
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index 10a69ac79..09dee6b0c 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -47,7 +47,7 @@ import java.io.File;
*/
public final class MainPanel {
- public static final String VERSION = "5.41";
+ public static final String VERSION = "5.42";
public static final int THROTTLE_SLICE_SIZE = 16 * 1024;
public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024;
public static final int STREAMER_PORT = 1337;
@@ -55,7 +55,7 @@ public final class MainPanel {
public static final int DEFAULT_MEGA_PROXY_PORT = 9999;
public static final String DEFAULT_LANGUAGE = "EN";
public static final boolean DEFAULT_SMART_PROXY = true;
- public static final Font DEFAULT_FONT = createAndRegisterFont("/fonts/Kalam-Regular.ttf");
+ public static Font DEFAULT_FONT = createAndRegisterFont("/fonts/Kalam-Regular.ttf");
public static final float ZOOM_FACTOR = 1.0f;
public static final String DEFAULT_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0";
public static final String ICON_FILE = "/images/mbasterd_32.png";
@@ -66,6 +66,7 @@ public final class MainPanel {
private static String _proxy_user;
private static String _proxy_pass;
private static boolean _use_smart_proxy;
+ private static String _font;
private static SmartMegaProxyManager _proxy_manager;
private static String _language;
private static String _new_version;
@@ -274,6 +275,10 @@ public final class MainPanel {
resumeUploads();
}
+ public static String getFont() {
+ return _font;
+ }
+
public static String getNew_version() {
return _new_version;
}
@@ -502,6 +507,23 @@ public final class MainPanel {
_zoom_factor = ZOOM_FACTOR;
}
+ String _font = selectSettingValue("font");
+
+ if (_font != null) {
+ if (_font.equals("DEFAULT")) {
+
+ DEFAULT_FONT = createAndRegisterFont("/fonts/Kalam-Regular.ttf");
+
+ } else {
+
+ DEFAULT_FONT = createAndRegisterFont("/fonts/NotoSansCJKtc-Regular.otf");
+
+ }
+ } else {
+
+ DEFAULT_FONT = createAndRegisterFont("/fonts/Kalam-Regular.ttf");
+ }
+
String def_slots = selectSettingValue("default_slots_down");
if (def_slots != null) {
diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
index 98ec8ecbd..1763511f0 100644
--- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
+++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
@@ -51,7 +51,7 @@
-
+
@@ -1031,19 +1031,29 @@
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
@@ -1062,26 +1072,38 @@
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
@@ -1089,7 +1111,7 @@
-
+
@@ -1112,7 +1134,7 @@
-
+
@@ -1238,11 +1260,11 @@
-
+
-
+
@@ -1407,6 +1429,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
index b22662cf7..a51b76ee0 100644
--- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
@@ -469,6 +469,18 @@ public final class SettingsDialog extends javax.swing.JDialog {
proxy_pass_textfield.setText(DBTools.selectSettingValue("proxy_pass"));
+ String font = DBTools.selectSettingValue("font");
+
+ this.font_combo.addItem(LabelTranslatorSingleton.getInstance().translate("DEFAULT"));
+
+ this.font_combo.addItem(LabelTranslatorSingleton.getInstance().translate("ALTERNATIVE"));
+
+ if (font == null) {
+ this.font_combo.setSelectedItem(LabelTranslatorSingleton.getInstance().translate("DEFAULT"));
+ } else {
+ this.font_combo.setSelectedItem(LabelTranslatorSingleton.getInstance().translate(font));
+ }
+
String language = DBTools.selectSettingValue("language");
this.language_combo.addItem(LabelTranslatorSingleton.getInstance().translate("English"));
@@ -591,6 +603,8 @@ public final class SettingsDialog extends javax.swing.JDialog {
jSeparator2 = new javax.swing.JSeparator();
jLabel2 = new javax.swing.JLabel();
language_combo = new javax.swing.JComboBox<>();
+ font_label = new javax.swing.JLabel();
+ font_combo = new javax.swing.JComboBox<>();
status = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
@@ -1222,11 +1236,11 @@ public final class SettingsDialog extends javax.swing.JDialog {
.addContainerGap()
.addComponent(proxy_user_label)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(proxy_user_textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 305, Short.MAX_VALUE)
+ .addComponent(proxy_user_textfield)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(proxy_pass_label)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(proxy_pass_textfield, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE))
+ .addComponent(proxy_pass_textfield))
);
proxy_auth_panelLayout.setVerticalGroup(
proxy_auth_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -1248,7 +1262,7 @@ public final class SettingsDialog extends javax.swing.JDialog {
.addGroup(proxy_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(proxy_panelLayout.createSequentialGroup()
.addComponent(use_proxy_checkbox)
- .addGap(0, 811, Short.MAX_VALUE))
+ .addGap(0, 0, Short.MAX_VALUE))
.addGroup(proxy_panelLayout.createSequentialGroup()
.addGroup(proxy_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, proxy_panelLayout.createSequentialGroup()
@@ -1329,6 +1343,11 @@ public final class SettingsDialog extends javax.swing.JDialog {
language_combo.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
+ font_label.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
+ font_label.setText("Font:");
+
+ font_combo.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
+
javax.swing.GroupLayout advanced_panelLayout = new javax.swing.GroupLayout(advanced_panel);
advanced_panel.setLayout(advanced_panelLayout);
advanced_panelLayout.setHorizontalGroup(
@@ -1341,15 +1360,22 @@ public final class SettingsDialog extends javax.swing.JDialog {
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(advanced_panelLayout.createSequentialGroup()
.addComponent(jLabel2)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(language_combo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(advanced_panelLayout.createSequentialGroup()
- .addComponent(zoom_label)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(rec_zoom_label))
- .addGap(18, 18, 18)
- .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(rec_zoom_label)
+ .addGroup(advanced_panelLayout.createSequentialGroup()
+ .addComponent(zoom_label)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(advanced_panelLayout.createSequentialGroup()
+ .addComponent(font_label)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(font_combo, javax.swing.GroupLayout.PREFERRED_SIZE, 444, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGap(0, 0, Short.MAX_VALUE)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(advanced_panelLayout.createSequentialGroup()
@@ -1365,27 +1391,35 @@ public final class SettingsDialog extends javax.swing.JDialog {
.addGroup(advanced_panelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jSeparator2)
.addGroup(advanced_panelLayout.createSequentialGroup()
- .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(export_settings_button)
- .addComponent(import_settings_button)
- .addComponent(zoom_label)
- .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jButton1)
- .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel2)
- .addComponent(language_combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addGap(22, 22, 22))
- .addComponent(jSeparator2))
+ .addGroup(advanced_panelLayout.createSequentialGroup()
+ .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(export_settings_button)
+ .addComponent(import_settings_button))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jButton1))
+ .addGroup(advanced_panelLayout.createSequentialGroup()
+ .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(font_label)
+ .addComponent(font_combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(zoom_label)
+ .addComponent(zoom_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel2)
+ .addComponent(language_combo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
+ .addGap(0, 39, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(proxy_panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(rec_zoom_label)
- .addContainerGap(78, Short.MAX_VALUE))
+ .addGap(47, 47, 47))
);
jTabbedPane1.addTab("Advanced", new javax.swing.ImageIcon(getClass().getResource("/images/icons8-administrative-tools-30.png")), advanced_panel); // NOI18N
@@ -1415,7 +1449,7 @@ public final class SettingsDialog extends javax.swing.JDialog {
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
- .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 479, Short.MAX_VALUE)
+ .addComponent(jTabbedPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(status)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -1463,6 +1497,22 @@ public final class SettingsDialog extends javax.swing.JDialog {
settings.put("megacrypter_reverse_port", String.valueOf(megacrypter_reverse_port_spinner.getValue()));
settings.put("smart_proxy", smart_proxy_checkbox.isSelected() ? "yes" : "no");
+ String old_font = DBTools.selectSettingValue("font");
+
+ if (old_font == null) {
+ old_font = "DEFAULT";
+ }
+
+ String font = (String) font_combo.getSelectedItem();
+
+ if (font.equals(LabelTranslatorSingleton.getInstance().translate("DEFAULT"))) {
+ font = "DEFAULT";
+ } else if (font.equals(LabelTranslatorSingleton.getInstance().translate("ALTERNATIVE"))) {
+ font = "ALTERNATIVE";
+ }
+
+ settings.put("font", font);
+
String old_language = DBTools.selectSettingValue("language");
if (old_language == null) {
@@ -1543,7 +1593,7 @@ public final class SettingsDialog extends javax.swing.JDialog {
insertSettingsValues(settings);
- if (!language.equals(old_language) || !zoom.equals(old_zoom)
+ if (!font.equals(old_font) || !language.equals(old_language) || !zoom.equals(old_zoom)
|| use_proxy != old_use_proxy
|| !proxy_host.equals(old_proxy_host)
|| !proxy_port.equals(old_proxy_port)
@@ -2527,6 +2577,8 @@ public final class SettingsDialog extends javax.swing.JDialog {
private javax.swing.JTable elc_accounts_table;
private javax.swing.JCheckBox encrypt_pass_checkbox;
private javax.swing.JButton export_settings_button;
+ private javax.swing.JComboBox font_combo;
+ private javax.swing.JLabel font_label;
private javax.swing.JButton import_settings_button;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
diff --git a/src/main/resources/fonts/Itim-Regular.ttf b/src/main/resources/fonts/Itim-Regular.ttf
deleted file mode 100644
index b568b536f..000000000
Binary files a/src/main/resources/fonts/Itim-Regular.ttf and /dev/null differ
diff --git a/src/main/resources/fonts/NotoSansCJKtc-Regular.otf b/src/main/resources/fonts/NotoSansCJKtc-Regular.otf
new file mode 100644
index 000000000..62ed47d67
Binary files /dev/null and b/src/main/resources/fonts/NotoSansCJKtc-Regular.otf differ
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index 15f9090e9..6339569d3 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ