Index: /trunk/BNC/bnctabledlg.cpp
===================================================================
--- /trunk/BNC/bnctabledlg.cpp	(revision 1475)
+++ /trunk/BNC/bnctabledlg.cpp	(revision 1476)
@@ -56,5 +56,4 @@
   QVBoxLayout* mainLayout = new QVBoxLayout(this);
 
-  QSettings settings;
   int ww = QFontMetrics(font()).width('w');
 
@@ -75,11 +74,8 @@
   connect(_casterHostComboBox, SIGNAL(currentIndexChanged(const QString&)),
           this, SLOT(slotCasterHostChanged(const QString&)));
-  QStringList casterHostList = settings.value("casterHostList").toStringList();
-  for (int ii = 0; ii < casterHostList.count(); ii++) {
-    QString item = casterHostList[ii];
-    if (item.indexOf("http://") != 0) {
-      item = "http://" + item;
-    }
-    QUrl url(item);
+  QSettings settings;
+  QStringList casterUrlList = settings.value("casterUrlList").toStringList();
+  for (int ii = 0; ii < casterUrlList.count(); ii++) {
+    QUrl url(casterUrlList[ii]);
     _casterHostComboBox->addItem(url.host());
   }
@@ -294,7 +290,17 @@
 void bncTableDlg::accept() {
 
+  QUrl url;
+  url.setHost(_casterHostComboBox->currentText());
+  url.setPort(_casterPortLineEdit->text().toInt());
+  url.setUserName(_casterUserLineEdit->text());
+  url.setPassword(_casterPasswordLineEdit->text());
+
   QSettings settings;
   settings.setValue("casterHost", _casterHostComboBox->currentText());
   settings.setValue("ntripVersion", _ntripVersionComboBox->currentText());
+  QStringList casterUrlList = settings.value("casterUrlList").toStringList();
+  casterUrlList << url.toString();
+  settings.setValue("casterUrlList", casterUrlList);
+  settings.sync();
 
   QStringList* mountPoints = new QStringList;
@@ -310,11 +316,5 @@
       format.replace(" ", "_");
       if (_table->isItemSelected(item)) {
-        QUrl url;
-        url.setUserName(QUrl::toPercentEncoding(_casterUserLineEdit->text()));
-        url.setPassword(QUrl::toPercentEncoding(_casterPasswordLineEdit->text()));
-        url.setHost(_casterHostComboBox->currentText());
-        url.setPort(_casterPortLineEdit->text().toInt());
         url.setPath(item->text());
-
         mountPoints->push_back(url.toString() + " " + format + " " + latitude 
                         + " " + longitude + " " + nmea + " " + ntripVersion);
@@ -513,5 +513,5 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncCasterTableDlg:: slotWhatsThisCasterTable() {
-QWhatsThis::enterWhatsThisMode();
+  QWhatsThis::enterWhatsThisMode();
 }
 
@@ -550,8 +550,13 @@
   _casterPortLineEdit->setText(newCasterPort);
 
+  QUrl url;
+  url.setScheme("http");
+  url.setHost(newCasterHost);
+  url.setPort(newCasterPort.toInt());
+
   QSettings settings;
-  QStringList casterHostList = settings.value("casterHostList").toStringList();
-  casterHostList << QString("http://" + newCasterHost + ":" + newCasterPort);
-  settings.setValue("casterHostList", casterHostList);
+  QStringList casterUrlList = settings.value("casterUrlList").toStringList();
+  casterUrlList << url.toString();
+  settings.setValue("casterUrlList", casterUrlList);
   settings.sync();
 }
@@ -561,11 +566,7 @@
 void bncTableDlg::slotCasterHostChanged(const QString& newHost) {
   QSettings settings;
-  QStringList casterHostList = settings.value("casterHostList").toStringList();
-  for (int ii = 0; ii < casterHostList.count(); ii++) {
-    QString item = casterHostList[ii];
-    if (item.indexOf("http://") != 0) {
-      item = "http://" + item;
-    }
-    QUrl url(item);
+  QStringList casterUrlList = settings.value("casterUrlList").toStringList();
+  for (int ii = 0; ii < casterUrlList.count(); ii++) {
+    QUrl url(casterUrlList[ii]);
     if (url.host() == newHost) {
       _casterUserLineEdit->setText(url.userName());
