Sayonara Player
Loading...
Searching...
No Matches
AlbumModel.h
1/* AlbumModel.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/*
22 * AlbumModel.h
23 *
24 * Created on: Apr 26, 2011
25 * Author: Michael Lugmair (Lucio Carreras)
26 */
27
28#ifndef LIBRARYITEMMODELALBUMS_H_
29#define LIBRARYITEMMODELALBUMS_H_
30
31#include "Gui/Library/ItemModel.h"
32#include "Utils/Pimpl.h"
33
34namespace Tagging
35{
36 class TagReader;
37 class TagWriter;
38}
39
40namespace Library
41{
46 class AlbumModel :
47 public ItemModel
48 {
49 Q_OBJECT
50 PIMPL(AlbumModel)
51
52 public:
53 AlbumModel(const std::shared_ptr<Tagging::TagReader>& tagReader,
54 const std::shared_ptr<Tagging::TagWriter>& tagWriter,
55 AbstractLibrary* library, QObject* parent);
56 ~AlbumModel() override;
57
58 Qt::ItemFlags flags(const QModelIndex& index) const override;
59 QVariant data(const QModelIndex& index, int role) const override;
60 bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::DisplayRole) override;
61 int rowCount(const QModelIndex& parent) const override;
62
63 Cover::Location cover(const QModelIndexList& indexes) const override;
64 int searchableColumn() const override;
65 Id mapIndexToId(int index) const override;
66 QString searchableString(int row) const override;
67
68 protected:
69 const MetaDataList& selectedMetadata() const override;
70
71 private slots:
72 void albumChanged(int index);
73 };
74}
75
76#endif /* LIBRARYITEMMODELALBUMS_H_ */
Definition AbstractLibrary.h:41
Definition CoverLocation.h:39
The AlbumModel class.
Definition AlbumModel.h:48
const MetaDataList & selectedMetadata() const override
return the tracks which belong to the selections. If an album is selected for example,...
QString searchableString(int row) const override
here, the searchable string can even be refined. Maybe we just want to search within a substring indi...
int searchableColumn() const override
the index of the searchable column. This is the column where the text is searched for a certain searc...
Id mapIndexToId(int index) const override
return the current id for a given row
Cover::Location cover(const QModelIndexList &indexes) const override
return the cover for multiple rows. if rows.size() > 1, an invalid, default constructed cover locatio...
The ItemModel is intended to abstract the various views. It supports searching, selections and a libr...
Definition ItemModel.h:43
Definition MetaDataList.h:34
The GUI_TagEdit class.
Definition Engine.h:33