diff --git a/pom.xml b/pom.xml
index 21a78a0ae..cb1997beb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.tonikelope
MegaBasterd
- 8.3
+ 8.4
jar
diff --git a/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java b/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java
index b95b9896d..3233f9661 100644
--- a/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java
+++ b/src/main/java/com/tonikelope/megabasterd/ChunkUploader.java
@@ -245,7 +245,7 @@ public void run() {
} else if (tot_bytes_up == chunk_size || reads == -1) {
if (_upload.getProgress() == _upload.getFile_size()) {
- _upload.getView().printStatusNormal("Waiting for completion handler ... ***DO NOT EXIT MEGABASTERD NOW***");
+ _upload.getView().printStatusWarning("Waiting for completion handler ... ***DO NOT EXIT MEGABASTERD NOW***");
_upload.getView().getPause_button().setEnabled(false);
}
diff --git a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form
index c6cc84f1b..9eb8b39c0 100644
--- a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form
+++ b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.form
@@ -70,15 +70,6 @@
-
-
-
-
-
-
-
-
-
@@ -88,7 +79,7 @@
-
+
@@ -121,19 +112,12 @@
-
-
-
-
-
-
-
-
+
@@ -162,7 +146,7 @@
-
+
@@ -174,11 +158,11 @@
-
+
-
-
+
+
@@ -192,7 +176,7 @@
-
+
@@ -354,7 +338,7 @@
-
+
diff --git a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java
index 4dc5e5fec..82e876582 100644
--- a/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java
+++ b/src/main/java/com/tonikelope/megabasterd/FileGrabberDialog.java
@@ -115,10 +115,6 @@ public FileGrabberDialog(MainPanelView parent, boolean modal, List files)
updateFonts(this, GUI_FONT, _main_panel.getZoom_factor());
- updateTitledBorderFont(((javax.swing.border.TitledBorder) jPanel1.getBorder()), GUI_FONT, _main_panel.getZoom_factor());
-
- updateTitledBorderFont(((javax.swing.border.TitledBorder) jPanel2.getBorder()), GUI_FONT, _main_panel.getZoom_factor());
-
translateLabels(this);
jPanel1.setDropTarget(
@@ -270,8 +266,6 @@ private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("File Grabber");
- jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Files", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Noto Sans", 0, 18))); // NOI18N
-
file_tree.setBorder(null);
file_tree.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N
javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("root");
@@ -289,11 +283,9 @@ private void initComponents() {
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(file_tree_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE)
+ .addComponent(file_tree_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 236, Short.MAX_VALUE)
);
- jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Upload info"));
-
dir_name_label.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N
dir_name_label.setText("Upload name:");
dir_name_label.setDoubleBuffered(true);
@@ -370,7 +362,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
- .addContainerGap()
+ .addGap(0, 0, 0)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(upload_log_checkbox)
@@ -392,7 +384,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
.addComponent(account_combobox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(copy_email_button)))))
- .addContainerGap())
+ .addGap(0, 0, 0))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -401,11 +393,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(dir_name_label)
.addComponent(dir_name_textfield, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(18, 18, 18)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(account_label)
- .addComponent(account_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(copy_email_button))
+ .addComponent(account_combobox)
+ .addComponent(copy_email_button, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(used_space_label)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@@ -416,7 +408,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(upload_log_checkbox)
.addComponent(priority_checkbox))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap())
);
dance_button.setBackground(new java.awt.Color(102, 204, 255));
@@ -433,7 +425,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
total_file_size_label.setFont(new java.awt.Font("Dialog", 1, 32)); // NOI18N
total_file_size_label.setForeground(new java.awt.Color(0, 0, 255));
- total_file_size_label.setText("[0 B]");
+ total_file_size_label.setText("[---]");
total_file_size_label.setDoubleBuffered(true);
total_file_size_label.setEnabled(false);
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
index 96b261b31..5705af058 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java
@@ -70,7 +70,7 @@
*/
public final class MainPanel {
- public static final String VERSION = "8.3";
+ public static final String VERSION = "8.4";
public static final boolean FORCE_SMART_PROXY = false; //TRUE FOR DEBUGING SMART PROXY
public static final int THROTTLE_SLICE_SIZE = 16 * 1024;
public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024;
@@ -1256,32 +1256,38 @@ public void resumeDownloads() {
while (downloads_queue_iterator.hasNext()) {
- String url = (String) downloads_queue_iterator.next();
+ try {
- HashMap o = res.remove(url);
+ String url = (String) downloads_queue_iterator.next();
- if (o != null) {
+ HashMap o = res.remove(url);
- String email = (String) o.get("email");
+ if (o != null) {
- if (_mega_accounts.get(email) == null) {
- email = null;
- }
+ String email = (String) o.get("email");
- MegaAPI ma = new MegaAPI();
+ if (_mega_accounts.get(email) == null) {
+ email = null;
+ }
- if (email == null || !tthis.isUse_mega_account_down() || (ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
+ MegaAPI ma = new MegaAPI();
- Download download = new Download(tthis, ma, (String) url, (String) o.get("path"), (String) o.get("filename"), (String) o.get("filekey"), (Long) o.get("filesize"), (String) o.get("filepass"), (String) o.get("filenoexpire"), _use_slots_down, false, (String) o.get("custom_chunks_dir"), false);
+ if (email == null || !tthis.isUse_mega_account_down() || (ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
- getDownload_manager().getTransference_provision_queue().add(download);
+ Download download = new Download(tthis, ma, (String) url, (String) o.get("path"), (String) o.get("filename"), (String) o.get("filekey"), (Long) o.get("filesize"), (String) o.get("filepass"), (String) o.get("filenoexpire"), _use_slots_down, false, (String) o.get("custom_chunks_dir"), false);
- conta_downloads++;
+ getDownload_manager().getTransference_provision_queue().add(download);
- downloads_queue_iterator.remove();
- } else {
- tot_downloads--;
+ conta_downloads++;
+
+ downloads_queue_iterator.remove();
+ } else {
+ tot_downloads--;
+ }
}
+
+ } catch (Exception ex) {
+ Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex);
}
}
@@ -1295,34 +1301,39 @@ public void resumeDownloads() {
for (Map.Entry> entry : res.entrySet()) {
- String email = (String) entry.getValue().get("email");
+ try {
- if (_mega_accounts.get(email) == null) {
- email = null;
- }
+ String email = (String) entry.getValue().get("email");
- MegaAPI ma = new MegaAPI();
+ if (_mega_accounts.get(email) == null) {
+ email = null;
+ }
+
+ MegaAPI ma = new MegaAPI();
- if (email == null || !tthis.isUse_mega_account_down() || (ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
+ if (email == null || !tthis.isUse_mega_account_down() || (ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
- Download download = new Download(tthis, ma, (String) entry.getKey(), (String) entry.getValue().get("path"), (String) entry.getValue().get("filename"), (String) entry.getValue().get("filekey"), (Long) entry.getValue().get("filesize"), (String) entry.getValue().get("filepass"), (String) entry.getValue().get("filenoexpire"), _use_slots_down, false, (String) entry.getValue().get("custom_chunks_dir"), false);
+ Download download = new Download(tthis, ma, (String) entry.getKey(), (String) entry.getValue().get("path"), (String) entry.getValue().get("filename"), (String) entry.getValue().get("filekey"), (Long) entry.getValue().get("filesize"), (String) entry.getValue().get("filepass"), (String) entry.getValue().get("filenoexpire"), _use_slots_down, false, (String) entry.getValue().get("custom_chunks_dir"), false);
- getDownload_manager().getTransference_provision_queue().add(download);
+ getDownload_manager().getTransference_provision_queue().add(download);
- conta_downloads++;
+ conta_downloads++;
+
+ } else {
- } else {
+ tot_downloads--;
+ }
- tot_downloads--;
+ } catch (Exception ex) {
+ Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex);
}
+
}
}
- } catch (SQLException ex) {
+ } catch (Exception ex) {
Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex);
- } catch (Exception ex2) {
- Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex2);
}
if (conta_downloads > 0) {
@@ -1452,39 +1463,44 @@ public void resumeUploads() {
while (uploads_queue_iterator.hasNext()) {
- String filename = (String) uploads_queue_iterator.next();
+ try {
+ String filename = (String) uploads_queue_iterator.next();
+
+ HashMap o = res.remove(filename);
- HashMap o = res.remove(filename);
+ if (o != null) {
- if (o != null) {
+ String email = (String) o.get("email");
- String email = (String) o.get("email");
+ if (_mega_accounts.get(email) != null) {
- if (_mega_accounts.get(email) != null) {
+ MegaAPI ma;
- MegaAPI ma;
+ if ((ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
- if ((ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
+ Upload upload = new Upload(tthis, ma, (String) filename, (String) o.get("parent_node"), (String) o.get("ul_key") != null ? bin2i32a(BASE642Bin((String) o.get("ul_key"))) : null, (String) o.get("url"), (String) o.get("root_node"), BASE642Bin((String) o.get("share_key")), (String) o.get("folder_link"), false);
- Upload upload = new Upload(tthis, ma, (String) filename, (String) o.get("parent_node"), (String) o.get("ul_key") != null ? bin2i32a(BASE642Bin((String) o.get("ul_key"))) : null, (String) o.get("url"), (String) o.get("root_node"), BASE642Bin((String) o.get("share_key")), (String) o.get("folder_link"), false);
+ getUpload_manager().getTransference_provision_queue().add(upload);
- getUpload_manager().getTransference_provision_queue().add(upload);
+ conta_uploads++;
- conta_uploads++;
+ uploads_queue_iterator.remove();
- uploads_queue_iterator.remove();
+ }
- }
+ } else {
- } else {
+ deleteUpload((String) o.get("filename"), email);
- deleteUpload((String) o.get("filename"), email);
+ tot_uploads--;
- tot_uploads--;
+ uploads_queue_iterator.remove();
+ }
- uploads_queue_iterator.remove();
}
+ } catch (Exception ex) {
+ Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex);
}
}
@@ -1498,38 +1514,41 @@ public void resumeUploads() {
for (Map.Entry> entry : res.entrySet()) {
- String email = (String) entry.getValue().get("email");
+ try {
+ String email = (String) entry.getValue().get("email");
- if (_mega_accounts.get(email) != null) {
+ if (_mega_accounts.get(email) != null) {
- MegaAPI ma;
+ MegaAPI ma;
- if ((ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
+ if ((ma = checkMegaAccountLoginAndShowMasterPassDialog(tthis, getView(), email)) != null) {
- Upload upload = new Upload(tthis, ma, (String) entry.getKey(), (String) entry.getValue().get("parent_node"), (String) entry.getValue().get("ul_key") != null ? bin2i32a(BASE642Bin((String) entry.getValue().get("ul_key"))) : null, (String) entry.getValue().get("url"), (String) entry.getValue().get("root_node"), BASE642Bin((String) entry.getValue().get("share_key")), (String) entry.getValue().get("folder_link"), false);
+ Upload upload = new Upload(tthis, ma, (String) entry.getKey(), (String) entry.getValue().get("parent_node"), (String) entry.getValue().get("ul_key") != null ? bin2i32a(BASE642Bin((String) entry.getValue().get("ul_key"))) : null, (String) entry.getValue().get("url"), (String) entry.getValue().get("root_node"), BASE642Bin((String) entry.getValue().get("share_key")), (String) entry.getValue().get("folder_link"), false);
- getUpload_manager().getTransference_provision_queue().add(upload);
+ getUpload_manager().getTransference_provision_queue().add(upload);
- conta_uploads++;
+ conta_uploads++;
- uploads_queue_iterator.remove();
+ uploads_queue_iterator.remove();
- }
+ }
+
+ } else {
- } else {
+ deleteUpload((String) entry.getValue().get("filename"), email);
- deleteUpload((String) entry.getValue().get("filename"), email);
+ tot_uploads--;
+ }
- tot_uploads--;
+ } catch (Exception ex) {
+ Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex);
}
}
}
- } catch (SQLException ex) {
+ } catch (Exception ex) {
Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex);
- } catch (Exception ex2) {
- Logger.getLogger(MainPanel.class.getName()).log(SEVERE, null, ex2);
}
if (conta_uploads > 0) {
@@ -1550,7 +1569,8 @@ public void resumeUploads() {
MiscTools.GUIRun(() -> {
getView().getStatus_up_label().setText("");
});
- });
+ }
+ );
}
}
diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
index 286e34e26..010dac104 100644
--- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
+++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java
@@ -291,7 +291,11 @@ private void _new_upload_dialog(FileGrabberDialog dialog) {
try {
- LOG.log(Level.INFO, "{0} FILE_PATH -> {1}", new Object[]{Thread.currentThread().getName(), file_path});
+ if (!file_path.isEmpty()) {
+
+ LOG.log(Level.INFO, "{0} FILE_PATH -> {1}", new Object[]{Thread.currentThread().getName(), file_path});
+
+ }
String[] dirs = file_path.split("\\" + File.separator);
@@ -301,10 +305,10 @@ private void _new_upload_dialog(FileGrabberDialog dialog) {
for (String d : dirs) {
- LOG.log(Level.INFO, "{0} DIR -> {1}", new Object[]{Thread.currentThread().getName(), d});
-
if (!d.isEmpty()) {
+ LOG.log(Level.INFO, "{0} DIR -> {1}", new Object[]{Thread.currentThread().getName(), d});
+
if (current_node.getChildren().get(d) != null) {
current_node = current_node.getChildren().get(d);
diff --git a/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java b/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java
index a2ad972d9..62d14e541 100644
--- a/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java
+++ b/src/main/java/com/tonikelope/megabasterd/SmartMegaProxyManager.java
@@ -50,10 +50,6 @@ public final class SmartMegaProxyManager {
private volatile int _proxy_timeout;
private volatile boolean _force_smart_proxy;
- public int getBan_time() {
- return _ban_time;
- }
-
public int getProxy_timeout() {
return _proxy_timeout;
}
@@ -82,7 +78,7 @@ private synchronized int countBlockedProxies() {
for (String k : _proxy_list.keySet()) {
- if (_proxy_list.get(k)[0] > current_time) {
+ if (_proxy_list.get(k)[0] != -1 && _proxy_list.get(k)[0] > current_time - _ban_time * 1000) {
i++;
}
@@ -140,7 +136,7 @@ public synchronized String[] getProxy(ArrayList excluded) {
for (String k : keysList) {
- if (_proxy_list.get(k)[0] < current_time && (excluded == null || !excluded.contains(k))) {
+ if ((_proxy_list.get(k)[0] == -1 || _proxy_list.get(k)[0] < current_time - _ban_time * 1000) && (excluded == null || !excluded.contains(k))) {
return new String[]{k, _proxy_list.get(k)[1] == -1L ? "http" : "socks"};
}
@@ -174,7 +170,7 @@ public synchronized void blockProxy(String proxy, String cause) {
Long[] proxy_data = _proxy_list.get(proxy);
- proxy_data[0] = System.currentTimeMillis() + this._ban_time * 1000;
+ proxy_data[0] = System.currentTimeMillis();
_proxy_list.put(proxy, proxy_data);
@@ -219,8 +215,6 @@ public synchronized void refreshProxyList() {
if (!custom_list.isEmpty()) {
- Long current_time = System.currentTimeMillis();
-
for (String proxy : custom_list) {
boolean socks = false;
@@ -237,13 +231,13 @@ public synchronized void refreshProxyList() {
custom_clean_list_auth.put(proxy_parts[0], proxy_parts[1]);
- Long[] proxy_data = new Long[]{current_time, socks ? 1L : -1L};
+ Long[] proxy_data = new Long[]{-1L, socks ? 1L : -1L};
custom_clean_list.put(proxy_parts[0], proxy_data);
} else if (proxy.trim().matches(".+?:[0-9]{1,5}")) {
- Long[] proxy_data = new Long[]{current_time, socks ? 1L : -1L};
+ Long[] proxy_data = new Long[]{-1L, socks ? 1L : -1L};
custom_clean_list.put(proxy, proxy_data);
}
@@ -298,8 +292,6 @@ public synchronized void refreshProxyList() {
PROXY_LIST_AUTH.clear();
- Long current_time = System.currentTimeMillis();
-
for (String proxy : proxy_list) {
boolean socks = false;
@@ -316,12 +308,12 @@ public synchronized void refreshProxyList() {
PROXY_LIST_AUTH.put(proxy_parts[0], proxy_parts[1]);
- Long[] proxy_data = new Long[]{current_time, socks ? 1L : -1L};
+ Long[] proxy_data = new Long[]{-1L, socks ? 1L : -1L};
_proxy_list.put(proxy_parts[0], proxy_data);
} else if (proxy.trim().matches(".+?:[0-9]{1,5}")) {
- Long[] proxy_data = new Long[]{current_time, socks ? 1L : -1L};
+ Long[] proxy_data = new Long[]{-1L, socks ? 1L : -1L};
_proxy_list.put(proxy, proxy_data);
}
diff --git a/src/main/java/com/tonikelope/megabasterd/Upload.java b/src/main/java/com/tonikelope/megabasterd/Upload.java
index 8f7b956eb..b3d17a224 100644
--- a/src/main/java/com/tonikelope/megabasterd/Upload.java
+++ b/src/main/java/com/tonikelope/megabasterd/Upload.java
@@ -906,7 +906,7 @@ public void run() {
LOG.log(Level.INFO, "{0} Uploader creating NEW MEGA NODE {1}...", new Object[]{Thread.currentThread().getName(), this.getFile_name()});
- getView().printStatusNormal("Creating new MEGA node ... ***DO NOT EXIT MEGABASTERD NOW***");
+ getView().printStatusWarning("Creating new MEGA node ... ***DO NOT EXIT MEGABASTERD NOW***");
File f = new File(_file_name);
@@ -960,7 +960,7 @@ public void run() {
if (_thumbnail_file != null) {
- getView().printStatusNormal("Creating thumbnail ... ***DO NOT EXIT MEGABASTERD NOW***");
+ getView().printStatusWarning("Creating thumbnail ... ***DO NOT EXIT MEGABASTERD NOW***");
if (!Files.isReadable(Paths.get(_thumbnail_file))) {
Thumbnailer thumbnailer = new Thumbnailer();
@@ -968,7 +968,7 @@ public void run() {
_thumbnail_file = thumbnailer.createThumbnail(_file_name);
}
- getView().printStatusNormal("Uploading thumbnail ... ***DO NOT EXIT MEGABASTERD NOW***");
+ getView().printStatusWarning("Uploading thumbnail ... ***DO NOT EXIT MEGABASTERD NOW***");
_ma.uploadThumbnails(this, _fid, _thumbnail_file, _thumbnail_file);
diff --git a/src/main/java/com/tonikelope/megabasterd/UploadView.java b/src/main/java/com/tonikelope/megabasterd/UploadView.java
index 14d7ea8fc..14ba38731 100644
--- a/src/main/java/com/tonikelope/megabasterd/UploadView.java
+++ b/src/main/java/com/tonikelope/megabasterd/UploadView.java
@@ -665,6 +665,15 @@ public void printStatusNormal(final String message) {
}
+ public void printStatusWarning(final String message) {
+
+ MiscTools.GUIRunAndWait(() -> {
+ status_label.setForeground(new Color(255, 0, 255));
+ status_label.setText(LabelTranslatorSingleton.getInstance().translate(message));
+ });
+
+ }
+
@Override
public void updateSlotsStatus() {
diff --git a/src/main/resources/images/mbasterd_screen.png b/src/main/resources/images/mbasterd_screen.png
index cdbf0b7c2..54e504620 100644
Binary files a/src/main/resources/images/mbasterd_screen.png and b/src/main/resources/images/mbasterd_screen.png differ