aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp')
-rw-r--r--src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp53
1 files changed, 43 insertions, 10 deletions
diff --git a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
index 49324b98a..802fbc0a2 100644
--- a/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
+++ b/src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp
@@ -24,22 +24,25 @@
#include <qmmp/soundcore.h>
#include <qmmpui/playlistmanager.h>
#include <qmmpui/metadataformatter.h>
+#include <qmmpui/mediaplayer.h>
#include "playlistoption.h"
bool PlayListOption::identify(const QString & str) const
{
- return str == QString("--pl-list") ||
- str == QString("--pl-dump") ||
- str == QString("--pl-clear");
+ return str == QString("--pl-help") ||
+ str == QString("--pl-list") ||
+ str == QString("--pl-dump") ||
+ str == QString("--pl-clear") ||
+ str == QString("--pl-repeat-toggle") ||
+ str == QString("--pl-shuffle-toggle") ||
+ str == QString("--pl-state");
}
const QString PlayListOption::helpString() const
{
- return QString(
- "--pl-list " + tr("List all available playlists")+"\n"+
- "--pl-dump <id> " + tr("Show playlist content")+"\n" +
- "--pl-clear <id> " + tr("Clear playlist")+"\n"
- );
+ return QString(
+ "--pl-help " + tr("Show playlist manipulation commands")+"\n"
+ );
}
QString PlayListOption::executeCommand(const QString& opt_str, const QStringList &args)
@@ -47,8 +50,18 @@ QString PlayListOption::executeCommand(const QString& opt_str, const QStringList
Q_UNUSED(args);
QString out;
PlayListManager *pl_manager = PlayListManager::instance();
+ MediaPlayer *player = MediaPlayer::instance();
- if(opt_str == "--pl-list")
+ if(opt_str == "--pl-help")
+ {
+ out = "--pl-list " + tr("List all available playlists")+"\n"+
+ "--pl-dump <id> " + tr("Show playlist content")+"\n" +
+ "--pl-clear <id> " + tr("Clear playlist")+"\n"+
+ "--pl-repeat-toggle " + tr("Toggle playlist repeat")+"\n"+
+ "--pl-shuffle-toggle " + tr("Toggle playlist shuffle")+"\n"+
+ "--pl-state " + tr("Show playlist options")+"\n";
+ }
+ else if(opt_str == "--pl-list")
{
QStringList names = pl_manager->playListNames();
for(int i = 0; i < names.count(); ++i)
@@ -79,9 +92,24 @@ QString PlayListOption::executeCommand(const QString& opt_str, const QStringList
int id = args.isEmpty() ? pl_manager->currentPlayListIndex() : args.at(0).toInt() - 1;
PlayListModel *model = pl_manager->playListAt(id);
if(!model)
- out = tr("Invalid playlist ID") + "\n";
+ return tr("Invalid playlist ID") + "\n";
model->clear();
}
+ else if(opt_str == "--pl-repeat-toggle")
+ {
+ player->setRepeatable(!player->isRepeatable());
+ }
+ else if(opt_str == "--pl-shuffle-toggle")
+ {
+ pl_manager->setShuffle(!pl_manager->isShuffle());
+ }
+ else if(opt_str == "--pl-state")
+ {
+ out += "SHUFFLE: " + boolToText(pl_manager->isShuffle()) + "\n";
+ out += "REPEAT PLAYLIST: " + boolToText(pl_manager->isRepeatableList()) + "\n";
+ out += "REPEAT TRACK: " + boolToText(player->isRepeatable()) + "\n";
+ out += "NO PLAYLIST ADVANCE: " + boolToText(player->isNoPlaylistAdvance()) + "\n";
+ }
return out;
}
@@ -98,4 +126,9 @@ QTranslator *PlayListOption::createTranslator(QObject *parent)
return translator;
}
+QString PlayListOption::boolToText(bool enabled)
+{
+ return QString(enabled ? "[+]" : "[-]");
+}
+
Q_EXPORT_PLUGIN2(playlistoption, PlayListOption)