aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llnamelistctrl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llnamelistctrl.cpp')
-rw-r--r--linden/indra/newview/llnamelistctrl.cpp60
1 files changed, 46 insertions, 14 deletions
diff --git a/linden/indra/newview/llnamelistctrl.cpp b/linden/indra/newview/llnamelistctrl.cpp
index 90bfb86..98745b4 100644
--- a/linden/indra/newview/llnamelistctrl.cpp
+++ b/linden/indra/newview/llnamelistctrl.cpp
@@ -4,6 +4,7 @@
4 * 4 *
5 * Copyright (c) 2003-2007, Linden Research, Inc. 5 * Copyright (c) 2003-2007, Linden Research, Inc.
6 * 6 *
7 * Second Life Viewer Source Code
7 * The source code in this file ("Source Code") is provided by Linden Lab 8 * The source code in this file ("Source Code") is provided by Linden Lab
8 * to you under the terms of the GNU General Public License, version 2.0 9 * to you under the terms of the GNU General Public License, version 2.0
9 * ("GPL"), unless you have obtained a separate licensing agreement 10 * ("GPL"), unless you have obtained a separate licensing agreement
@@ -177,6 +178,13 @@ BOOL LLNameListCtrl::addNameItem(LLScrollListItem* item, EAddPosition pos)
177 178
178 addItem(item, pos); 179 addItem(item, pos);
179 180
181 // this column is resizable
182 LLScrollListColumn* columnp = getColumn(mNameColumnIndex);
183 if (columnp && columnp->mHeader)
184 {
185 columnp->mHeader->setHasResizableElement(TRUE);
186 }
187
180 return result; 188 return result;
181} 189}
182 190
@@ -187,16 +195,41 @@ LLScrollListItem* LLNameListCtrl::addElement(const LLSD& value, EAddPosition pos
187 char first[DB_FIRST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ 195 char first[DB_FIRST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/
188 char last[DB_LAST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ 196 char last[DB_LAST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/
189 197
190 gCacheName->getName(item->getUUID(), first, last); 198 // use supplied name by default
191 199 LLString fullname = value["name"].asString();
192 LLString fullname; 200 if (value["target"].asString() == "GROUP")
193 fullname.assign(first); 201 {
194 fullname.append(1, ' '); 202 char group_name[DB_GROUP_NAME_BUF_SIZE]; /*Flawfinder: ignore*/
195 fullname.append(last); 203 gCacheName->getGroupName(item->getUUID(), group_name);
196 204 // fullname will be "nobody" if group not found
205 fullname = group_name;
206 }
207 else if (value["target"].asString() == "SPECIAL")
208 {
209 // just use supplied name
210 }
211 else // normal resident
212 {
213 if (gCacheName->getName(item->getUUID(), first, last))
214 {
215 fullname.assign(first);
216 fullname.append(1, ' ');
217 fullname.append(last);
218 }
219 }
220
197 LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex); 221 LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex);
198 ((LLScrollListText*)cell)->setText( fullname ); 222 ((LLScrollListText*)cell)->setText( fullname );
199 223
224 updateMaxContentWidth(item);
225
226 // this column is resizable
227 LLScrollListColumn* columnp = getColumn(mNameColumnIndex);
228 if (columnp && columnp->mHeader)
229 {
230 columnp->mHeader->setHasResizableElement(TRUE);
231 }
232
200 return item; 233 return item;
201} 234}
202 235
@@ -241,6 +274,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const char* first,
241 cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex); 274 cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex);
242 275
243 ((LLScrollListText*)cell)->setText( fullname ); 276 ((LLScrollListText*)cell)->setText( fullname );
277 updateMaxContentWidth(item);
244 } 278 }
245 } 279 }
246} 280}
@@ -318,13 +352,6 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
318 node->getAttributeS32("heading_height", heading_height); 352 node->getAttributeS32("heading_height", heading_height);
319 name_list->setHeadingHeight(heading_height); 353 name_list->setHeadingHeight(heading_height);
320 } 354 }
321 if (node->hasAttribute("heading_font"))
322 {
323 LLString heading_font("");
324 node->getAttributeString("heading_font", heading_font);
325 LLFontGL* gl_font = LLFontGL::fontFromName(heading_font.c_str());
326 name_list->setHeadingFont(gl_font);
327 }
328 name_list->setCollapseEmptyColumns(collapse_empty_columns); 355 name_list->setCollapseEmptyColumns(collapse_empty_columns);
329 356
330 BOOL allow_calling_card_drop = FALSE; 357 BOOL allow_calling_card_drop = FALSE;
@@ -363,8 +390,12 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
363 columns[index]["width"] = columnwidth; 390 columns[index]["width"] = columnwidth;
364 } 391 }
365 392
393 LLFontGL::HAlign h_align = LLFontGL::LEFT;
394 h_align = LLView::selectFontHAlign(child);
395
366 columns[index]["name"] = columnname; 396 columns[index]["name"] = columnname;
367 columns[index]["label"] = labelname; 397 columns[index]["label"] = labelname;
398 columns[index]["halign"] = (S32)h_align;
368 index++; 399 index++;
369 } 400 }
370 } 401 }
@@ -426,3 +457,4 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
426 return name_list; 457 return name_list;
427} 458}
428 459
460