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 "TitleBar.h"
|
||||||
#include "TextBar.h"
|
#include "TextBar.h"
|
||||||
|
|
||||||
|
#include <QFileDialog>
|
||||||
|
|
||||||
MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent)
|
MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent)
|
||||||
{
|
{
|
||||||
XMMSHandler *xmmsh = XMMSHandler::getInstance ();
|
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 = new Button (this, Skin::BTN_EJECT_0, Skin::BTN_EJECT_1);
|
||||||
m_eject->move(136, 89);
|
m_eject->move(136, 89);
|
||||||
|
connect (m_eject, SIGNAL(clicked()), xmmsh, SLOT(fileOpen()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -101,8 +101,10 @@ PlaylistList::playlistChanged (QHash<QString,QString> h)
|
||||||
while (!m_items->isEmpty())
|
while (!m_items->isEmpty())
|
||||||
delete m_items->takeFirst();
|
delete m_items->takeFirst();
|
||||||
|
|
||||||
|
if (signal != XMMS_PLAYLIST_CHANGED_CLEAR) {
|
||||||
xmmsh->requestPlaylistList ();
|
xmmsh->requestPlaylistList ();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ ShadedDisplay::ShadedDisplay (QWidget *parent) : SkinDisplay (parent)
|
||||||
m_eject = new Button (this);
|
m_eject = new Button (this);
|
||||||
m_eject->move(216, 4);
|
m_eject->move(216, 4);
|
||||||
m_eject->resize (9, 7);
|
m_eject->resize (9, 7);
|
||||||
|
connect (m_eject, SIGNAL(clicked()), xmmsh, SLOT(fileOpen()));
|
||||||
|
|
||||||
connect (xmmsh, SIGNAL(playbackStatusChanged(uint)),
|
connect (xmmsh, SIGNAL(playbackStatusChanged(uint)),
|
||||||
this, SLOT(setStatus(uint)));
|
this, SLOT(setStatus(uint)));
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
|
|
||||||
#include <QErrorMessage>
|
#include <QErrorMessage>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QFileDialog>
|
||||||
|
#include <QDir>
|
||||||
|
|
||||||
XMMSHandler *XMMSHandler::singleton = NULL;
|
XMMSHandler *XMMSHandler::singleton = NULL;
|
||||||
|
|
||||||
|
|
@ -46,6 +49,61 @@ XMMSHandler::XMMSHandler (void) : sigc::trackable ()
|
||||||
|
|
||||||
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));
|
||||||
|
|
||||||
|
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
|
void
|
||||||
|
|
|
||||||
|
|
@ -20,15 +20,20 @@ class XMMSHandler : public QObject, public sigc::trackable {
|
||||||
void playlist_changed (XMMSResultDict *res);
|
void playlist_changed (XMMSResultDict *res);
|
||||||
void playback_status (XMMSResultValue<uint> *res);
|
void playback_status (XMMSResultValue<uint> *res);
|
||||||
void playlist_list (XMMSResultValueList<uint> *res);
|
void playlist_list (XMMSResultValueList<uint> *res);
|
||||||
|
void medialib_entry_changed (XMMSResultValue<uint> *res);
|
||||||
|
|
||||||
void requestMediainfo (uint id);
|
void requestMediainfo (uint id);
|
||||||
void requestPlaylistList (void);
|
void requestPlaylistList (void);
|
||||||
void requestTrackChange (int pos);
|
void requestTrackChange (int pos);
|
||||||
|
|
||||||
|
void playlistAddURL (QString);
|
||||||
|
void playlistClear (void);
|
||||||
|
|
||||||
const XMMSClient *getXMMS () { return m_xmmsc; }
|
const XMMSClient *getXMMS () { return m_xmmsc; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setPlaytime ();
|
void setPlaytime ();
|
||||||
|
void fileOpen (void);
|
||||||
|
|
||||||
void play () { delete m_xmmsc->playback_start (); }
|
void play () { delete m_xmmsc->playback_start (); }
|
||||||
void stop () { delete m_xmmsc->playback_stop (); }
|
void stop () { delete m_xmmsc->playback_stop (); }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue