Added filedialog on eject button.

This commit is contained in:
Tobias Rundstrom 2006-02-27 21:36:40 -03:00
parent f64f4748a3
commit 277dfb619a
5 changed files with 70 additions and 1 deletions

View file

@ -3,6 +3,8 @@
#include "TitleBar.h"
#include "TextBar.h"
#include <QFileDialog>
MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent)
{
XMMSHandler *xmmsh = XMMSHandler::getInstance ();
@ -161,6 +163,7 @@ MainDisplay::SetupPushButtons (void)
m_eject = new Button (this, Skin::BTN_EJECT_0, Skin::BTN_EJECT_1);
m_eject->move(136, 89);
connect (m_eject, SIGNAL(clicked()), xmmsh, SLOT(fileOpen()));
}

View file

@ -101,7 +101,9 @@ PlaylistList::playlistChanged (QHash<QString,QString> h)
while (!m_items->isEmpty())
delete m_items->takeFirst();
xmmsh->requestPlaylistList ();
if (signal != XMMS_PLAYLIST_CHANGED_CLEAR) {
xmmsh->requestPlaylistList ();
}
}
break;
}

View file

@ -50,6 +50,7 @@ ShadedDisplay::ShadedDisplay (QWidget *parent) : SkinDisplay (parent)
m_eject = new Button (this);
m_eject->move(216, 4);
m_eject->resize (9, 7);
connect (m_eject, SIGNAL(clicked()), xmmsh, SLOT(fileOpen()));
connect (xmmsh, SIGNAL(playbackStatusChanged(uint)),
this, SLOT(setStatus(uint)));

View file

@ -5,6 +5,9 @@
#include <QErrorMessage>
#include <QHash>
#include <QFile>
#include <QFileDialog>
#include <QDir>
XMMSHandler *XMMSHandler::singleton = NULL;
@ -46,6 +49,61 @@ XMMSHandler::XMMSHandler (void) : sigc::trackable ()
r = m_xmmsc->broadcast_playback_status ();
r->connect (sigc::mem_fun (this, &XMMSHandler::playback_status));
r = m_xmmsc->broadcast_medialib_entry_changed ();
r->connect (sigc::mem_fun (this, &XMMSHandler::medialib_entry_changed));
}
void
XMMSHandler::fileOpen (void)
{
QStringList files =
QFileDialog::getOpenFileNames (NULL,
"Select files to play",
QDir::homePath(),
"Music (*.mp3 *.ogg *.flac *.wav *.mpc *.mp4)");
if (files.count() > 0) {
playlistClear ();
}
for (int i = 0; i < files.count(); i++) {
playlistAddURL ("file://" + files.value(i));
}
}
void
XMMSHandler::medialib_entry_changed (XMMSResultValue<uint> *res)
{
uint i;
res->getValue (&i);
m_currentid = i;
if (i > 0) {
XMMSResultDict *r = m_xmmsc->medialib_get_info (i);
r->connect (sigc::mem_fun (this, &XMMSHandler::medialib_info));
}
if (res->getClass() == XMMSC_RESULT_CLASS_DEFAULT) {
delete res;
}
}
void
XMMSHandler::playlistAddURL (QString s)
{
qDebug ("%s", s.toAscii ().constData ());
delete m_xmmsc->playlist_add (s.toAscii ().constData ());
}
void
XMMSHandler::playlistClear (void)
{
delete m_xmmsc->playlist_clear ();
}
void

View file

@ -20,15 +20,20 @@ class XMMSHandler : public QObject, public sigc::trackable {
void playlist_changed (XMMSResultDict *res);
void playback_status (XMMSResultValue<uint> *res);
void playlist_list (XMMSResultValueList<uint> *res);
void medialib_entry_changed (XMMSResultValue<uint> *res);
void requestMediainfo (uint id);
void requestPlaylistList (void);
void requestTrackChange (int pos);
void playlistAddURL (QString);
void playlistClear (void);
const XMMSClient *getXMMS () { return m_xmmsc; }
public slots:
void setPlaytime ();
void fileOpen (void);
void play () { delete m_xmmsc->playback_start (); }
void stop () { delete m_xmmsc->playback_stop (); }