diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-03-04 11:40:07 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2014-03-04 11:40:07 +0000 |
| commit | 1484a13bf2f2398236d51f33bb8311db9b9920c5 (patch) | |
| tree | 5644efc460ef00790b83e52148e49a1cd32adc30 /src/qmmpui | |
| parent | c3972ebea91d079c1effd76788143011841d9e46 (diff) | |
| download | qmmp-1484a13bf2f2398236d51f33bb8311db9b9920c5.tar.gz qmmp-1484a13bf2f2398236d51f33bb8311db9b9920c5.tar.bz2 qmmp-1484a13bf2f2398236d51f33bb8311db9b9920c5.zip | |
fixed 'eject' button function
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4118 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui')
| -rw-r--r-- | src/qmmpui/uihelper.cpp | 43 | ||||
| -rw-r--r-- | src/qmmpui/uihelper.h | 12 |
2 files changed, 52 insertions, 3 deletions
diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp index be7ce90bf..e7eb3392a 100644 --- a/src/qmmpui/uihelper.cpp +++ b/src/qmmpui/uihelper.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2013 by Ilya Kotov * + * Copyright (C) 2008-2014 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -23,6 +23,7 @@ #include <QWidget> #include <QAction> #include <QSettings> +#include <qmmp/soundcore.h> #include <qmmp/metadatamanager.h> #include <qmmpui/filedialog.h> #include <qmmpui/playlistparser.h> @@ -32,6 +33,7 @@ #include "jumptotrackdialog_p.h" #include "aboutdialog_p.h" #include "addurldialog_p.h" +#include "mediaplayer.h" #include "uihelper.h" UiHelper *UiHelper::m_instance = 0; @@ -43,6 +45,7 @@ UiHelper::UiHelper(QObject *parent) m_toolsMenu = 0; m_playlistMenu = 0; m_jumpDialog = 0; + m_model = 0; General::create(parent); QSettings settings(Qmmp::configFile(), QSettings::IniFormat); m_lastDir = settings.value("General/last_dir", QDir::homePath()).toString(); //last directory @@ -139,6 +142,19 @@ void UiHelper::addFile(QWidget *parent, PlayListModel *model) tr("Select one or more files to open"), filters.join(";;")); } +void UiHelper::playFiles(QWidget *parent, PlayListModel *model) +{ + QStringList filters; + filters << tr("All Supported Bitstreams")+" (" + + MetaDataManager::instance()->nameFilters().join (" ") +")"; + filters << MetaDataManager::instance()->filters(); + m_model = model; + FileDialog::popup(parent, FileDialog::AddDirsFiles, &m_lastDir, + this, SLOT(playSelectedFiles(const QStringList &)), + tr("Select one or more files to play"), filters.join(";;")); + +} + void UiHelper::addDirectory(QWidget *parent, PlayListModel *model) { FileDialog::popup(parent, FileDialog::AddDirs, &m_lastDir, @@ -161,7 +177,7 @@ void UiHelper::loadPlayList(QWidget *parent, PlayListModel *model) QString mask = tr("Playlist Files") + " (" + PlayListParser::nameFilters().join(" ") + ")"; //TODO use nonmodal dialog and multiplier playlists - QString f_name = FileDialog::getOpenFileName(parent ,tr("Open Playlist"), m_lastDir, mask); + QString f_name = FileDialog::getOpenFileName(parent, tr("Open Playlist"), m_lastDir, mask); if (!f_name.isEmpty()) { model->clear(); @@ -264,3 +280,26 @@ void UiHelper::removeAction(QObject *action) { removeAction((QAction *) action); } + +void UiHelper::playSelectedFiles(const QStringList &files) +{ + if(files.isEmpty()) + return; + if(!PlayListManager::instance()->playLists().contains(m_model)) + return; + m_model->clear(); + PlayListManager::instance()->activatePlayList(m_model); + connect(m_model, SIGNAL(trackAdded(PlayListTrack*)), MediaPlayer::instance(), SLOT(play())); + connect(m_model, SIGNAL(loaderFinished()), SLOT(disconnectPl())); + m_model->add(files); +} + +void UiHelper::disconnectPl() +{ + PlayListModel *model = qobject_cast<PlayListModel*>(sender()); + if(model) + { + disconnect(model, SIGNAL(trackAdded(PlayListTrack*)), MediaPlayer::instance(), SLOT(play())); + disconnect(model, SIGNAL(loaderFinished()), this, SLOT(disconnectPl())); + } +} diff --git a/src/qmmpui/uihelper.h b/src/qmmpui/uihelper.h index f3fc2c2a9..bec1f4a10 100644 --- a/src/qmmpui/uihelper.h +++ b/src/qmmpui/uihelper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2012 by Ilya Kotov * + * Copyright (C) 2008-2014 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -95,6 +95,13 @@ public: void addFile(QWidget *parent = qApp->activeWindow(), PlayListModel *model = PlayListManager::instance()->selectedPlayList()); /*! + * Opens 'Play Files' dialog + * @param parent Parent widget + * @param model Destination playlist model + */ + void playFiles(QWidget *parent = qApp->activeWindow(), + PlayListModel *model = PlayListManager::instance()->selectedPlayList()); + /*! * Opens 'Add Directory' dialog * @param parent Parent widget * @param model Destination playlist model @@ -167,6 +174,8 @@ signals: private slots: void removeAction(QObject *action); + void playSelectedFiles(const QStringList &files); + void disconnectPl(); private: QMap <GeneralFactory*, General*> m_generals; @@ -176,6 +185,7 @@ private: QPointer<QMenu> m_playlistMenu; QString m_lastDir; QPointer <JumpToTrackDialog> m_jumpDialog; + PlayListModel *m_model; static UiHelper* m_instance; }; |
