aboutsummaryrefslogtreecommitdiff
path: root/src/ui/listwidget.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-06-29 20:54:01 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-06-29 20:54:01 +0000
commitf53bff4a5811429b0287c305d7f2e39f8d6bc4eb (patch)
tree907ef28a3628cb5767883858d40fe0ae2573c198 /src/ui/listwidget.cpp
parentdba255e402004eb17703445ab8f5013eb75033b7 (diff)
downloadqmmp-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.cpp34
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();