diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-03-04 19:29:16 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-03-04 19:29:16 +0000 |
| commit | 23865e22ed85f45ebb7c9dbe330e14dd0d80ce3c (patch) | |
| tree | b0829b32fddcc8b9bf36c202e5af51272de9f7b4 /src/ui/listwidget.cpp | |
| parent | 25152c9e8426e1c9ee2ea7dd151e41a325c70bfa (diff) | |
| download | qmmp-23865e22ed85f45ebb7c9dbe330e14dd0d80ce3c.tar.gz qmmp-23865e22ed85f45ebb7c9dbe330e14dd0d80ce3c.tar.bz2 qmmp-23865e22ed85f45ebb7c9dbe330e14dd0d80ce3c.zip | |
do not show "0:00" in playlist
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2094 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/ui/listwidget.cpp')
| -rw-r--r-- | src/ui/listwidget.cpp | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/ui/listwidget.cpp b/src/ui/listwidget.cpp index 8ed998e38..0c8df7c60 100644 --- a/src/ui/listwidget.cpp +++ b/src/ui/listwidget.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2010 by Ilya Kotov * + * Copyright (C) 2006-2011 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -44,6 +44,8 @@ ListWidget::ListWidget(QWidget *parent) m_update = false; m_skin = Skin::instance(); m_popupWidget = 0; + m_metrics = 0; + m_extra_metrics = 0; loadColors(); m_menu = new QMenu(this); m_scroll_direction = NONE; @@ -66,12 +68,19 @@ ListWidget::ListWidget(QWidget *parent) ListWidget::~ListWidget() -{} +{ + if(m_metrics) + delete m_metrics; + if(m_extra_metrics) + delete m_extra_metrics; +} void ListWidget::readSettings() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); m_font.fromString(settings.value("PlayList/Font", QApplication::font().toString()).toString()); + m_extra_font = m_font; + m_extra_font.setPointSize(m_font.pointSize() - 1); m_show_protocol = settings.value ("PlayList/show_protocol", false).toBool(); m_show_number = settings.value ("PlayList/show_numbers", true).toBool(); m_show_anchor = settings.value("PlayList/show_anchor", false).toBool(); @@ -80,7 +89,9 @@ void ListWidget::readSettings() if (m_update) { delete m_metrics; + delete m_extra_metrics; m_metrics = new QFontMetrics(m_font); + m_extra_metrics = new QFontMetrics(m_extra_font); m_rows = height() / (m_metrics->lineSpacing() + 2); updateList(); if(m_popupWidget) @@ -93,6 +104,7 @@ void ListWidget::readSettings() { m_update = true; m_metrics = new QFontMetrics(m_font); + m_extra_metrics = new QFontMetrics(m_extra_font); } if(show_popup) m_popupWidget = new PlayListPopup::PopupWidget(this); @@ -112,7 +124,7 @@ void ListWidget::paintEvent(QPaintEvent *) m_painter.setFont(m_font); m_painter.setBrush(QBrush(m_normal_bg)); m_painter.drawRect(-1,-1,width()+1,height()+1); - int font_y = 0, old_size = 0; + int font_y = 0; for (int i = 0; i < m_titles.size(); ++i ) { @@ -145,15 +157,15 @@ void ListWidget::paintEvent(QPaintEvent *) QString extra_string = getExtraString(m_first + i); if(!extra_string.isEmpty()) { - old_size = m_font.pointSize(); - m_font.setPointSize(old_size - 1); - m_painter.setFont(m_font); + m_painter.setFont(m_extra_font); - m_painter.drawText(width() - 10 - m_metrics->width(extra_string) - - m_metrics->width(m_times.at(i)), font_y, extra_string); - m_font.setPointSize(old_size); + if(m_times.at(i).isEmpty()) + m_painter.drawText(width() - 7 - m_extra_metrics->width(extra_string), + font_y, extra_string); + else + m_painter.drawText(width() - 10 - m_extra_metrics->width(extra_string) - + m_metrics->width(m_times.at(i)), font_y, extra_string); m_painter.setFont(m_font); - m_painter.setBrush(QBrush(m_normal_bg)); } m_painter.drawText(width() - 7 - m_metrics->width(m_times.at(i)), font_y, m_times.at(i)); } |
