12
12
/** Pure virtual (abstract) class that provides an interface for data models which
13
13
display track lists. */
18
16
TrackModel(QSqlDatabase db,
19
17
QString settingsNamespace)
21
19
m_settingsNamespace(settingsNamespace) {
21
virtual ~TrackModel() {}
27
24
TRACKMODELCAPS_NONE = 0x0000,
28
25
TRACKMODELCAPS_REORDER = 0x0001,
29
26
TRACKMODELCAPS_RECEIVEDROPS = 0x0002,
32
29
TRACKMODELCAPS_ADDTOAUTODJ = 0x0010,
33
30
TRACKMODELCAPS_LOCKED = 0x0020,
34
31
TRACKMODELCAPS_RELOADMETADATA = 0x0040,
38
34
typedef int CapabilitiesFlags; /** Enables us to do ORing */
54
50
bool isTrackModel() { return true;}
55
51
virtual void search(const QString& searchText) = 0;
56
virtual const QString currentSearch() = 0;
52
virtual const QString currentSearch() const = 0;
57
53
virtual bool isColumnInternal(int column) = 0;
58
/** if no header state exists, we may hide some columns so that the user can reactivate them **/
54
// if no header state exists, we may hide some columns so that the user can
59
56
virtual bool isColumnHiddenByDefault(int column) = 0;
60
57
virtual const QList<int>& showableColumns() const { return m_emptyColumns; }
61
58
virtual const QList<int>& searchColumns() const { return m_emptyColumns; }
62
virtual void removeTrack(const QModelIndex& index) = 0;
63
virtual void removeTracks(const QModelIndexList& indices) = 0;
64
virtual bool addTrack(const QModelIndex& index, QString location) = 0;
59
virtual void removeTrack(const QModelIndex& index) {
62
virtual void removeTracks(const QModelIndexList& indices) {
65
virtual bool addTrack(const QModelIndex& index, QString location) {
65
70
virtual void moveTrack(const QModelIndex& sourceIndex,
66
const QModelIndex& destIndex) = 0;
67
virtual QItemDelegate* delegateForColumn(const int i) = 0;
68
virtual ~TrackModel() {}
69
virtual TrackModel::CapabilitiesFlags getCapabilities() const { return TRACKMODELCAPS_NONE; }
71
const QModelIndex& destIndex) {
72
Q_UNUSED(sourceIndex);
75
virtual QItemDelegate* delegateForColumn(const int i) {
79
virtual TrackModel::CapabilitiesFlags getCapabilities() const {
80
return TRACKMODELCAPS_NONE;
71
82
virtual QString getModelSetting(QString name) {
72
83
SettingsDAO settings(m_db);
73
84
QString key = m_settingsNamespace + "." + name;