1 /* PlaylistChooser.h */ 2 3 /* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras) 4 * 5 * This file is part of sayonara player 6 * 7 * This program is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 17 * You should have received a copy of the GNU General Public License 18 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 #ifndef PLAYLISTCHOOSER_H_ 22 #define PLAYLISTCHOOSER_H_ 23 24 #include "Utils/Playlist/CustomPlaylistFwd.h" 25 #include "Utils/Pimpl.h" 26 #include "Utils/globals.h" 27 #include <QObject> 28 29 class PlaylistCreator; 30 31 namespace Playlist 32 { 33 /** 34 * @brief The Chooser class is used to select playlists out of 35 * all saved playlists 36 * @ingroup Playlist 37 */ 38 class Chooser : 39 public QObject 40 { 41 Q_OBJECT 42 PIMPL(Chooser) 43 44 signals: 45 void sigPlaylistsChanged(); 46 47 public: 48 Chooser(PlaylistCreator* playlistCreator, QObject* parent); 49 ~Chooser(); 50 51 void loadSinglePlaylist(int id); 52 int findPlaylist(const QString& name) const; 53 54 const CustomPlaylistSkeletons& playlists(); 55 56 Util::SaveAsAnswer renamePlaylist(int id, const QString& newName); 57 bool deletePlaylist(int id); 58 59 private slots: 60 void playlistsChanged(); 61 62 void playlistDeleted(int id); 63 void playlistAdded(int id, const QString& name); 64 void playlistRenamed(int id, const QString& old_name, const QString& new_name); 65 }; 66 } 67 68 #endif /* PLAYLISTS_H_ */ 69