Sayonara Player
Loading...
Searching...
No Matches
PlaylistDBInterface.h
1/* PlaylistDBInterface.h */
2
3/* Copyright (C) 2011-2024 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 PLAYLISTDBINTERFACE_H
22#define PLAYLISTDBINTERFACE_H
23
24#include "Utils/Pimpl.h"
25#include "Utils/globals.h"
26
27class QString;
28class MetaDataList;
29class CustomPlaylist;
30
31namespace Playlist
32{
33 class Playlist;
35 {
36 PIMPL(DBInterface)
37
38 public:
39 explicit DBInterface(const QString& name);
40 virtual ~DBInterface();
41
42 [[nodiscard]] int id() const;
43 void setId(int databaseId);
44
45 [[nodiscard]] QString name() const;
46 void setName(const QString& name);
47
48 [[nodiscard]] bool isTemporary() const;
49 void setTemporary(bool b);
50
51 [[nodiscard]] bool isLocked() const;
52 virtual void setLocked(bool b);
53
54 bool lock();
55 bool unlock();
56
57 Util::SaveAsAnswer save();
58 Util::SaveAsAnswer saveAs(const QString& newName);
59 Util::SaveAsAnswer rename(const QString& newName);
60 bool deletePlaylist();
61
62 virtual void setChanged(bool b) = 0;
63 [[nodiscard]] virtual bool wasChanged() const = 0;
64
65 [[nodiscard]] virtual const MetaDataList& tracks() const = 0;
66 };
67
68 QString requestNewDatabaseName(QString prefix);
69 void reloadFromDatabase(Playlist& playlist);
70}
71
72#endif // PLAYLISTDBINTERFACE_H
Definition CustomPlaylist.h:30
Definition MetaDataList.h:34
Definition PlaylistDBInterface.h:35
Definition Playlist.h:44