From 5ad021fde3dbf29a6b6cf587e192e050c110a55b Mon Sep 17 00:00:00 2001
From: fgerlits <fgerlits@cfc7b370-4200-0410-a6e3-cb6bdb053afe>
Date: Tue, 31 Oct 2006 19:37:19 +0000
Subject: [PATCH] fixing #1910

---
 .../src/products/gLiveSupport/src/BrowseItem.cxx       | 10 ++++++----
 campcaster/src/products/gLiveSupport/src/BrowseItem.h  | 10 ++++++++--
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/campcaster/src/products/gLiveSupport/src/BrowseItem.cxx b/campcaster/src/products/gLiveSupport/src/BrowseItem.cxx
index bd1e0b982..9ed44659f 100644
--- a/campcaster/src/products/gLiveSupport/src/BrowseItem.cxx
+++ b/campcaster/src/products/gLiveSupport/src/BrowseItem.cxx
@@ -81,7 +81,7 @@ BrowseItem :: BrowseItem(
     treeModel = Gtk::ListStore::create(modelColumns);
     
     metadataValues = Gtk::manage(wf->createTreeView(treeModel));
-    metadataValues->appendColumn("", modelColumns.column, 200);
+    metadataValues->appendColumn("", modelColumns.displayedColumn, 200);
     metadataValues->set_size_request(230, 150);
     metadataValues->set_headers_visible(false);
     metadataValues->signal_cursor_changed().connect(sigc::mem_fun(*this,
@@ -120,7 +120,7 @@ BrowseItem :: getSearchCriteria(void)           throw (std::invalid_argument)
         Gtk::TreeModel::iterator iter = refSelection->get_selected();
         if (iter) {
             found = true;
-            metadataValue = (*iter)[modelColumns.column];
+            metadataValue = (*iter)[modelColumns.originalColumn];
         }
     }
     
@@ -162,13 +162,15 @@ BrowseItem :: onShow(void)                                          throw ()
     
     treeModel->clear();
     Gtk::TreeModel::Row     row = *treeModel->append();
-    row[modelColumns.column]                = allString;
+    row[modelColumns.originalColumn]        = allString;
+    row[modelColumns.displayedColumn]       = allString;
     metadataValues->get_selection()->select(*row);
 
     std::vector<Glib::ustring>::const_iterator valuesIt;
     for (valuesIt = values->begin(); valuesIt != values->end(); ++valuesIt) {
         row = *treeModel->append();
-        row[modelColumns.column]            = Glib::Markup::escape_text(
+        row[modelColumns.originalColumn]    = *valuesIt;
+        row[modelColumns.displayedColumn]   = Glib::Markup::escape_text(
                                                                     *valuesIt);
     }
     
diff --git a/campcaster/src/products/gLiveSupport/src/BrowseItem.h b/campcaster/src/products/gLiveSupport/src/BrowseItem.h
index 35559ce43..d0e159356 100644
--- a/campcaster/src/products/gLiveSupport/src/BrowseItem.h
+++ b/campcaster/src/products/gLiveSupport/src/BrowseItem.h
@@ -114,17 +114,23 @@ class BrowseItem : public Gtk::VBox,
         class ModelColumns : public ZebraTreeModelColumnRecord
         {
             public:
+                /**
+                 *  The original (unescaped) value of metadata.
+                 */
+                Gtk::TreeModelColumn<Glib::ustring>     originalColumn;
+                
                 /**
                  *  The single displayed column.
                  */
-                Gtk::TreeModelColumn<Glib::ustring>     column;
+                Gtk::TreeModelColumn<Glib::ustring>     displayedColumn;
                 
                 /**
                  *  Constructor.
                  */
                 ModelColumns(void)                              throw ()
                 {
-                    add(column);
+                    add(originalColumn);
+                    add(displayedColumn);
                 }
         };