From 7f38ea147466b6d045c90d710402b2ac321dbfd9 Mon Sep 17 00:00:00 2001 From: Eugene Mutavchi Date: Thu, 1 Apr 2010 11:32:51 +0300 Subject: Fixed normal bug EXT-6659("Ctrl+A" combination allows selecting of several picks) - added check that multiple selection is allowed Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/146/ --HG-- branch : product-engine --- indra/llui/llflatlistview.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'indra/llui/llflatlistview.cpp') diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index bc34012267..d8084fd9aa 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -562,8 +562,7 @@ BOOL LLFlatListView::handleKeyHere(KEY key, MASK mask) { if(MASK_CONTROL & mask) { - selectAll(); - handled = TRUE; + handled = (BOOL)selectAll(); } break; } @@ -793,7 +792,7 @@ bool LLFlatListView::selectNextItemPair(bool is_up_direction, bool reset_selecti bool LLFlatListView::selectAll() { - if (!mAllowSelection) + if (!mAllowSelection || !mMultipleSelection) return false; mSelectedItemPairs.clear(); -- cgit v1.2.3 From 7b4046df83e4353bdade8fbc39387a7bbb3f498d Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Thu, 1 Apr 2010 11:47:21 -0700 Subject: EXT-3531 - Ctrl-P does not work reliably on login --- indra/llui/llflatlistview.cpp | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) (limited to 'indra/llui/llflatlistview.cpp') diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index bc34012267..d499e08ecb 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -53,6 +53,17 @@ LLFlatListView::Params::Params() no_items_text("no_items_text") {}; +LLFlatListView::~LLFlatListView() +{ + clear(); + // Route menu back to the default + if( gEditMenuHandler == this ) + { + gEditMenuHandler = NULL; + } +}; + + void LLFlatListView::reshape(S32 width, S32 height, BOOL called_from_parent /* = TRUE */) { LLScrollContainer::reshape(width, height, called_from_parent); @@ -558,15 +569,6 @@ BOOL LLFlatListView::handleKeyHere(KEY key, MASK mask) } break; } - case 'A': - { - if(MASK_CONTROL & mask) - { - selectAll(); - handled = TRUE; - } - break; - } default: break; } @@ -791,10 +793,15 @@ bool LLFlatListView::selectNextItemPair(bool is_up_direction, bool reset_selecti return false; } -bool LLFlatListView::selectAll() +BOOL LLFlatListView::canSelectAll() const +{ + return !mItemPairs.empty() && mAllowSelection; +} + +void LLFlatListView::selectAll() { if (!mAllowSelection) - return false; + return; mSelectedItemPairs.clear(); @@ -814,8 +821,6 @@ bool LLFlatListView::selectAll() // Stretch selected item rect to ensure it won't be clipped mSelectedItemsBorder->setRect(getLastSelectedItemRect().stretch(-1)); - - return true; } bool LLFlatListView::isSelected(item_pair_t* item_pair) const @@ -953,11 +958,17 @@ void LLFlatListView::getValues(std::vector& values) const void LLFlatListView::onFocusReceived() { mSelectedItemsBorder->setVisible(TRUE); + gEditMenuHandler = this; } // virtual void LLFlatListView::onFocusLost() { mSelectedItemsBorder->setVisible(FALSE); + // Route menu back to the default + if( gEditMenuHandler == this ) + { + gEditMenuHandler = NULL; + } } //virtual -- cgit v1.2.3 From a9b806071ac0b60b9c4c36cc98564846c677dbd4 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 1 Apr 2010 16:41:45 -0700 Subject: fix for bad merge --- indra/llui/llflatlistview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/llui/llflatlistview.cpp') diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index 0fd7e7ed55..35f5a6bbb9 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -790,7 +790,7 @@ BOOL LLFlatListView::canSelectAll() const void LLFlatListView::selectAll() { if (!mAllowSelection || !mMultipleSelection) - return false; + return; mSelectedItemPairs.clear(); -- cgit v1.2.3