From ac7f1753d3f742e0af8dd5e142b4eac9d9d2fbba Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 28 Oct 2011 21:41:31 -0400
Subject: [PATCH] Preserve feed selections when not saving passwords

---
 src/com/gitblit/client/GitblitManager.java |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/client/GitblitManager.java b/src/com/gitblit/client/GitblitManager.java
index f16616a..8f396f3 100644
--- a/src/com/gitblit/client/GitblitManager.java
+++ b/src/com/gitblit/client/GitblitManager.java
@@ -31,6 +31,7 @@
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -198,17 +199,22 @@
 			EditRegistrationDialog dialog = new EditRegistrationDialog(this, reg, true);
 			dialog.setLocationRelativeTo(GitblitManager.this);
 			dialog.setVisible(true);
-			reg = dialog.getRegistration();
-			if (reg == null) {
+			GitblitRegistration newReg = dialog.getRegistration();
+			if (newReg == null) {
 				// user canceled
 				return;
 			}
+			// preserve feeds
+			newReg.feeds = reg.feeds;
+			
+			// use new reg
+			reg = newReg;
 		}
-		
+
 		// login
 		setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
 		final GitblitRegistration registration = reg;
-		final GitblitPanel panel = new GitblitPanel(registration);
+		final GitblitPanel panel = new GitblitPanel(registration, this);
 		SwingWorker<Boolean, Void> worker = new SwingWorker<Boolean, Void>() {
 
 			@Override
@@ -303,6 +309,10 @@
 					password = new String(Base64.decode(pw)).toCharArray();
 				}
 				GitblitRegistration reg = new GitblitRegistration(server, url, account, password);
+				String[] feeds = config.getStringList("servers", server, "feeds");
+				if (feeds != null) {
+					reg.feeds = new ArrayList<String>(Arrays.asList(feeds));
+				}
 				reg.lastLogin = lastLogin;
 				registrations.put(reg.name, reg);
 			}
@@ -333,6 +343,9 @@
 			if (reg.lastLogin != null) {
 				config.setString("servers", reg.name, "lastLogin", dateFormat.format(reg.lastLogin));
 			}
+			if (reg.feeds != null) {
+				config.setStringList("servers", reg.name, "feeds", reg.feeds);
+			}
 			config.save();
 			return true;
 		} catch (Throwable t) {

--
Gitblit v1.9.1