Miam-Player  0.8.0
A nice music player
miamitemmodel.h
Go to the documentation of this file.
1 #ifndef MIAMITEMMODEL_H
2 #define MIAMITEMMODEL_H
3 
4 #include <QStandardItemModel>
5 #include <QSortFilterProxyModel>
6 #include "separatoritem.h"
7 #include "trackitem.h"
8 
9 #include "miamlibrary_global.hpp"
10 
17 class MIAMLIBRARY_LIBRARY MiamItemModel : public QStandardItemModel
18 {
19  Q_OBJECT
20 protected:
22  QHash<uint, QStandardItem*> _hash;
23 
25  QHash<QString, SeparatorItem*> _letters;
26 
28  QMultiHash<SeparatorItem*, QModelIndex> _topLevelItems;
29 
30  QHash<QString, TrackItem*> _tracks;
31 
32 public:
33  explicit MiamItemModel(QObject *parent = nullptr);
34 
35  virtual ~MiamItemModel();
36 
37  virtual QChar currentLetter(const QModelIndex &index) const = 0;
38 
39  inline QStandardItem* letterItem(const QString &letter) const { return _letters.value(letter); }
40 
41  virtual void load(const QString & = QString::null) = 0;
42 
43  virtual QSortFilterProxyModel* proxy() const = 0;
44 
45 protected:
46  void deleteCache();
47 
48  SeparatorItem *insertSeparator(const QStandardItem *node);
49 };
50 
51 #endif // MIAMITEMMODEL_H
The SeparatorItem class.
Definition: separatoritem.h:12
QHash< QString, TrackItem * > _tracks
Definition: miamitemmodel.h:30
QStandardItem * letterItem(const QString &letter) const
Definition: miamitemmodel.h:39
QHash< uint, QStandardItem * > _hash
Definition: miamitemmodel.h:22
QHash< QString, SeparatorItem * > _letters
Definition: miamitemmodel.h:25
#define MIAMLIBRARY_LIBRARY
Definition: miamlibrary_global.hpp:8
The MiamItemModel class.
Definition: miamitemmodel.h:17
QMultiHash< SeparatorItem *, QModelIndex > _topLevelItems
Definition: miamitemmodel.h:28