From c0ca7924818588a719e50ee4290dab30d950f0fd Mon Sep 17 00:00:00 2001 From: Thomas Frauendorfer Date: Wed, 2 Jul 2008 19:25:57 +0200 Subject: [PATCH] Fix problem with utf-8 charactes in playlist names If a playlist had utf-8 characters in it's name, promoe couldn't switch to it. Also move another function from XMMSHandler to class in lib --- README | 5 +---- lib/xcollection.cpp | 2 +- lib/xplayback.cpp | 9 +++++++++ lib/xplayback.h | 1 + src/XMMSHandler.cpp | 7 ------- src/XMMSHandler.h | 1 - src/mainwindow/timedisplay.cpp | 2 +- src/playlist/playlistview.cpp | 2 +- 8 files changed, 14 insertions(+), 15 deletions(-) diff --git a/README b/README index a2c4e8a..92ec636 100644 --- a/README +++ b/README @@ -2,10 +2,7 @@ Required dependencys: * QT4.2.x http://www.trolltech.no/ * XMMS2 http://xmms2.xmms.org/ * XMMS2 C++ bindings (make sure to have boost_signals when compiling xmms2) - - promoe should compile with DrK - - if you compile against xmms2-devel - make sure it isn't not older than 2008-05-15 - (and get the patch for bug 1973 if necessary) + - promoe works with 0.4DrK and 0.5DrL Optional dependencys: * Avahi http://www.avahi.org/ diff --git a/lib/xcollection.cpp b/lib/xcollection.cpp index 87f6c90..c15b6ae 100644 --- a/lib/xcollection.cpp +++ b/lib/xcollection.cpp @@ -185,7 +185,7 @@ bool XCollection::setActivePlaylist (QString name) { if (!m_client->isConnected ()) return false; - m_client->playlist ()->load (name.toStdString ()); + m_client->playlist ()->load (XClient::qToStd (name)); return true; } diff --git a/lib/xplayback.cpp b/lib/xplayback.cpp index 7c902e4..b523df0 100644 --- a/lib/xplayback.cpp +++ b/lib/xplayback.cpp @@ -96,6 +96,15 @@ XPlayback::next () m_client->playback ()->tickle (); } +void +XPlayback::setPos (int pos) +{ + if (!m_client->isConnected ()) return; + + m_client->playlist ()->setNext (pos) (); + m_client->playback ()->tickle () (); +} + /* * Seeking */ diff --git a/lib/xplayback.h b/lib/xplayback.h index 757b576..be0b89d 100644 --- a/lib/xplayback.h +++ b/lib/xplayback.h @@ -41,6 +41,7 @@ class XPlayback : public QObject { void stop (); void prev (); void next (); + void setPos (int pos); void seekMs (uint milliseconds); void seekMsRel (int milliseconds); diff --git a/src/XMMSHandler.cpp b/src/XMMSHandler.cpp index 3024b3b..2a259b0 100644 --- a/src/XMMSHandler.cpp +++ b/src/XMMSHandler.cpp @@ -104,13 +104,6 @@ XMMSHandler::requestMediainfo (uint id) Xmms::bind (&XMMSHandler::medialib_info, this)); } -void -XMMSHandler::requestTrackChange (int pos) -{ - m_client->playlist.setNext (pos) (); - m_client->playback.tickle () (); -} - bool XMMSHandler::playback_current_id (const unsigned int &id) { diff --git a/src/XMMSHandler.h b/src/XMMSHandler.h index cd87b4a..9477a07 100644 --- a/src/XMMSHandler.h +++ b/src/XMMSHandler.h @@ -42,7 +42,6 @@ class XMMSHandler : public XClient { bool volume_changed (const Xmms::Dict &levels); void requestMediainfo (uint id); - void requestTrackChange (int pos); void playlistAddURL (const QString& url); /* diff --git a/src/mainwindow/timedisplay.cpp b/src/mainwindow/timedisplay.cpp index 7c161e2..3d8a778 100644 --- a/src/mainwindow/timedisplay.cpp +++ b/src/mainwindow/timedisplay.cpp @@ -99,7 +99,7 @@ AbstractTimeDisplay::paintEvent (QPaintEvent *event) paint.drawPixmap (m_d3_x_pos, 0, m_pixmaps[sec/10]); paint.drawPixmap (m_d4_x_pos, 0, m_pixmaps[sec%10]); } else { - // Just give up and draw '-' if min would become 100 or bigger + // Just give up and draw '-' if min-variable would become 100 or bigger paint.drawPixmap (m_d1_x_pos, 0, m_pixmaps[11]); paint.drawPixmap (m_d2_x_pos, 0, m_pixmaps[11]); paint.drawPixmap (m_d3_x_pos, 0, m_pixmaps[11]); diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp index 93a26aa..7a59ad3 100644 --- a/src/playlist/playlistview.cpp +++ b/src/playlist/playlistview.cpp @@ -277,7 +277,7 @@ PlaylistView::mouseDoubleClickEvent (QMouseEvent *event) } XMMSHandler &xmmsh = XMMSHandler::getInstance (); - xmmsh.requestTrackChange (index.row()); + xmmsh.xplayback ()->setPos (index.row()); if (m_status == XMMS_PLAYBACK_STATUS_STOP || m_status == XMMS_PLAYBACK_STATUS_PAUSE) { xmmsh.xplayback ()->play ();