aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-15 20:49:49 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-02-15 20:49:49 +0000
commitd4a82b8c2c4a5662ad437046e8b20199a655be40 (patch)
tree4e009fbec33679ad2f789efa5d41be3aa1f9c6dc
parent3a9f8bcb340ee9ab17f7c48d1637e025527aea84 (diff)
downloadqmmp-d4a82b8c2c4a5662ad437046e8b20199a655be40.tar.gz
qmmp-d4a82b8c2c4a5662ad437046e8b20199a655be40.tar.bz2
qmmp-d4a82b8c2c4a5662ad437046e8b20199a655be40.zip
added '--pl-next' and '--pl-prev' command line options
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9226 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp30
-rw-r--r--src/plugins/CommandLineOptions/PlayListOption/playlistoption.h2
-rw-r--r--src/qmmpui/playlistmanager.cpp5
-rw-r--r--src/qmmpui/playlistmanager.h4
4 files changed, 40 insertions, 1 deletions
diff --git a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
index b017b160a..2dc537284 100644
--- a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
+++ b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
@@ -34,7 +34,9 @@ void PlayListOption::registerOprions()
registerOption(PL_LIST, "--pl-list", tr("List all available playlists"));
registerOption(PL_DUMP, "--pl-dump", tr("Show playlist content"), QStringList() << "id");
registerOption(PL_PLAY, "--pl-play", tr("Play track <track> in playlist <id>"), QStringList() << "id" << "track");
- registerOption(PL_CLEAR, "--pl-clear", tr("Clear playlist"), QStringList() << "id");
+ registerOption(PL_CLEAR, "--pl-clear", tr("Clear playlist"), QStringList() << "id");
+ registerOption(PL_NEXT, "--pl-next", tr("Activate next playlist"));
+ registerOption(PL_PREV, "--pl-prev", tr("Activate previous playlist"));
registerOption(PL_REPEATE_TOGGLE, "--pl-repeat-toggle", tr("Toggle playlist repeat"));
registerOption(PL_SHUFFLE_TOGGLE, "--pl-shuffle-toggle", tr("Toggle playlist shuffle"));
registerOption(PL_STATE, "--pl-state", tr("Show playlist options"));
@@ -44,6 +46,8 @@ void PlayListOption::registerOprions()
setOptionFlags(PL_DUMP, HiddenFromHelp);
setOptionFlags(PL_PLAY, HiddenFromHelp);
setOptionFlags(PL_CLEAR, HiddenFromHelp);
+ setOptionFlags(PL_NEXT, HiddenFromHelp);
+ setOptionFlags(PL_PREV, HiddenFromHelp);
setOptionFlags(PL_REPEATE_TOGGLE, HiddenFromHelp);
setOptionFlags(PL_SHUFFLE_TOGGLE, HiddenFromHelp);
setOptionFlags(PL_STATE, HiddenFromHelp);
@@ -75,6 +79,8 @@ QString PlayListOption::executeCommand(int id, const QStringList &args)
<< helpString(PL_DUMP)
<< helpString(PL_PLAY)
<< helpString(PL_CLEAR)
+ << helpString(PL_NEXT)
+ << helpString(PL_PREV)
<< helpString(PL_REPEATE_TOGGLE)
<< helpString(PL_SHUFFLE_TOGGLE)
<< helpString(PL_STATE);
@@ -135,6 +141,28 @@ QString PlayListOption::executeCommand(int id, const QStringList &args)
player->play();
}
break;
+ case PL_NEXT:
+ {
+ bool playing = SoundCore::instance()->state() == Qmmp::Playing;
+ player->stop();
+ pl_manager->selectPlayList(pl_manager->currentPlayList());
+ pl_manager->selectNextPlayList();
+ pl_manager->activateSelectedPlayList();
+ if(playing)
+ player->play();
+ }
+ break;
+ case PL_PREV:
+ {
+ bool playing = SoundCore::instance()->state() == Qmmp::Playing;
+ player->stop();
+ pl_manager->selectPlayList(pl_manager->currentPlayList());
+ pl_manager->selectPreviousPlayList();
+ pl_manager->activateSelectedPlayList();
+ if(playing)
+ player->play();
+ }
+ break;
case PL_CLEAR:
{
int id = args.isEmpty() ? pl_manager->currentPlayListIndex() : args.at(0).toInt() - 1;
diff --git a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h
index 60cf7c0b1..26cc5e195 100644
--- a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h
+++ b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.h
@@ -48,6 +48,8 @@ private:
PL_LIST,
PL_DUMP,
PL_PLAY,
+ PL_NEXT,
+ PL_PREV,
PL_CLEAR,
PL_REPEATE_TOGGLE,
PL_SHUFFLE_TOGGLE,
diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp
index 6029cf0f9..48480a299 100644
--- a/src/qmmpui/playlistmanager.cpp
+++ b/src/qmmpui/playlistmanager.cpp
@@ -168,6 +168,11 @@ void PlayListManager::activatePlayList(int index)
activatePlayList(playListAt(index));
}
+void PlayListManager::activateSelectedPlayList()
+{
+ activatePlayList(selectedPlayList());
+}
+
PlayListModel *PlayListManager::createPlayList(const QString &name)
{
PlayListModel *model = new PlayListModel (name.isEmpty() ? tr("Playlist") : name, this);
diff --git a/src/qmmpui/playlistmanager.h b/src/qmmpui/playlistmanager.h
index 660d5ed14..7298b78a9 100644
--- a/src/qmmpui/playlistmanager.h
+++ b/src/qmmpui/playlistmanager.h
@@ -152,6 +152,10 @@ public slots:
*/
void activatePlayList(int index);
/*!
+ * Sets selected playlist as current.
+ */
+ void activateSelectedPlayList();
+ /*!
* Creates and selects new playlist with the given name \b name.
*/
PlayListModel *createPlayList(const QString &name = QString());