Doubleclick something in the playlist makes it start playing if status is stopped

This commit is contained in:
Tobias Rundstrom 2006-02-27 22:40:40 -03:00
parent 479aecb564
commit 09494985d1
3 changed files with 24 additions and 0 deletions

View file

@ -53,6 +53,7 @@ PlaylistList::PlaylistList (QWidget *parent) : QWidget (parent)
m_selected = new QList<uint>; m_selected = new QList<uint>;
m_itemmap = new QHash<uint, PlaylistItem *>; m_itemmap = new QHash<uint, PlaylistItem *>;
m_offset = 0; m_offset = 0;
m_status = XMMS_PLAYBACK_STATUS_STOP;
connect (xmmsh, SIGNAL(playlistList(QList<uint>)), connect (xmmsh, SIGNAL(playlistList(QList<uint>)),
this, SLOT(playlistList(QList<uint>))); this, SLOT(playlistList(QList<uint>)));
@ -65,6 +66,15 @@ PlaylistList::PlaylistList (QWidget *parent) : QWidget (parent)
connect (xmmsh, SIGNAL(playlistChanged(QHash<QString, QString>)), connect (xmmsh, SIGNAL(playlistChanged(QHash<QString, QString>)),
this, SLOT(playlistChanged(QHash<QString, QString>))); this, SLOT(playlistChanged(QHash<QString, QString>)));
connect (xmmsh, SIGNAL(playbackStatusChanged(uint)),
this, SLOT(setStatus(uint)));
}
void
PlaylistList::setStatus (uint s)
{
m_status = s;
} }
void void
@ -174,6 +184,11 @@ PlaylistList::mouseDoubleClickEvent (QMouseEvent *event)
} }
xmmsh->requestTrackChange (m_items->indexOf(it)); xmmsh->requestTrackChange (m_items->indexOf(it));
if (m_status == XMMS_PLAYBACK_STATUS_STOP ||
m_status == XMMS_PLAYBACK_STATUS_PAUSE)
{
xmmsh->play ();
}
} }
void void

View file

@ -24,6 +24,7 @@ class PlaylistList : public QWidget {
void mediainfoChanged (uint, QHash<QString,QString>); void mediainfoChanged (uint, QHash<QString,QString>);
void playlistChanged (QHash<QString,QString>); void playlistChanged (QHash<QString,QString>);
void currentID (uint); void currentID (uint);
void setStatus (uint);
private: private:
void paintEvent (QPaintEvent *event); void paintEvent (QPaintEvent *event);
@ -45,6 +46,7 @@ class PlaylistList : public QWidget {
int getFontH (void); int getFontH (void);
int m_offset; int m_offset;
int m_active; int m_active;
uint m_status;
}; };
class PlaylistItem { class PlaylistItem {

View file

@ -47,6 +47,9 @@ XMMSHandler::XMMSHandler (void) : sigc::trackable ()
r = m_xmmsc->broadcast_playback_current_id (); r = m_xmmsc->broadcast_playback_current_id ();
r->connect (sigc::mem_fun (this, &XMMSHandler::playback_current_id)); r->connect (sigc::mem_fun (this, &XMMSHandler::playback_current_id));
r = m_xmmsc->playback_status ();
r->connect (sigc::mem_fun (this, &XMMSHandler::playback_status));
r = m_xmmsc->broadcast_playback_status (); r = m_xmmsc->broadcast_playback_status ();
r->connect (sigc::mem_fun (this, &XMMSHandler::playback_status)); r->connect (sigc::mem_fun (this, &XMMSHandler::playback_status));
@ -151,6 +154,10 @@ XMMSHandler::playback_status (XMMSResultValue<uint> *res)
res->getValue (&status); res->getValue (&status);
emit playbackStatusChanged (status); emit playbackStatusChanged (status);
if (res->getClass() == XMMSC_RESULT_CLASS_DEFAULT) {
delete res;
}
} }
void void