Add save all playlists action
This commit is contained in:
committed by
Jonas Kvinge
parent
9449bfa414
commit
962b52bd5b
@@ -132,7 +132,7 @@ PlaylistContainer::~PlaylistContainer() { delete ui_; }
|
||||
|
||||
PlaylistView *PlaylistContainer::view() const { return ui_->playlist; }
|
||||
|
||||
void PlaylistContainer::SetActions(QAction *new_playlist, QAction *load_playlist, QAction *save_playlist, QAction *clear_playlist, QAction *next_playlist, QAction *previous_playlist) {
|
||||
void PlaylistContainer::SetActions(QAction *new_playlist, QAction *load_playlist, QAction *save_playlist, QAction *clear_playlist, QAction *next_playlist, QAction *previous_playlist, QAction *save_all_playlists) {
|
||||
|
||||
ui_->create_new->setDefaultAction(new_playlist);
|
||||
ui_->load->setDefaultAction(load_playlist);
|
||||
@@ -148,6 +148,7 @@ void PlaylistContainer::SetActions(QAction *new_playlist, QAction *load_playlist
|
||||
QObject::connect(next_playlist, &QAction::triggered, this, &PlaylistContainer::GoToNextPlaylistTab);
|
||||
QObject::connect(previous_playlist, &QAction::triggered, this, &PlaylistContainer::GoToPreviousPlaylistTab);
|
||||
QObject::connect(clear_playlist, &QAction::triggered, this, &PlaylistContainer::ClearPlaylist);
|
||||
QObject::connect(save_all_playlists, &QAction::triggered, manager_, &PlaylistManager::SaveAllPlaylists);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ class PlaylistContainer : public QWidget {
|
||||
|
||||
static const char *kSettingsGroup;
|
||||
|
||||
void SetActions(QAction *new_playlist, QAction *load_playlist, QAction *save_playlist, QAction *clear_playlist, QAction *next_playlist, QAction *previous_playlist);
|
||||
void SetActions(QAction *new_playlist, QAction *load_playlist, QAction *save_playlist, QAction *clear_playlist, QAction *next_playlist, QAction *previous_playlist, QAction *save_all_playlists);
|
||||
void SetManager(PlaylistManager *manager);
|
||||
void ReloadSettings();
|
||||
|
||||
|
||||
@@ -650,3 +650,15 @@ void PlaylistManager::RateCurrentSong(const float rating) {
|
||||
void PlaylistManager::RateCurrentSong2(const int rating) {
|
||||
RateCurrentSong(static_cast<float>(rating) / 5.0F);
|
||||
}
|
||||
|
||||
void PlaylistManager::SaveAllPlaylists() {
|
||||
|
||||
const QString path = QFileDialog::getExistingDirectory(nullptr, tr("Select directory for the playlists"), QDir::homePath(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
|
||||
|
||||
for (QMap<int, Data>::const_iterator it = playlists_.constBegin(); it != playlists_.constEnd(); ++it) {
|
||||
const Data &data = *it;
|
||||
const QString filepath = path + "/" + data.name + ".m3u";
|
||||
Save(it.key(), filepath, Playlist::Path_Absolute);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -222,6 +222,8 @@ class PlaylistManager : public PlaylistManagerInterface {
|
||||
// Rate current song using 0 - 5 scale.
|
||||
void RateCurrentSong2(const int rating) override;
|
||||
|
||||
void SaveAllPlaylists();
|
||||
|
||||
private slots:
|
||||
void SetActivePlaying() override;
|
||||
void SetActivePaused() override;
|
||||
|
||||
Reference in New Issue
Block a user