summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-10-29 20:43:32 -0700
committerMerov Linden <merov@lindenlab.com>2012-10-29 20:43:32 -0700
commita7a24dc2f9450e0d51e7110a7eb44e0f27a010db (patch)
tree296b5344b33734babfde6aeecb36af2e005ddc32 /indra/llui
parent480c3a1acb32e98d0d64aaf7bb70e4d61e6882f6 (diff)
parent1a1a0b91c0c4400ec3febac183124314f9226127 (diff)
Pull merge from richard/viewer-chui
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llfloaterreg.cpp2
-rw-r--r--indra/llui/llfloaterreg.h24
-rw-r--r--indra/llui/llfolderview.cpp2
-rwxr-xr-xindra/llui/llfolderviewitem.cpp2
-rw-r--r--indra/llui/llui.cpp12
5 files changed, 22 insertions, 20 deletions
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index 920525448c..9115eb7174 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -318,7 +318,7 @@ void LLFloaterReg::showInitialVisibleInstances()
BOOL isvis = LLFloater::getControlGroup()->getBOOL(controlname);
if (isvis)
{
- showInstance(name, LLSD(LLUUID())); // keyed floaters shouldn't set save_vis to true
+ showInstance(name, LLSD()); // keyed floaters shouldn't set save_vis to true
}
}
}
diff --git a/indra/llui/llfloaterreg.h b/indra/llui/llfloaterreg.h
index 7924b2a7b8..a1e1f8a988 100644
--- a/indra/llui/llfloaterreg.h
+++ b/indra/llui/llfloaterreg.h
@@ -90,23 +90,23 @@ public:
static LLFloater* getLastFloaterCascading();
// Find / get (create) / remove / destroy
- static LLFloater* findInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()));
- static LLFloater* getInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()));
- static LLFloater* removeInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()));
- static bool destroyInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()));
+ static LLFloater* findInstance(const std::string& name, const LLSD& key = LLSD());
+ static LLFloater* getInstance(const std::string& name, const LLSD& key = LLSD());
+ static LLFloater* removeInstance(const std::string& name, const LLSD& key = LLSD());
+ static bool destroyInstance(const std::string& name, const LLSD& key = LLSD());
// Iterators
static const_instance_list_t& getFloaterList(const std::string& name);
// Visibility Management
// return NULL if instance not found or can't create instance (no builder)
- static LLFloater* showInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()), BOOL focus = FALSE);
+ static LLFloater* showInstance(const std::string& name, const LLSD& key = LLSD(), BOOL focus = FALSE);
// Close a floater (may destroy or set invisible)
// return false if can't find instance
- static bool hideInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()));
+ static bool hideInstance(const std::string& name, const LLSD& key = LLSD());
// return true if instance is visible:
- static bool toggleInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()));
- static bool instanceVisible(const std::string& name, const LLSD& key = LLSD(LLUUID()));
+ static bool toggleInstance(const std::string& name, const LLSD& key = LLSD());
+ static bool instanceVisible(const std::string& name, const LLSD& key = LLSD());
static void showInitialVisibleInstances();
static void hideVisibleInstances(const std::set<std::string>& exceptions = std::set<std::string>());
@@ -126,23 +126,23 @@ public:
static void registerControlVariables();
// Callback wrappers
- static void toggleInstanceOrBringToFront(const LLSD& sdname, const LLSD& key = LLSD(LLUUID()));
+ static void toggleInstanceOrBringToFront(const LLSD& sdname, const LLSD& key = LLSD());
// Typed find / get / show
template <class T>
- static T* findTypedInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()))
+ static T* findTypedInstance(const std::string& name, const LLSD& key = LLSD())
{
return dynamic_cast<T*>(findInstance(name, key));
}
template <class T>
- static T* getTypedInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()))
+ static T* getTypedInstance(const std::string& name, const LLSD& key = LLSD())
{
return dynamic_cast<T*>(getInstance(name, key));
}
template <class T>
- static T* showTypedInstance(const std::string& name, const LLSD& key = LLSD(LLUUID()), BOOL focus = FALSE)
+ static T* showTypedInstance(const std::string& name, const LLSD& key = LLSD(), BOOL focus = FALSE)
{
return dynamic_cast<T*>(showInstance(name, key, focus));
}
diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp
index c8b8bcae48..c31a832141 100644
--- a/indra/llui/llfolderview.cpp
+++ b/indra/llui/llfolderview.cpp
@@ -505,7 +505,7 @@ void LLFolderView::sanitizeSelection()
// ensure that each ancestor is open and potentially passes filtering
BOOL visible = false;
- if(item->getViewModelItem())
+ if(item->getViewModelItem() != NULL)
{
visible = item->getViewModelItem()->potentiallyVisible(); // initialize from filter state for this item
}
diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp
index 099d51ce17..5d4c27ee6c 100755
--- a/indra/llui/llfolderviewitem.cpp
+++ b/indra/llui/llfolderviewitem.cpp
@@ -1473,6 +1473,8 @@ void LLFolderViewFolder::destroyView()
// doesn't delete it.
void LLFolderViewFolder::extractItem( LLFolderViewItem* item )
{
+ if (item->isSelected())
+ getRoot()->clearSelection();
items_t::iterator it = std::find(mItems.begin(), mItems.end(), item);
if(it == mItems.end())
{
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index f43409a1ff..41a948e545 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -1629,10 +1629,10 @@ void LLUI::initClass(const settings_map_t& settings,
LLUICtrl::CommitCallbackRegistry::Registrar& reg = LLUICtrl::CommitCallbackRegistry::defaultRegistrar();
// Callbacks for associating controls with floater visibility:
- reg.add("Floater.Toggle", boost::bind(&LLFloaterReg::toggleInstance, _2, LLSD(LLUUID())));
- reg.add("Floater.ToggleOrBringToFront", boost::bind(&LLFloaterReg::toggleInstanceOrBringToFront, _2, LLSD(LLUUID())));
- reg.add("Floater.Show", boost::bind(&LLFloaterReg::showInstance, _2, LLSD(LLUUID()), FALSE));
- reg.add("Floater.Hide", boost::bind(&LLFloaterReg::hideInstance, _2, LLSD(LLUUID())));
+ reg.add("Floater.Toggle", boost::bind(&LLFloaterReg::toggleInstance, _2, LLSD()));
+ reg.add("Floater.ToggleOrBringToFront", boost::bind(&LLFloaterReg::toggleInstanceOrBringToFront, _2, LLSD()));
+ reg.add("Floater.Show", boost::bind(&LLFloaterReg::showInstance, _2, LLSD(), FALSE));
+ reg.add("Floater.Hide", boost::bind(&LLFloaterReg::hideInstance, _2, LLSD()));
// Button initialization callback for toggle buttons
reg.add("Button.SetFloaterToggle", boost::bind(&LLButton::setFloaterToggle, _1, _2));
@@ -1647,8 +1647,8 @@ void LLUI::initClass(const settings_map_t& settings,
reg.add("Button.ToggleFloater", boost::bind(&LLButton::toggleFloaterAndSetToggleState, _1, _2));
// Used by menus along with Floater.Toggle to display visibility as a check-mark
- LLUICtrl::EnableCallbackRegistry::defaultRegistrar().add("Floater.Visible", boost::bind(&LLFloaterReg::instanceVisible, _2, LLSD(LLUUID())));
- LLUICtrl::EnableCallbackRegistry::defaultRegistrar().add("Floater.IsOpen", boost::bind(&LLFloaterReg::instanceVisible, _2, LLSD(LLUUID())));
+ LLUICtrl::EnableCallbackRegistry::defaultRegistrar().add("Floater.Visible", boost::bind(&LLFloaterReg::instanceVisible, _2, LLSD()));
+ LLUICtrl::EnableCallbackRegistry::defaultRegistrar().add("Floater.IsOpen", boost::bind(&LLFloaterReg::instanceVisible, _2, LLSD()));
// Parse the master list of commands
LLCommandManager::load();