From b8c9d9c0f34dd1cf5a215d3ccd140087cf485c43 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sat, 27 Apr 2019 03:02:47 -0400 Subject: [PATCH] Clean up LLScrollListCtrl and add ability to getSortColumns() --- indra/llui/llscrolllistctrl.cpp | 21 +++++++++------------ indra/llui/llscrolllistctrl.h | 5 +++-- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp index 7af6313af..2d84791b1 100644 --- a/indra/llui/llscrolllistctrl.cpp +++ b/indra/llui/llscrolllistctrl.cpp @@ -62,7 +62,7 @@ std::vector LLScrollListCtrl::sMenus = {}; // List menus that recur, // local structures & classes. struct SortScrollListItem { - SortScrollListItem(const std::vector >& sort_orders,const LLScrollListCtrl::sort_signal_t* sort_signal) + SortScrollListItem(const std::vector& sort_orders,const LLScrollListCtrl::sort_signal_t* sort_signal) : mSortOrders(sort_orders) , mSortSignal(sort_signal) {} @@ -102,7 +102,7 @@ struct SortScrollListItem } - typedef std::vector > sort_order_t; + typedef std::vector sort_order_t; const LLScrollListCtrl::sort_signal_t* mSortSignal; const sort_order_t& mSortOrders; }; @@ -2294,7 +2294,7 @@ struct SameSortColumn SameSortColumn(S32 column) : mColumn(column) {} S32 mColumn; - bool operator()(std::pair sort_column) { return sort_column.first == mColumn; } + bool operator()(LLScrollListCtrl::sort_column_t sort_column) { return sort_column.first == mColumn; } }; BOOL LLScrollListCtrl::setSort(S32 column_idx, BOOL ascending) @@ -2392,7 +2392,7 @@ void LLScrollListCtrl::updateSort() const // for one-shot sorts, does not save sort column/order void LLScrollListCtrl::sortOnce(S32 column, BOOL ascending) { - std::vector > sort_column; + std::vector sort_column; sort_column.push_back(std::make_pair(column, ascending)); // do stable sort to preserve any previous sorts @@ -2733,15 +2733,15 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac std::string value = row_child->getTextContents(); row["columns"][column_idx]["value"] = value; - std::string columnname(""); + std::string columnname; if (row_child->getAttributeString("name", columnname)) row["columns"][column_idx]["column"] = columnname; - std::string font(""); + std::string font; if (row_child->getAttributeString("font", font)) row["columns"][column_idx]["font"] = font; - std::string font_style(""); + std::string font_style; if (row_child->getAttributeString("font-style", font_style)) row["columns"][column_idx]["font-style"] = font_style; @@ -2771,12 +2771,9 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac void LLScrollListCtrl::copy() { std::string buffer; - - std::vector items = getAllSelected(); - std::vector::iterator itor; - for (itor = items.begin(); itor != items.end(); ++itor) + for (auto item : getAllSelected()) { - buffer += (*itor)->getContentsCSV() + "\n"; + buffer += item->getContentsCSV() + '\n'; } gClipboard.copyFromSubstring(utf8str_to_wstring(buffer), 0, buffer.length()); } diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h index 5c914ee17..3a2adf5c6 100644 --- a/indra/llui/llscrolllistctrl.h +++ b/indra/llui/llscrolllistctrl.h @@ -320,6 +320,8 @@ public: void updateStaticColumnWidth(LLScrollListColumn* col, S32 new_width); S32 getTotalStaticColumnWidth() { return mTotalStaticColumnWidth; } + typedef std::pair sort_column_t; + const std::vector& getSortColumns() const { return mSortColumns; } std::string getSortColumnName(); BOOL getSortAscending() { return mSortColumns.empty() ? TRUE : mSortColumns.back().second; } BOOL hasSortOrder() const; @@ -354,7 +356,7 @@ public: void setNeedsSortColumn(S32 col) { if(!isSorted())return; - for(std::vector >::iterator it=mSortColumns.begin();it!=mSortColumns.end();++it) + for(auto it=mSortColumns.begin();it!=mSortColumns.end();++it) { if((*it).first == col) { @@ -482,7 +484,6 @@ private: typedef std::vector ordered_columns_t; ordered_columns_t mColumnsIndexed; - typedef std::pair sort_column_t; std::vector mSortColumns; sort_signal_t* mSortCallback;