diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-06-29 20:54:01 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-06-29 20:54:01 +0000 |
| commit | f53bff4a5811429b0287c305d7f2e39f8d6bc4eb (patch) | |
| tree | 907ef28a3628cb5767883858d40fe0ae2573c198 /src/ui/listwidget.cpp | |
| parent | dba255e402004eb17703445ab8f5013eb75033b7 (diff) | |
| download | qmmp-f53bff4a5811429b0287c305d7f2e39f8d6bc4eb.tar.gz qmmp-f53bff4a5811429b0287c305d7f2e39f8d6bc4eb.tar.bz2 qmmp-f53bff4a5811429b0287c305d7f2e39f8d6bc4eb.zip | |
optimized list widget
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@987 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/ui/listwidget.cpp')
| -rw-r--r-- | src/ui/listwidget.cpp | 34 |
1 files changed, 9 insertions, 25 deletions
diff --git a/src/ui/listwidget.cpp b/src/ui/listwidget.cpp index a3e9ad430..fed0e315f 100644 --- a/src/ui/listwidget.cpp +++ b/src/ui/listwidget.cpp @@ -102,8 +102,6 @@ void ListWidget::paintEvent(QPaintEvent *) m_painter.setBrush(QBrush(m_normal_bg)); m_painter.drawRect(-1,-1,width()+1,height()+1); - - for (int i=0; i<m_titles.size(); ++i ) { if (m_model->isSelected(i + m_first)) @@ -300,7 +298,15 @@ void ListWidget::updateList() m_titles.replace(i, title.prepend(QString("%1").arg(m_first+i+1)+". ")); } - cut(); + //elide title + QString extra_string; + for (int i=0; i<m_titles.size(); ++i ) + { + extra_string = getExtraString(m_first + i); + int extra_string_space = extra_string.isEmpty() ? 0 : m_metrics->width(extra_string); + m_titles.replace(i, m_metrics->elidedText (m_titles.at(i), Qt::ElideRight, + width() - m_metrics->width(m_times.at(i)) - 22 - extra_string_space)); + } update(); } @@ -321,28 +327,6 @@ void ListWidget::scroll(int sc) updateList(); } -void ListWidget::cut() -{ - bool cut; - for (int i=0; i<m_titles.size(); ++i ) - { - QString name; - cut = FALSE; - - QString extra_string = getExtraString(m_first + i); - int extra_string_space = extra_string.isEmpty() ? 0 : m_metrics->width(extra_string); - while (m_metrics->width(m_titles.at(i)) > (this->width() - m_metrics->width(m_times.at(i)) - - 22 - extra_string_space)) - { - cut = TRUE; - name = m_titles.at(i); - m_titles.replace(i, name.left(name.length()-1) ); - } - if (cut) - m_titles.replace(i, name.left(name.length()-3).trimmed()+"..."); - } -} - void ListWidget::updateSkin() { loadColors(); |
