aboutsummaryrefslogtreecommitdiff
path: root/src/ui/listwidget.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-03-04 19:29:16 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-03-04 19:29:16 +0000
commit23865e22ed85f45ebb7c9dbe330e14dd0d80ce3c (patch)
treeb0829b32fddcc8b9bf36c202e5af51272de9f7b4 /src/ui/listwidget.cpp
parent25152c9e8426e1c9ee2ea7dd151e41a325c70bfa (diff)
downloadqmmp-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.cpp32
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));
}