diff --git a/pom.xml b/pom.xml
index 754734149..8b8c2165c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 5.67
+ 5.68
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/AboutDialog.form b/src/main/java/com/tonikelope/megabasterd/AboutDialog.form
index cb90e051a..6d37e8fd0 100644
--- a/src/main/java/com/tonikelope/megabasterd/AboutDialog.form
+++ b/src/main/java/com/tonikelope/megabasterd/AboutDialog.form
@@ -99,7 +99,7 @@
-
+
diff --git a/src/main/java/com/tonikelope/megabasterd/AboutDialog.java b/src/main/java/com/tonikelope/megabasterd/AboutDialog.java
index 0f16fd21c..849287f60 100644
--- a/src/main/java/com/tonikelope/megabasterd/AboutDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/AboutDialog.java
@@ -62,7 +62,7 @@ public final class AboutDialog extends javax.swing.JDialog {
setResizable(false);
title_label.setFont(new java.awt.Font("Dialog", 1, 48)); // NOI18N
- title_label.setText("MegaBasterd " + VERSION);
+ title_label.setText("MegaBasterd " + VERSION + " ");
title_label.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
title_label.setDoubleBuffered(true);
title_label.addMouseListener(new java.awt.event.MouseAdapter() {
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index 844679a85..87709fac2 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -47,7 +47,7 @@ import javax.swing.UIManager;
*/
public final class MainPanel {
- public static final String VERSION = "5.67";
+ public static final String VERSION = "5.68";
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;
diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
index d3b15f733..2bcaa001f 100644
--- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
+++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form
@@ -51,7 +51,7 @@
-
+
@@ -170,16 +170,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -201,9 +191,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -214,20 +216,15 @@
-
-
-
-
-
+
-
diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
index 42b0ed4f5..7c78895fb 100644
--- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
@@ -32,9 +33,13 @@ import javax.swing.JOptionPane;
import static javax.swing.JOptionPane.YES_NO_CANCEL_OPTION;
import static javax.swing.JOptionPane.showOptionDialog;
import javax.swing.JSpinner;
+import javax.swing.RowSorter;
+import javax.swing.SortOrder;
import javax.swing.SpinnerNumberModel;
import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;
import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
/**
*
@@ -395,6 +400,30 @@ public final class SettingsDialog extends javax.swing.JDialog {
}
+ TableRowSorter sorter_mega = new TableRowSorter<>(mega_accounts_table.getModel());
+
+ mega_accounts_table.setRowSorter(sorter_mega);
+
+ List sortKeys_mega = new ArrayList<>();
+
+ sortKeys_mega.add(new RowSorter.SortKey(0, SortOrder.ASCENDING));
+
+ sorter_mega.setSortKeys(sortKeys_mega);
+
+ sorter_mega.sort();
+
+ TableRowSorter sorter_elc = new TableRowSorter<>(elc_accounts_table.getModel());
+
+ elc_accounts_table.setRowSorter(sorter_elc);
+
+ List sortKeys_elc = new ArrayList<>();
+
+ sortKeys_elc.add(new RowSorter.SortKey(0, SortOrder.ASCENDING));
+
+ sorter_elc.setSortKeys(sortKeys_elc);
+
+ sorter_elc.sort();
+
boolean use_mc_reverse = false;
String megacrypter_reverse = DBTools.selectSettingValue("megacrypter_reverse");
@@ -753,13 +782,6 @@ public final class SettingsDialog extends javax.swing.JDialog {
.addComponent(jSeparator7, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jSeparator6, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jSeparator11, javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(megacrypter_reverse_warning_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(rec_download_slots_label)
- .addGap(0, 99, Short.MAX_VALUE))))
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
@@ -778,27 +800,31 @@ public final class SettingsDialog extends javax.swing.JDialog {
.addComponent(use_mega_account_down_checkbox)
.addComponent(megacrypter_reverse_checkbox)
.addComponent(smart_proxy_checkbox)
- .addComponent(rec_smart_proxy_label)
+ .addComponent(rec_smart_proxy_label))
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(megacrypter_reverse_warning_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(megacrypter_reverse_port_label)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(megacrypter_reverse_port_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(max_down_speed_label)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(max_down_speed_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(use_mega_label)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(use_mega_account_down_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, 500, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(default_slots_down_label)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(default_slots_down_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
- .addGap(0, 0, Short.MAX_VALUE)))
+ .addComponent(rec_download_slots_label)
+ .addGap(0, 99, Short.MAX_VALUE))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addComponent(megacrypter_reverse_port_label)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(megacrypter_reverse_port_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addComponent(max_down_speed_label)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(max_down_speed_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addComponent(use_mega_label)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(use_mega_account_down_combobox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addComponent(default_slots_down_label)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(default_slots_down_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGap(0, 0, 0))
);
jPanel3Layout.setVerticalGroup(
@@ -1449,7 +1475,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, 440, Short.MAX_VALUE)
+ .addComponent(jTabbedPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(status)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -1710,8 +1736,6 @@ public final class SettingsDialog extends javax.swing.JDialog {
encrypt_pass_checkbox.setEnabled(false);
- pack();
-
final Dialog tthis = this;
THREAD_POOL.execute(new Runnable() {
@@ -1720,6 +1744,8 @@ public final class SettingsDialog extends javax.swing.JDialog {
ArrayList email_error = new ArrayList<>();
+ ArrayList new_valid_mega_accounts = new ArrayList<>();
+
for (int i = 0; i < model_row_count; i++) {
String email = (String) model.getValueAt(i, 0);
@@ -1728,6 +1754,8 @@ public final class SettingsDialog extends javax.swing.JDialog {
if (!email.isEmpty() && !pass.isEmpty()) {
+ new_valid_mega_accounts.add(email);
+
MegaAPI ma;
if (_main_panel.getMega_accounts().get(email) == null) {
@@ -1827,8 +1855,6 @@ public final class SettingsDialog extends javax.swing.JDialog {
status.setText("");
- pack();
-
JOptionPane.showMessageDialog(tthis, LabelTranslatorSingleton.getInstance().translate("There were errors with some accounts (email and/or password are/is wrong). Please, check them:\n\n") + final_email_error, "Mega Account Check Error", JOptionPane.ERROR_MESSAGE);
save_button.setEnabled(true);
@@ -1853,12 +1879,19 @@ public final class SettingsDialog extends javax.swing.JDialog {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
- pack();
-
}
});
} else {
+
+ for (Map.Entry entry : _main_panel.getMega_accounts().entrySet()) {
+ String email = entry.getKey();
+
+ if (!new_valid_mega_accounts.contains(email)) {
+ _deleted_mega_accounts.add(email);
+ }
+ }
+
swingInvoke(new Runnable() {
@Override
public void run() {
@@ -2450,8 +2483,6 @@ public final class SettingsDialog extends javax.swing.JDialog {
_download_path = file.getAbsolutePath();
default_dir_label.setText(truncateText(_download_path, 80));
-
- pack();
}
}//GEN-LAST:event_change_download_dir_buttonActionPerformed
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index a99c1b469..673a7132b 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ