Added filedialog on eject button.
This commit is contained in:
parent
f64f4748a3
commit
277dfb619a
5 changed files with 70 additions and 1 deletions
|
@ -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()));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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)));
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 (); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue