From 9df47d64667dd552e1894280f8a70fa6c39b05cc Mon Sep 17 00:00:00 2001 From: 4pr0n Date: Thu, 17 Sep 2015 03:11:50 -0700 Subject: [PATCH] Remember state of queue if closed/crashed. Closes #235 --- .../ripme/ripper/rippers/EightmusesRipper.java | 1 + .../com/rarchives/ripme/ui/MainWindow.java | 18 ++++++++++++++++-- .../java/com/rarchives/ripme/utils/Utils.java | 8 ++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/EightmusesRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/EightmusesRipper.java index ff72c9c6..5538d3c2 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/EightmusesRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/EightmusesRipper.java @@ -154,6 +154,7 @@ public class EightmusesRipper extends AbstractHTMLRipper { } private String getFullSizeImage(String imageUrl) throws IOException { + sendUpdate(STATUS.LOADING_RESOURCE, imageUrl); Document doc = new Http(imageUrl).get(); return doc.select("#image").first().attr("src"); } diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java index c7a6f3fb..02ddc63b 100644 --- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java +++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java @@ -30,6 +30,7 @@ import java.net.URI; import java.net.URL; import java.util.Collections; import java.util.Date; +import java.util.Enumeration; import java.util.List; import javax.imageio.ImageIO; @@ -398,6 +399,14 @@ public class MainWindow implements Runnable, RipStatusHandler { queueListScroll = new JScrollPane(queueList, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + for (String item : Utils.getConfigList("queue")) { + queueListModel.addElement(item); + } + if (queueListModel.size() > 0) { + optionQueue.setText("Queue (" + queueListModel.size() + ")"); + } else { + optionQueue.setText("Queue"); + } gbc.gridx = 0; JPanel queueListPanel = new JPanel(new GridBagLayout()); queueListPanel.add(queueListScroll, gbc); @@ -968,9 +977,14 @@ public class MainWindow implements Runnable, RipStatusHandler { } } + @SuppressWarnings("unchecked") private void ripNextAlbum() { isRipping = true; - if (queueListModel.size() == 0) { + + // Save current state of queue to configuration. + Utils.setConfigList("queue", (Enumeration) queueListModel.elements()); + + if (queueListModel.isEmpty()) { // End of queue isRipping = false; return; @@ -1057,7 +1071,7 @@ public class MainWindow implements Runnable, RipStatusHandler { class RipButtonHandler implements ActionListener { public void actionPerformed(ActionEvent event) { - if (!queueListModel.contains(ripTextfield.getText())) { + if (!queueListModel.contains(ripTextfield.getText()) && !ripTextfield.getText().equals("")) { queueListModel.add(queueListModel.size(), ripTextfield.getText()); ripTextfield.setText(""); } diff --git a/src/main/java/com/rarchives/ripme/utils/Utils.java b/src/main/java/com/rarchives/ripme/utils/Utils.java index f6237ed6..e9d1644c 100644 --- a/src/main/java/com/rarchives/ripme/utils/Utils.java +++ b/src/main/java/com/rarchives/ripme/utils/Utils.java @@ -119,6 +119,14 @@ public class Utils { config.clearProperty(key); config.addProperty(key, list); } + public static void setConfigList(String key, Enumeration enumeration) { + config.clearProperty(key); + List list = new ArrayList(); + while (enumeration.hasMoreElements()) { + list.add(enumeration.nextElement()); + } + config.addProperty(key, list); + } public static void saveConfig() { try {