diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-10-10 21:41:43 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-10-10 21:41:43 +0000 |
| commit | 3d3847f9733016dddd129ffc752bd889d6e6e122 (patch) | |
| tree | c08d6bdb093b3633318cea51eb02fda19131ff6e /src/ui | |
| parent | 3d1758f19c90dcf1403bef96ac6b36a0740e708c (diff) | |
| download | qmmp-3d3847f9733016dddd129ffc752bd889d6e6e122.tar.gz qmmp-3d3847f9733016dddd129ffc752bd889d6e6e122.tar.bz2 qmmp-3d3847f9733016dddd129ffc752bd889d6e6e122.zip | |
fixed text scroller bugs
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1302 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/textscroller.cpp | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/src/ui/textscroller.cpp b/src/ui/textscroller.cpp index 81017a088..2ab2862f2 100644 --- a/src/ui/textscroller.cpp +++ b/src/ui/textscroller.cpp @@ -47,7 +47,9 @@ TextScroller::TextScroller ( QWidget *parent ) m_pixmap = QPixmap ( 150,15 ); resize(150,15); x = 0; + m_offset = 0; m_progress = -1; + m_metrics = 0; m_text = "Qt-based Multimedia Player (Qmmp " + Qmmp::strVersion() + ")"; m_update = FALSE; readSettings(); @@ -73,14 +75,22 @@ TextScroller::~TextScroller() { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.setValue("TextScroller/autoscroll", m_autoscroll); + if(m_metrics) + delete m_metrics; } void TextScroller::addOffset() { x--; - if ( 154 + x < - m_metrics->width (m_scrollText) - 15 +1) + if(m_bitmap) + { + if (154 + x < - m_scrollText.size() * 5 - 15 + 1) + x = -154; + } + else { - x=-154; + if (154 + x < - m_metrics->width (m_scrollText) - 15 + 1) + x = -154; } update(); } @@ -93,10 +103,14 @@ void TextScroller::setText(const QString& text) if (m_text != text) { m_text = text; - m_scrollText = "*** " + text; + m_scrollText = ".:: " + text + " ::."; x = m_autoscroll ? -50 : -150; m_bitmap = m_bitmapConf && (m_text.toLatin1() == m_text.toLocal8Bit()); } + if(m_bitmap) + m_offset = m_scrollText.size() * 5 + 15; + else + m_offset = m_metrics->width (m_scrollText) + 15; update(); } @@ -132,15 +146,16 @@ void TextScroller::readSettings() if (m_update) { delete m_metrics; - m_metrics = new QFontMetrics(m_font); m_bitmap = m_bitmapConf && (m_text.toLatin1() == m_text.toLocal8Bit()); } else { m_update = TRUE; m_bitmap = FALSE; - m_metrics = new QFontMetrics(m_font); + } + m_metrics = new QFontMetrics(m_font); + setText(m_text); } void TextScroller::setProgress(int progress) @@ -189,7 +204,8 @@ void TextScroller::paintEvent (QPaintEvent *) { if (m_autoscroll) { - drawBitmapText (154 + x + m_scrollText.size() * 5 + 15, 12, m_scrollText, &paint, m_skin); + drawBitmapText (154 + x + m_offset * 2, 12, m_scrollText, &paint, m_skin); + drawBitmapText (154 + x + m_offset, 12, m_scrollText, &paint, m_skin); drawBitmapText (154 + x, 12, m_scrollText, &paint, m_skin); } else @@ -199,7 +215,8 @@ void TextScroller::paintEvent (QPaintEvent *) { if (m_autoscroll) { - paint.drawText (154 + x + m_metrics->width (m_scrollText) + 15,12, m_scrollText); + paint.drawText (154 + x + m_offset * 2, 12, m_scrollText); + paint.drawText (154 + x + m_offset, 12, m_scrollText); paint.drawText (154 + x, 12, m_scrollText); } else |
