aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llnamelistctrl.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/newview/llnamelistctrl.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/linden/indra/newview/llnamelistctrl.cpp b/linden/indra/newview/llnamelistctrl.cpp
index 57a9f93..e645cc6 100644
--- a/linden/indra/newview/llnamelistctrl.cpp
+++ b/linden/indra/newview/llnamelistctrl.cpp
@@ -12,12 +12,12 @@
12 * ("GPL"), unless you have obtained a separate licensing agreement 12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of 13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or 14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlife.com/developers/opensource/gplv2 15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 * 16 *
17 * There are special exceptions to the terms and conditions of the GPL as 17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception 18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or 19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlife.com/developers/opensource/flossexception 20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 * 21 *
22 * By copying, modifying or distributing this software, you acknowledge 22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above, 23 * that you have read and understood your obligations described above,
@@ -224,7 +224,7 @@ LLScrollListItem* LLNameListCtrl::addElement(const LLSD& value, EAddPosition pos
224 LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex); 224 LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex);
225 ((LLScrollListText*)cell)->setText( fullname ); 225 ((LLScrollListText*)cell)->setText( fullname );
226 226
227 updateMaxContentWidth(item); 227 calcMaxContentWidth(item);
228 228
229 // this column is resizable 229 // this column is resizable
230 LLScrollListColumn* columnp = getColumn(mNameColumnIndex); 230 LLScrollListColumn* columnp = getColumn(mNameColumnIndex);
@@ -277,7 +277,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const char* first,
277 cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex); 277 cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex);
278 278
279 ((LLScrollListText*)cell)->setText( fullname ); 279 ((LLScrollListText*)cell)->setText( fullname );
280 updateMaxContentWidth(item); 280 calcMaxContentWidth(item);
281 } 281 }
282 } 282 }
283} 283}
@@ -332,9 +332,6 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
332 BOOL draw_heading = FALSE; 332 BOOL draw_heading = FALSE;
333 node->getAttributeBOOL("draw_heading", draw_heading); 333 node->getAttributeBOOL("draw_heading", draw_heading);
334 334
335 BOOL collapse_empty_columns = FALSE;
336 node->getAttributeBOOL("collapse_empty_columns", collapse_empty_columns);
337
338 S32 name_column_index = 0; 335 S32 name_column_index = 0;
339 node->getAttributeS32("name_column_index", name_column_index); 336 node->getAttributeS32("name_column_index", name_column_index);
340 337
@@ -355,7 +352,6 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
355 node->getAttributeS32("heading_height", heading_height); 352 node->getAttributeS32("heading_height", heading_height);
356 name_list->setHeadingHeight(heading_height); 353 name_list->setHeadingHeight(heading_height);
357 } 354 }
358 name_list->setCollapseEmptyColumns(collapse_empty_columns);
359 355
360 BOOL allow_calling_card_drop = FALSE; 356 BOOL allow_calling_card_drop = FALSE;
361 if (node->getAttributeBOOL("allow_calling_card_drop", allow_calling_card_drop)) 357 if (node->getAttributeBOOL("allow_calling_card_drop", allow_calling_card_drop))
@@ -369,6 +365,7 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
369 365
370 LLSD columns; 366 LLSD columns;
371 S32 index = 0; 367 S32 index = 0;
368 S32 total_static = 0;
372 LLXMLNodePtr child; 369 LLXMLNodePtr child;
373 for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling()) 370 for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling())
374 { 371 {
@@ -380,6 +377,13 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
380 LLString columnname(labelname); 377 LLString columnname(labelname);
381 child->getAttributeString("name", columnname); 378 child->getAttributeString("name", columnname);
382 379
380 BOOL columndynamicwidth = FALSE;
381 child->getAttributeBOOL("dynamicwidth", columndynamicwidth);
382
383 LLString sortname(columnname);
384 child->getAttributeString("sort", sortname);
385
386 S32 columnwidth = -1;
383 if (child->hasAttribute("relwidth")) 387 if (child->hasAttribute("relwidth"))
384 { 388 {
385 F32 columnrelwidth = 0.f; 389 F32 columnrelwidth = 0.f;
@@ -388,7 +392,6 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
388 } 392 }
389 else 393 else
390 { 394 {
391 S32 columnwidth = -1;
392 child->getAttributeS32("width", columnwidth); 395 child->getAttributeS32("width", columnwidth);
393 columns[index]["width"] = columnwidth; 396 columns[index]["width"] = columnwidth;
394 } 397 }
@@ -396,14 +399,21 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
396 LLFontGL::HAlign h_align = LLFontGL::LEFT; 399 LLFontGL::HAlign h_align = LLFontGL::LEFT;
397 h_align = LLView::selectFontHAlign(child); 400 h_align = LLView::selectFontHAlign(child);
398 401
402 if(!columndynamicwidth) total_static += llmax(0, columnwidth);
403
399 columns[index]["name"] = columnname; 404 columns[index]["name"] = columnname;
400 columns[index]["label"] = labelname; 405 columns[index]["label"] = labelname;
401 columns[index]["halign"] = (S32)h_align; 406 columns[index]["halign"] = (S32)h_align;
407 columns[index]["dynamicwidth"] = columndynamicwidth;
408 columns[index]["sort"] = sortname;
409
402 index++; 410 index++;
403 } 411 }
404 } 412 }
413 name_list->setTotalStaticColumnWidth(total_static);
405 name_list->setColumnHeadings(columns); 414 name_list->setColumnHeadings(columns);
406 415
416
407 for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling()) 417 for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling())
408 { 418 {
409 if (child->hasName("row")) 419 if (child->hasName("row"))
@@ -453,7 +463,7 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto
453 while(token_iter != tokens.end()) 463 while(token_iter != tokens.end())
454 { 464 {
455 const char* line = token_iter->c_str(); 465 const char* line = token_iter->c_str();
456 name_list->addSimpleItem(line); 466 name_list->addCommentText(line);
457 ++token_iter; 467 ++token_iter;
458 } 468 }
459 469