comparison widgets/Pane.cpp @ 61:d072a3b59a0d

* truncate layer name texts if they get too wide
author Chris Cannam
date Mon, 20 Mar 2006 18:42:42 +0000
parents 705f05ab42e3
children c4fff27cd651
comparison
equal deleted inserted replaced
60:4df1a479bf10 61:d072a3b59a0d
328 int maxTextWidth = 0; 328 int maxTextWidth = 0;
329 329
330 for (LayerList::iterator i = m_layers.begin(); i != m_layers.end(); ++i) { 330 for (LayerList::iterator i = m_layers.begin(); i != m_layers.end(); ++i) {
331 331
332 QString text = (*i)->getLayerPresentationName(); 332 QString text = (*i)->getLayerPresentationName();
333 texts.push_back(text);
334 int tw = paint.fontMetrics().width(text); 333 int tw = paint.fontMetrics().width(text);
334 bool reduced = false;
335 while (tw > width() / 3 && text.length() > 4) {
336 if (!reduced && text.length() > 8) {
337 text = text.left(text.length() - 4);
338 } else {
339 text = text.left(text.length() - 2);
340 }
341 reduced = true;
342 tw = paint.fontMetrics().width(text + "...");
343 }
344 if (reduced) {
345 texts.push_back(text + "...");
346 } else {
347 texts.push_back(text);
348 }
335 if (tw > maxTextWidth) maxTextWidth = tw; 349 if (tw > maxTextWidth) maxTextWidth = tw;
336 } 350 }
337 351
338 int lly = height() - 6; 352 int lly = height() - 6;
339 353