From 1130dd98a08281a318193f5d1ede555e19bfc686 Mon Sep 17 00:00:00 2001 From: tonikelope Date: Sun, 22 Oct 2023 12:40:48 +0200 Subject: [PATCH] 8.1 Minor GUI changes --- pom.xml | 2 +- .../tonikelope/megabasterd/ClipboardSpy.java | 2 +- .../tonikelope/megabasterd/DownloadView.form | 24 +++-- .../tonikelope/megabasterd/DownloadView.java | 24 +++-- .../com/tonikelope/megabasterd/MainPanel.java | 8 +- .../tonikelope/megabasterd/MainPanelView.form | 28 ++---- .../tonikelope/megabasterd/MainPanelView.java | 59 ++++-------- .../megabasterd/MegaProxyServer.java | 4 - .../megabasterd/SettingsDialog.form | 87 ++++++++---------- .../megabasterd/SettingsDialog.java | 83 ++++++++--------- .../megabasterd/TransferenceManager.java | 1 + .../tonikelope/megabasterd/UploadView.form | 24 +++-- .../tonikelope/megabasterd/UploadView.java | 24 +++-- src/main/resources/images/arrow_down.png | Bin 0 -> 4944 bytes src/main/resources/images/arrow_up.png | Bin 0 -> 884 bytes src/main/resources/images/pica_roja_menu.png | Bin 0 -> 5720 bytes 16 files changed, 154 insertions(+), 216 deletions(-) create mode 100644 src/main/resources/images/arrow_down.png create mode 100644 src/main/resources/images/arrow_up.png create mode 100644 src/main/resources/images/pica_roja_menu.png diff --git a/pom.xml b/pom.xml index a2a54d0ac..254b07cbd 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.tonikelope MegaBasterd - 8.0 + 8.1 jar diff --git a/src/main/java/com/tonikelope/megabasterd/ClipboardSpy.java b/src/main/java/com/tonikelope/megabasterd/ClipboardSpy.java index 998a15882..0a1c6d2a8 100644 --- a/src/main/java/com/tonikelope/megabasterd/ClipboardSpy.java +++ b/src/main/java/com/tonikelope/megabasterd/ClipboardSpy.java @@ -76,7 +76,7 @@ public class ClipboardSpy implements Runnable, ClipboardOwner, SecureSingleThrea LOG.log(Level.INFO, "{0} Monitoring clipboard ON...", Thread.currentThread().getName()); - } else { + } else if (monitor_clipboard) { LOG.log(Level.INFO, "{0} Monitoring clipboard OFF...", Thread.currentThread().getName()); } } diff --git a/src/main/java/com/tonikelope/megabasterd/DownloadView.form b/src/main/java/com/tonikelope/megabasterd/DownloadView.form index 1b579c903..312321cad 100644 --- a/src/main/java/com/tonikelope/megabasterd/DownloadView.form +++ b/src/main/java/com/tonikelope/megabasterd/DownloadView.form @@ -38,11 +38,11 @@ - - - - - + + + + + @@ -86,10 +86,10 @@ - - - - + + + + @@ -358,9 +358,8 @@ - + - @@ -372,9 +371,8 @@ - + - diff --git a/src/main/java/com/tonikelope/megabasterd/DownloadView.java b/src/main/java/com/tonikelope/megabasterd/DownloadView.java index 6309de6c6..1bd655c44 100644 --- a/src/main/java/com/tonikelope/megabasterd/DownloadView.java +++ b/src/main/java/com/tonikelope/megabasterd/DownloadView.java @@ -314,8 +314,7 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView }); queue_top_button.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N - queue_top_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/arriba_1.png"))); // NOI18N - queue_top_button.setText("TOP"); + queue_top_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/arrow_up.png"))); // NOI18N queue_top_button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { queue_top_buttonActionPerformed(evt); @@ -323,8 +322,7 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView }); queue_bottom_button.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N - queue_bottom_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/abajo_1.png"))); // NOI18N - queue_bottom_button.setText("BOTTOM"); + queue_bottom_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/arrow_down.png"))); // NOI18N queue_bottom_button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { queue_bottom_buttonActionPerformed(evt); @@ -347,11 +345,11 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView .addComponent(slots_label)) .addGroup(layout.createSequentialGroup() .addComponent(queue_top_button) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(queue_up_button, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(queue_down_button, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(queue_up_button) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(queue_down_button) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(queue_bottom_button) .addGap(0, 0, Short.MAX_VALUE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -385,10 +383,10 @@ public class DownloadView extends javax.swing.JPanel implements TransferenceView .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(queue_down_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(queue_up_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(queue_top_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(queue_bottom_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(queue_down_button) + .addComponent(queue_up_button) + .addComponent(queue_top_button) + .addComponent(queue_bottom_button)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(slots_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanel.java b/src/main/java/com/tonikelope/megabasterd/MainPanel.java index 32670a2e9..013513ad6 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanel.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanel.java @@ -70,7 +70,7 @@ import javax.swing.UIManager; */ public final class MainPanel { - public static final String VERSION = "8.0"; + public static final String VERSION = "8.1"; 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; @@ -345,10 +345,6 @@ public final class MainPanel { } else { _mega_proxy_server = null; - MiscTools.GUIRun(() -> { - getView().updateMCReverseStatus("MC reverse mode: OFF"); - }); - } if (_use_smart_proxy) { @@ -383,7 +379,7 @@ public final class MainPanel { long used_memory = instance.totalMemory() - instance.freeMemory(); long max_memory = instance.maxMemory(); MiscTools.GUIRun(() -> { - _view.getMemory_status().setText(MiscTools.formatBytes(used_memory) + " / " + MiscTools.formatBytes(max_memory)); + _view.getMemory_status().setText("JVM-RAM used: " + MiscTools.formatBytes(used_memory) + " / " + MiscTools.formatBytes(max_memory)); }); try { Thread.sleep(2000); diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.form b/src/main/java/com/tonikelope/megabasterd/MainPanelView.form index 05f59f5fa..0fbb2a3b4 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.form +++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.form @@ -115,7 +115,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -136,6 +136,9 @@ + + + @@ -268,13 +271,11 @@ - - - - - - + + + + @@ -294,7 +295,6 @@ - @@ -326,16 +326,6 @@ - - - - - - - - - - diff --git a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java index 477a0ad83..4063cf833 100644 --- a/src/main/java/com/tonikelope/megabasterd/MainPanelView.java +++ b/src/main/java/com/tonikelope/megabasterd/MainPanelView.java @@ -162,14 +162,14 @@ public final class MainPanelView extends javax.swing.JFrame { return smart_proxy_status; } - public JLabel getMc_reverse_status() { - return mc_reverse_status; - } - public JCheckBoxMenuItem getAuto_close_menu() { return auto_close_menu; } + public JMenuItem getCancel_all_downloads_menu() { + return cancel_all_downloads_menu; + } + public void updateKissStreamServerStatus(final String status) { MiscTools.GUIRun(() -> { @@ -196,19 +196,6 @@ public final class MainPanelView extends javax.swing.JFrame { }); } - public void updateMCReverseStatus(final String status) { - - MiscTools.GUIRun(() -> { - - String old_status = getMc_reverse_status().getText(); - - if (!old_status.equals(status + " ")) { - - getMc_reverse_status().setText(status + " "); - } - }); - } - private void _new_upload_dialog(FileGrabberDialog dialog) { try { @@ -463,6 +450,7 @@ public final class MainPanelView extends javax.swing.JFrame { clean_all_down_menu.setEnabled(false); clean_all_up_menu.setEnabled(false); + cancel_all_downloads_menu.setEnabled(false); jScrollPane_down.getVerticalScrollBar().setUnitIncrement(20); jScrollPane_up.getVerticalScrollBar().setUnitIncrement(20); @@ -548,7 +536,6 @@ public final class MainPanelView extends javax.swing.JFrame { logo_label = new javax.swing.JLabel(); kiss_server_status = new javax.swing.JLabel(); - mc_reverse_status = new javax.swing.JLabel(); smart_proxy_status = new javax.swing.JLabel(); memory_status = new javax.swing.JLabel(); jTabbedPane1 = new javax.swing.JTabbedPane(); @@ -582,7 +569,7 @@ public final class MainPanelView extends javax.swing.JFrame { jSeparator4 = new javax.swing.JPopupMenu.Separator(); clean_all_down_menu = new javax.swing.JMenuItem(); clean_all_up_menu = new javax.swing.JMenuItem(); - jMenuItem1 = new javax.swing.JMenuItem(); + cancel_all_downloads_menu = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JPopupMenu.Separator(); hide_tray_menu = new javax.swing.JMenuItem(); auto_close_menu = new javax.swing.JCheckBoxMenuItem(); @@ -604,9 +591,6 @@ public final class MainPanelView extends javax.swing.JFrame { kiss_server_status.setForeground(new java.awt.Color(102, 102, 102)); kiss_server_status.setDoubleBuffered(true); - mc_reverse_status.setFont(new java.awt.Font("Dialog", 0, 14)); // NOI18N - mc_reverse_status.setForeground(new java.awt.Color(102, 102, 102)); - smart_proxy_status.setFont(new java.awt.Font("Dialog", 0, 14)); // NOI18N smart_proxy_status.setForeground(new java.awt.Color(102, 102, 102)); smart_proxy_status.setDoubleBuffered(true); @@ -873,18 +857,19 @@ public final class MainPanelView extends javax.swing.JFrame { }); file_menu.add(clean_all_up_menu); - jMenuItem1.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N - jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-minus-30.png"))); // NOI18N - jMenuItem1.setText("CANCEL ALL DOWNLOADS"); - jMenuItem1.addActionListener(new java.awt.event.ActionListener() { + cancel_all_downloads_menu.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N + cancel_all_downloads_menu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/icons8-minus-30.png"))); // NOI18N + cancel_all_downloads_menu.setText("CANCEL ALL DOWNLOADS"); + cancel_all_downloads_menu.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - jMenuItem1ActionPerformed(evt); + cancel_all_downloads_menuActionPerformed(evt); } }); - file_menu.add(jMenuItem1); + file_menu.add(cancel_all_downloads_menu); file_menu.add(jSeparator2); hide_tray_menu.setFont(new java.awt.Font("Dialog", 0, 18)); // NOI18N + hide_tray_menu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/pica_roja_menu.png"))); // NOI18N hide_tray_menu.setText("Hide to tray"); hide_tray_menu.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -963,13 +948,11 @@ public final class MainPanelView extends javax.swing.JFrame { .addGap(0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addComponent(kiss_server_status, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(mc_reverse_status, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(smart_proxy_status, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(memory_status, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(smart_proxy_status, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(memory_status, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(logo_label))) .addContainerGap()) ); @@ -985,7 +968,6 @@ public final class MainPanelView extends javax.swing.JFrame { .addComponent(logo_label) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(mc_reverse_status) .addComponent(smart_proxy_status) .addComponent(memory_status)) .addComponent(kiss_server_status))) @@ -1535,7 +1517,7 @@ public final class MainPanelView extends javax.swing.JFrame { JOptionPane.showMessageDialog(this, LabelTranslatorSingleton.getInstance().translate(total > 0 ? "ALL DOWNLOAD LINKS COPIED!" : "NO DOWNLOAD LINKS TO COPY")); }//GEN-LAST:event_jButton1ActionPerformed - private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed + private void cancel_all_downloads_menuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancel_all_downloads_menuActionPerformed // TODO add your handling code here: Object[] options = {"No", LabelTranslatorSingleton.getInstance().translate("Yes")}; @@ -1551,7 +1533,7 @@ public final class MainPanelView extends javax.swing.JFrame { _main_panel.getDownload_manager().closeAllPreProWaiting(); _main_panel.getDownload_manager().cancelAllTransferences(); } - }//GEN-LAST:event_jMenuItem1ActionPerformed + }//GEN-LAST:event_cancel_all_downloads_menuActionPerformed private void force_chunk_reset_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_force_chunk_reset_buttonActionPerformed // TODO add your handling code here: @@ -1565,6 +1547,7 @@ public final class MainPanelView extends javax.swing.JFrame { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JMenuItem about_menu; private javax.swing.JCheckBoxMenuItem auto_close_menu; + private javax.swing.JMenuItem cancel_all_downloads_menu; private javax.swing.JMenuItem clean_all_down_menu; private javax.swing.JMenuItem clean_all_up_menu; private javax.swing.JButton close_all_finished_down_button; @@ -1580,7 +1563,6 @@ public final class MainPanelView extends javax.swing.JFrame { private javax.swing.JMenu help_menu; private javax.swing.JMenuItem hide_tray_menu; private javax.swing.JButton jButton1; - private javax.swing.JMenuItem jMenuItem1; private javax.swing.JPanel jPanel_scroll_down; private javax.swing.JPanel jPanel_scroll_up; private javax.swing.JScrollPane jScrollPane_down; @@ -1592,7 +1574,6 @@ public final class MainPanelView extends javax.swing.JFrame { private javax.swing.JLabel kiss_server_status; private javax.swing.JLabel logo_label; private javax.swing.JMenuBar main_menubar; - private javax.swing.JLabel mc_reverse_status; private javax.swing.JLabel memory_status; private javax.swing.JMenuItem merge_file_menu; private javax.swing.JMenuItem new_download_menu; diff --git a/src/main/java/com/tonikelope/megabasterd/MegaProxyServer.java b/src/main/java/com/tonikelope/megabasterd/MegaProxyServer.java index 85dab07e5..06cb37680 100644 --- a/src/main/java/com/tonikelope/megabasterd/MegaProxyServer.java +++ b/src/main/java/com/tonikelope/megabasterd/MegaProxyServer.java @@ -58,8 +58,6 @@ public class MegaProxyServer implements Runnable { @Override public void run() { - _main_panel.getView().updateMCReverseStatus(LabelTranslatorSingleton.getInstance().translate("MC reverse mode: ON (port ") + _port + ")"); - try { _serverSocket = new ServerSocket(_port); @@ -87,8 +85,6 @@ public class MegaProxyServer implements Runnable { } } } - - _main_panel.getView().updateMCReverseStatus("MC reverse mode: OFF"); } public static class Handler extends Thread { diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form index ab9038626..9450d0f9b 100644 --- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form +++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.form @@ -38,7 +38,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -134,10 +134,6 @@ - - - - @@ -146,6 +142,18 @@ + + + + + + + + + + + + @@ -159,39 +167,22 @@ - - - - - - - - - - - - - - - + + + + + - - - - - - - - + - + @@ -269,7 +260,7 @@ - + @@ -488,17 +479,13 @@ - + - - - - - - - + + + @@ -520,10 +507,12 @@ - + + + - + @@ -731,7 +720,7 @@ - + @@ -753,10 +742,10 @@ - - + + - + @@ -866,7 +855,7 @@ - + @@ -1004,7 +993,7 @@ - + @@ -1014,7 +1003,7 @@ - + @@ -1300,7 +1289,7 @@ - + diff --git a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java index 15ae5714f..493130a64 100644 --- a/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java +++ b/src/main/java/com/tonikelope/megabasterd/SettingsDialog.java @@ -873,7 +873,7 @@ public class SettingsDialog extends javax.swing.JDialog { megacrypter_reverse_warning_label.setEnabled(false); rec_download_slots_label.setFont(new java.awt.Font("Dialog", 2, 16)); // NOI18N - rec_download_slots_label.setText("Note: if you want to download without using a MEGA PREMIUM account you SHOULD enable it. (Slots consume RAM, so use them moderately)."); + rec_download_slots_label.setText("Note: slots consume resources, so use them moderately."); rec_download_slots_label.setEnabled(false); megacrypter_reverse_checkbox.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N @@ -1040,16 +1040,13 @@ public class SettingsDialog extends javax.swing.JDialog { smart_proxy_settingsLayout.setHorizontalGroup( smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(smart_proxy_settingsLayout.createSequentialGroup() - .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(smart_proxy_settingsLayout.createSequentialGroup() .addContainerGap() .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(rec_smart_proxy_label1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(custom_proxy_list_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1151, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(rec_smart_proxy_label) - .addComponent(rec_smart_proxy_label2)) + .addComponent(rec_smart_proxy_label1) + .addComponent(rec_smart_proxy_label) + .addComponent(rec_smart_proxy_label2) .addGroup(smart_proxy_settingsLayout.createSequentialGroup() .addGroup(smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3) @@ -1065,8 +1062,10 @@ public class SettingsDialog extends javax.swing.JDialog { .addGroup(smart_proxy_settingsLayout.createSequentialGroup() .addComponent(force_smart_proxy_checkbox) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel7))) - .addContainerGap()) + .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(custom_proxy_list_label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jScrollPane1)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); smart_proxy_settingsLayout.setVerticalGroup( smart_proxy_settingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1105,15 +1104,23 @@ public class SettingsDialog extends javax.swing.JDialog { .addGroup(downloads_panelLayout.createSequentialGroup() .addContainerGap() .addGroup(downloads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(downloads_panelLayout.createSequentialGroup() - .addGap(27, 27, 27) - .addComponent(smart_proxy_settings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(smart_proxy_checkbox) .addGroup(downloads_panelLayout.createSequentialGroup() .addComponent(max_downloads_label) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(max_downloads_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(multi_slot_down_checkbox) + .addGroup(downloads_panelLayout.createSequentialGroup() + .addComponent(change_download_dir_button) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(down_dir_label) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(default_dir_label)) + .addComponent(megacrypter_reverse_checkbox) + .addComponent(use_mega_account_down_checkbox) + .addComponent(verify_file_down_checkbox) + .addComponent(limit_download_speed_checkbox) + .addComponent(clipboardspy_checkbox) .addGroup(downloads_panelLayout.createSequentialGroup() .addGap(21, 21, 21) .addGroup(downloads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1125,32 +1132,18 @@ public class SettingsDialog extends javax.swing.JDialog { .addGroup(downloads_panelLayout.createSequentialGroup() .addComponent(use_mega_label) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(use_mega_account_down_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, 700, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addGroup(downloads_panelLayout.createSequentialGroup() - .addComponent(change_download_dir_button) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(down_dir_label) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(default_dir_label)) - .addComponent(megacrypter_reverse_checkbox) - .addComponent(use_mega_account_down_checkbox) - .addComponent(verify_file_down_checkbox) - .addGroup(downloads_panelLayout.createSequentialGroup() - .addGap(21, 21, 21) - .addGroup(downloads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(use_mega_account_down_combobox, javax.swing.GroupLayout.PREFERRED_SIZE, 700, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(megacrypter_reverse_warning_label) .addGroup(downloads_panelLayout.createSequentialGroup() .addComponent(megacrypter_reverse_port_label) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(megacrypter_reverse_port_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) - .addComponent(limit_download_speed_checkbox) - .addGroup(downloads_panelLayout.createSequentialGroup() - .addGap(21, 21, 21) - .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)) - .addComponent(clipboardspy_checkbox)) - .addContainerGap(155, Short.MAX_VALUE)) + .addComponent(megacrypter_reverse_port_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(downloads_panelLayout.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)))) + .addComponent(smart_proxy_settings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 0, 0)) ); downloads_panelLayout.setVerticalGroup( downloads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1240,7 +1233,7 @@ public class SettingsDialog extends javax.swing.JDialog { }); rec_upload_slots_label.setFont(new java.awt.Font("Dialog", 2, 16)); // NOI18N - rec_upload_slots_label.setText("Note: slots consume RAM, so use them moderately."); + rec_upload_slots_label.setText("Note: slots consume resources, so use them moderately."); thumbnail_checkbox.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N thumbnail_checkbox.setText("Create and upload image/video thumbnails"); @@ -1276,7 +1269,7 @@ public class SettingsDialog extends javax.swing.JDialog { uploads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(uploads_panelLayout.createSequentialGroup() .addContainerGap() - .addGroup(uploads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(uploads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(uploads_panelLayout.createSequentialGroup() .addGap(20, 20, 20) .addComponent(max_up_speed_label) @@ -1294,9 +1287,9 @@ public class SettingsDialog extends javax.swing.JDialog { .addComponent(thumbnail_checkbox) .addComponent(upload_log_checkbox) .addComponent(upload_public_folder_checkbox) - .addComponent(rec_upload_slots_label, javax.swing.GroupLayout.DEFAULT_SIZE, 1003, Short.MAX_VALUE) - .addComponent(public_folder_panel)) - .addGap(187, 330, Short.MAX_VALUE)) + .addComponent(public_folder_panel, javax.swing.GroupLayout.PREFERRED_SIZE, 1003, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(rec_upload_slots_label)) + .addGap(0, 0, 0)) ); uploads_panelLayout.setVerticalGroup( uploads_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1519,7 +1512,7 @@ public class SettingsDialog extends javax.swing.JDialog { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(mega_accounts_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 467, Short.MAX_VALUE) + .addComponent(mega_accounts_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(accounts_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(remove_mega_account_button) @@ -1528,7 +1521,7 @@ public class SettingsDialog extends javax.swing.JDialog { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(elc_accounts_label) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(elc_accounts_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 467, Short.MAX_VALUE) + .addComponent(elc_accounts_scrollpane, javax.swing.GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(accounts_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(remove_elc_account_button) @@ -1862,7 +1855,7 @@ public class SettingsDialog extends javax.swing.JDialog { .addGroup(advanced_panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addGap(0, 409, Short.MAX_VALUE))) + .addGap(0, 0, 0))) .addContainerGap()) ); advanced_panelLayout.setVerticalGroup( @@ -1917,14 +1910,14 @@ public class SettingsDialog extends javax.swing.JDialog { .addComponent(save_button) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cancel_button)) - .addComponent(panel_tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 935, Short.MAX_VALUE)) + .addComponent(panel_tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 1194, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() - .addComponent(panel_tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 1226, Short.MAX_VALUE) + .addComponent(panel_tabs, javax.swing.GroupLayout.DEFAULT_SIZE, 1082, Short.MAX_VALUE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) diff --git a/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java b/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java index edc3fb167..4117e15e0 100644 --- a/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java +++ b/src/main/java/com/tonikelope/megabasterd/TransferenceManager.java @@ -653,6 +653,7 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea if (this instanceof DownloadManager) { this._main_panel.getView().getForce_chunk_reset_button().setVisible(MainPanel.isUse_smart_proxy() && !getTransference_running_list().isEmpty()); + this._main_panel.getView().getCancel_all_downloads_menu().setEnabled(!_transference_preprocess_queue.isEmpty() || !_transference_provision_queue.isEmpty() || !getTransference_waitstart_queue().isEmpty() || !getTransference_running_list().isEmpty()); } if (_paused_all) { diff --git a/src/main/java/com/tonikelope/megabasterd/UploadView.form b/src/main/java/com/tonikelope/megabasterd/UploadView.form index 015b6986d..3161971b7 100644 --- a/src/main/java/com/tonikelope/megabasterd/UploadView.form +++ b/src/main/java/com/tonikelope/megabasterd/UploadView.form @@ -59,11 +59,11 @@ - - - - - + + + + + @@ -88,10 +88,10 @@ - - - - + + + + @@ -358,9 +358,8 @@ - + - @@ -372,9 +371,8 @@ - + - diff --git a/src/main/java/com/tonikelope/megabasterd/UploadView.java b/src/main/java/com/tonikelope/megabasterd/UploadView.java index ee0950e4a..14d7ea8fc 100644 --- a/src/main/java/com/tonikelope/megabasterd/UploadView.java +++ b/src/main/java/com/tonikelope/megabasterd/UploadView.java @@ -304,8 +304,7 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { cbc_label.setDoubleBuffered(true); queue_top_button.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N - queue_top_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/arriba_1.png"))); // NOI18N - queue_top_button.setText("TOP"); + queue_top_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/arrow_up.png"))); // NOI18N queue_top_button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { queue_top_buttonActionPerformed(evt); @@ -313,8 +312,7 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { }); queue_bottom_button.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N - queue_bottom_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/abajo_1.png"))); // NOI18N - queue_bottom_button.setText("BOTTOM"); + queue_bottom_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/arrow_down.png"))); // NOI18N queue_bottom_button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { queue_bottom_buttonActionPerformed(evt); @@ -365,11 +363,11 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(queue_top_button) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(queue_up_button, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(queue_down_button, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(queue_up_button) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(queue_down_button) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(queue_bottom_button) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() @@ -387,10 +385,10 @@ public class UploadView extends javax.swing.JPanel implements TransferenceView { .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(queue_up_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(queue_top_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(queue_down_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(queue_bottom_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(queue_up_button) + .addComponent(queue_top_button) + .addComponent(queue_down_button) + .addComponent(queue_bottom_button)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(slots_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) diff --git a/src/main/resources/images/arrow_down.png b/src/main/resources/images/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..018e6de12c573c11041e851762c9580614b50cce GIT binary patch literal 4944 zcmeHLX;f3!7ETZa^W<4Hbw*>b7AQBv%|ucnQ&55g5CS4#^(MIq7c!Y#AfSR1S_Y{& zRQf=x`;+e)l#V&$sRlaO|mVCOz40? z9wOV2N03HjO;$v_9<^yRV7z6V>sVtNRGuSK!hYRdkFh|5@iC~zo7mRP^q6E&1f>HF)d0WS$3_=69=3LrDlYLmxj4Hx%=16^h-RPo#pW_H)^qO z*@w}Itd#pRxR^97cG}3RYu0*YN7zl&EOv?=>GP{y-IX7tP5yx=nXX4Ze{%ZH%3VE; zH^1*C6-S`?EjviuHW>b9&zB7cvsN#(bu6VgyK$=Ld@RK*l?RtUf1Wn+-lF!N*RgBk zPpeji%nGimK^zSqT+l`*HulyzMsAPjFn5ezJ7red?V66KQ}1m)V{;*AQp-=C%hpA? zcU4_FQ?8AxYp!EQG`lW2cf8!x-ccSgwY>S`bfm24pu732c&e+rV)QtPOI*2*)$-wrz$L3XaUiN8quH0@Wf=i-=Z58nOR8JoS|Wb4v%$g39@wHm<7kr!1L=uZr8n7e76g-ihDs8L_meltLBVYYxTJA_4$96h~+lomOuaS;TZJt_aA)GLufTs^AG?dK9Q5KZ6OS zaT#0&3-Y&MNicm5h308esYPLux&08}NlcH!aifUIOioT_By$)BlZMF_3WZD-%!FYG zXh7x^J&sr)z1f+7=);hpW~B);;+R2CBQOz#ArTkT>0qBW5TDK{lMTY_&HXF@KA0B7 z$Ye8EOr4H7)WVGWCjpTDfd16NEKf0_%rMk!NHi%?|0Gn8I}e3WDF^M1i6*V}I4UI* z)uK9}Y6f1}@3tt+q7V^sIRb;j_8#r0R_Mr7{KB35T20F=0GqZ#y_AQm>;Fa<+5xt#kso?}cjP$lT z?Jn-(kR69EPg`dq7fF`<)0oxylt5rz_zqj+9THFAG%K2ylL@`g5Uo! z!`ALvYtQ+1h4{!K;k;!lPr@^8>&MQhV|6?myJ9EK)|^Sr%BG~WzCh?sKW80n8JjvM zDJ?j9^_umWny|p63EJYWpQN6T%L~({Cr_x*1Rq{Lj~o_EnOQ2kGP}aNxeLe69q@h- z;$3QKxvA{sZ|o@Xt(lW}EB5f0+h4|)>}Kx|DRiDhiCMJh=-F+_O`ScHw@BJ!WA{o= z|E9WK8GU?LgDlZw+GOSLlQY8>q;G%xb^9KL%bxD?M|T^f)E3*yZ!SN4e805hwR>Iw ze)a~*_lK`;UGH8}6-XObU(#_6`K)&3g>1o`TzPKO)G--NPycN(RUcpRXfA!#2e6L{ z*?r-GOR1#wm%Ya;^H-erV^L>MqHH;s5?6U(ZbQS-EKh#Qxpvz;&ee+PK}hh2o8Sev zyB9i9;|i{Y%g^n5JbgPe#`jic;Cf$V|CIa}B2UG6uPMrJXJ5S1B}O(M+q$*QvFbv8 zp839_k}If+yJ`H7#}6U;4YA){=t$; I-=%B*09$qk4gdfE literal 0 HcmV?d00001 diff --git a/src/main/resources/images/arrow_up.png b/src/main/resources/images/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..b31e710c3cc2753368d8d6eac2f0a05025c35b97 GIT binary patch literal 884 zcmV-)1B?8LP)uNG0}V{zx6Ru1F6*T!nq zx4P&1zVrW`|KZ$o;C~M>m!_3;YtkMVbiOeK|%$Boawx1o-{_EF-V<7Kkkw zgl7sVx=P)~Rx8A|IwRK?o=rSg*U&Z1se}^L4^3qqw}I0K>$hyLM#w%Vu&=~RXKN6E zJ%MJ1M!q_6Oexf=o~~;z9UUkkgTE7B;3;B(r-;thAiff>6F{0uG&(w1Sy!jI$@^+O zEhXM!I$MKyi#;4Vej39tXldNXx9>mL8wl}bc*MdG6O)X2d%L?QW;oELzQQUlrKG(% zfVbGg;S(J^eikDdi*qD=22W8T;iCtT(rQ>~^U1H89%ZG{Ny@Be$}~-)y>VW=d_^=C z$5U7UKu`1qftEH_*HmGerhT6<%WVLJP_|B>+K z&~=T@)*y>2E1dLyW{+j3thuH?J|_~!!X?XVfMuzo%f-16#4yP`P;dJ770y$G5N`pYvC4(l?Mu^$iY>(*OD` z;}etgy?UK4VVX&?>(hsU;pv3!E?Qr|vkk?5C-0d;2~Ixky4sMQv;Va@MuSjv{e}MR zvK*t)nsiwci9|xJsa_iSX-FMdOXf$(RDy8Xd}H^VuIu#JP`|TEDGmag0o_s_2kuEJ zLp^sc56q@9rzdmWwry@XHLn_>$^cMeFncUJ{^-$#skzMmzvCBHn+A(p{{2$`0000< KMNUMnLSTY!IFF$K literal 0 HcmV?d00001 diff --git a/src/main/resources/images/pica_roja_menu.png b/src/main/resources/images/pica_roja_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..ed3e7b69aff542caf9d7af028d90cababfc08d50 GIT binary patch literal 5720 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 literal 0 HcmV?d00001