static bool onCheck(LLHandle<LLView> flat_list_handle, LLHandle<LLPanel> inventory_panel_handle, LLSD::String sort_order_str) { if (flat_list_handle.isDead() || inventory_panel_handle.isDead()) return false; LLWearableItemsList* flat_list = dynamic_cast<LLWearableItemsList*>(flat_list_handle.get()); LLInventoryPanel* inventory_panel = dynamic_cast<LLInventoryPanel*>(inventory_panel_handle.get()); if (!inventory_panel || !flat_list) return false; // Inventory panel uses its own sort order independent from // flat list view so this flag is used to distinguish between // currently visible "tree" or "flat" representation of inventory. bool inventory_tree_visible = inventory_panel->getVisible(); if (inventory_tree_visible) { U32 sort_order = inventory_panel->getSortOrder(); if ("by_most_recent" == sort_order_str) { return LLWearableItemsList::E_SORT_BY_MOST_RECENT & sort_order; } else if ("by_name" == sort_order_str) { // If inventory panel is not sorted by date then it is sorted by name. return LLWearableItemsList::E_SORT_BY_MOST_RECENT & ~sort_order; } llwarns << "Unrecognized inventory panel sort order" << llendl; } else { LLWearableItemsList::ESortOrder sort_order = flat_list->getSortOrder(); if ("by_most_recent" == sort_order_str) { return LLWearableItemsList::E_SORT_BY_MOST_RECENT == sort_order; } else if ("by_name" == sort_order_str) { return LLWearableItemsList::E_SORT_BY_NAME == sort_order; } else if ("by_type" == sort_order_str) { return LLWearableItemsList::E_SORT_BY_TYPE_NAME == sort_order; } llwarns << "Unrecognized wearable list sort order" << llendl; } return false; }
static bool onVisible(LLHandle<LLPanel> inventory_panel_handle, LLSD::String sort_order_str) { if (inventory_panel_handle.isDead()) return false; LLInventoryPanel* inventory_panel = dynamic_cast<LLInventoryPanel*>(inventory_panel_handle.get()); // Enable sorting by type only for the flat list of items // because inventory panel doesn't support this kind of sorting. return ( "by_type" == sort_order_str ) && ( !inventory_panel || !inventory_panel->getVisible() ); }
static void onSort(LLHandle<LLView> flat_list_handle, LLHandle<LLPanel> inventory_panel_handle, LLSD::String sort_order_str) { if (flat_list_handle.isDead() || inventory_panel_handle.isDead()) return; LLWearableItemsList* flat_list = dynamic_cast<LLWearableItemsList*>(flat_list_handle.get()); LLInventoryPanel* inventory_panel = dynamic_cast<LLInventoryPanel*>(inventory_panel_handle.get()); if (!flat_list || !inventory_panel) return; LLWearableItemsList::ESortOrder sort_order; if ("by_most_recent" == sort_order_str) { sort_order = LLWearableItemsList::E_SORT_BY_MOST_RECENT; } else if ("by_name" == sort_order_str) { sort_order = LLWearableItemsList::E_SORT_BY_NAME; } else if ("by_type" == sort_order_str) { sort_order = LLWearableItemsList::E_SORT_BY_TYPE_NAME; } else { llwarns << "Unrecognized sort order action" << llendl; return; } if (inventory_panel->getVisible()) { inventory_panel->setSortOrder(sort_order); } else { flat_list->setSortOrder(sort_order); } }
/*virtual*/ void httpSuccess() { if (mHandle.isDead()) { return; } LLPanelGroupExperiences* panel = mHandle.get(); if (panel) { panel->setExperienceList(getContent().get("experience_ids")); } }
bool LLTransientFloaterMgr::isControlClicked(ETransientGroup group, controls_set_t& set, S32 x, S32 y) { std::list< LLHandle<LLView> > dead_handles; bool res = true; for (controls_set_t::iterator it = set.begin(); it != set.end(); it++) { LLView* control_view = NULL; LLHandle<LLView> handle = *it; if (handle.isDead()) { dead_handles.push_back(handle); continue; } control_view = handle.get(); if (!control_view->getVisible()) { continue; } LLRect rect = control_view->calcScreenRect(); // if click inside view rect if (rect.pointInRect(x, y)) { res = false; break; } } for (std::list< LLHandle<LLView> >::iterator it = dead_handles.begin(); it != dead_handles.end(); ++it) { LLHandle<LLView> handle = *it; mGroupControls.find(group)->second.erase(handle); } return res; }