diff options
author | callum <none@none> | 2010-12-16 15:34:46 -0800 |
---|---|---|
committer | callum <none@none> | 2010-12-16 15:34:46 -0800 |
commit | 4a2a9ba80ad4974ff1c52d83420e959240278c7e (patch) | |
tree | c982a4f0c8d25b9970c26433fbba1021531a3954 /indra | |
parent | 179b434d89d91e849ebdbf1e73811389c7afe24a (diff) |
SOCIAL-392 FIX Web Content Panel does not save location history between sessions
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llfloaterwebcontent.cpp | 53 | ||||
-rw-r--r-- | indra/newview/llfloaterwebcontent.h | 2 |
2 files changed, 44 insertions, 11 deletions
diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index ca8533abc5..9eb5d1e883 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -33,6 +33,7 @@ #include "llpluginclassmedia.h"
#include "llprogressbar.h"
#include "lltextbox.h"
+#include "llurlhistory.h"
#include "llviewercontrol.h"
#include "llweb.h"
#include "llwindow.h"
@@ -68,9 +69,35 @@ BOOL LLFloaterWebContent::postBuild() // cache image for secure browsing
mSecureLockIcon = getChild< LLIconCtrl >("media_secure_lock_flag");
+ // initialize the URL history using the system URL History manager
+ initializeURLHistory();
+
return TRUE;
}
+void LLFloaterWebContent::initializeURLHistory() +{ + // start with an empty list + LLCtrlListInterface* url_list = childGetListInterface("address"); + if (url_list) + { + url_list->operateOnAll(LLCtrlListInterface::OP_DELETE); + } + + // Get all of the entries in the "browser" collection + LLSD browser_history = LLURLHistory::getURLHistory("browser"); + LLSD::array_iterator iter_history = + browser_history.beginArray(); + LLSD::array_iterator end_history = + browser_history.endArray(); + for(; iter_history != end_history; ++iter_history) + { + std::string url = (*iter_history).asString(); + if(! url.empty()) + url_list->addSimpleElement(url); + } +} +
//static
void LLFloaterWebContent::create( const std::string &url, const std::string& target, const std::string& uuid )
{
@@ -255,17 +282,17 @@ void LLFloaterWebContent::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent mStatusBarText->setText( end_str );
// decide if secure browsing icon should be displayed
- std::string prefix = std::string("https://"); - std::string test_prefix = mCurrentURL.substr(0, prefix.length()); - LLStringUtil::toLower(test_prefix); - if(test_prefix == prefix) - { - mSecureLockIcon->setVisible(true); - } - else - { - mSecureLockIcon->setVisible(false); - } + std::string prefix = std::string("https://");
+ std::string test_prefix = mCurrentURL.substr(0, prefix.length());
+ LLStringUtil::toLower(test_prefix);
+ if(test_prefix == prefix)
+ {
+ mSecureLockIcon->setVisible(true);
+ }
+ else
+ {
+ mSecureLockIcon->setVisible(false);
+ }
}
else if(event == MEDIA_EVENT_CLOSE_REQUEST)
{
@@ -307,6 +334,10 @@ void LLFloaterWebContent::set_current_url(const std::string& url) {
mCurrentURL = url;
+ // serialize url history into the system URL History manager + LLURLHistory::removeURL("browser", mCurrentURL); + LLURLHistory::addURL("browser", mCurrentURL); +
mAddressCombo->remove( mCurrentURL );
mAddressCombo->add( mCurrentURL );
mAddressCombo->selectByValue( mCurrentURL );
diff --git a/indra/newview/llfloaterwebcontent.h b/indra/newview/llfloaterwebcontent.h index 4bd10342fa..001d822ada 100644 --- a/indra/newview/llfloaterwebcontent.h +++ b/indra/newview/llfloaterwebcontent.h @@ -44,6 +44,8 @@ public: LOG_CLASS(LLFloaterWebContent);
LLFloaterWebContent(const LLSD& key);
+ void initializeURLHistory(); +
static void create(const std::string &url, const std::string& target, const std::string& uuid = LLStringUtil::null);
static void closeRequest(const std::string &uuid);
|