diff options
Diffstat (limited to 'src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp')
| -rw-r--r-- | src/plugins/CommandLineOptions/PlayListOption/playlistoption.cpp | 53 |
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) |
