![]() |
Mixxx
|
00001 #ifndef PLAYLISTTABLEMODEL_H 00002 #define PLAYLISTTABLEMODEL_H 00003 00004 #include <QtSql> 00005 #include <QItemDelegate> 00006 #include <QtCore> 00007 00008 #include "library/basesqltablemodel.h" 00009 #include "library/dao/playlistdao.h" 00010 #include "library/dao/trackdao.h" 00011 #include "library/librarytablemodel.h" 00012 00013 class TrackCollection; 00014 00015 class PlaylistTableModel : public BaseSqlTableModel { 00016 Q_OBJECT 00017 public: 00018 PlaylistTableModel(QObject* parent, TrackCollection* pTrackCollection, 00019 QString settingsNamespace); 00020 virtual ~PlaylistTableModel(); 00021 void setPlaylist(int playlistId); 00022 int getPlaylist() const { 00023 return m_iPlaylistId; 00024 } 00025 virtual TrackPointer getTrack(const QModelIndex& index) const; 00026 00027 virtual void search(const QString& searchText); 00028 virtual bool isColumnInternal(int column); 00029 virtual bool isColumnHiddenByDefault(int column); 00030 virtual void removeTrack(const QModelIndex& index); 00031 virtual void removeTracks(const QModelIndexList& indices); 00032 virtual bool addTrack(const QModelIndex& index, QString location); 00033 virtual void moveTrack(const QModelIndex& sourceIndex, const QModelIndex& destIndex); 00034 virtual void shuffleTracks(const QModelIndex& currentIndex); 00035 00036 QItemDelegate* delegateForColumn(const int i); 00037 TrackModel::CapabilitiesFlags getCapabilities() const; 00038 00039 private slots: 00040 void slotSearch(const QString& searchText); 00041 00042 signals: 00043 void doSearch(const QString& searchText); 00044 00045 private: 00046 TrackCollection* m_pTrackCollection; 00047 PlaylistDAO& m_playlistDao; 00048 TrackDAO& m_trackDao; 00049 int m_iPlaylistId; 00050 }; 00051 00052 #endif