Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/library/browse/browsetablemodel.h

Go to the documentation of this file.
00001 #ifndef BROWSETABLEMODEL_H
00002 #define BROWSETABLEMODEL_H
00003 
00004 #include <QStandardItemModel>
00005 #include <QMimeData>
00006 
00007 #include "library/trackmodel.h"
00008 #include "library/dao/trackdao.h"
00009 #include "library/trackcollection.h"
00010 #include "recording/recordingmanager.h"
00011 
00012 //constants
00013 const int COLUMN_FILENAME = 0;
00014 const int COLUMN_ARTIST = 1;
00015 const int COLUMN_TITLE = 2;
00016 const int COLUMN_ALBUM = 3;
00017 const int COLUMN_TRACK_NUMBER = 4;
00018 const int COLUMN_YEAR = 5;
00019 const int COLUMN_GENRE = 6;
00020 const int COLUMN_COMMENT = 7;
00021 const int COLUMN_DURATION = 8;
00022 const int COLUMN_BPM = 9;
00023 const int COLUMN_KEY = 10;
00024 const int COLUMN_TYPE = 11;
00025 const int COLUMN_BITRATE = 12;
00026 const int COLUMN_LOCATION = 13;
00027 
00028 /*
00029  * The BrowseTable models displays tracks
00030  * of given directory on the HDD.
00031  * Usage: Recording and Browse feature.
00032  */
00033 class BrowseTableModel : public QStandardItemModel, public virtual TrackModel {
00034     Q_OBJECT
00035 
00036   public:
00037     BrowseTableModel(QObject* parent, TrackCollection* pTrackCollection, RecordingManager* pRec);
00038     virtual ~BrowseTableModel();
00039     void setPath(QString absPath);
00040     //reimplemented from TrackModel class
00041     virtual TrackPointer getTrack(const QModelIndex& index) const;
00042     virtual QString getTrackLocation(const QModelIndex& index) const;
00043     virtual int getTrackId(const QModelIndex& index) const;
00044     TrackModel::CapabilitiesFlags getCapabilities() const;
00045     virtual const QLinkedList<int> getTrackRows(int trackId) const;
00046                 virtual void search(const QString& searchText);
00047                 virtual void removeTrack(const QModelIndex& index);
00048     virtual void removeTracks(const QModelIndexList& indices);
00049     virtual bool addTrack(const QModelIndex& index, QString location);
00050     virtual QMimeData* mimeData(const QModelIndexList &indexes) const;
00051     virtual const QString currentSearch() const;
00052     virtual bool isColumnInternal(int);
00053     virtual void moveTrack(const QModelIndex&, const QModelIndex&);
00054     virtual QItemDelegate* delegateForColumn(const int);
00055     virtual bool isColumnHiddenByDefault(int column);
00056     virtual const QList<int>& searchColumns() const;
00057     virtual Qt::ItemFlags flags(const QModelIndex &index) const;
00058     virtual bool setData(const QModelIndex& index, const QVariant& value, int role=Qt::EditRole);
00059 
00060   public slots:
00061     void slotClear(BrowseTableModel*);
00062     void slotInsert(const QList< QList<QStandardItem*> >&, BrowseTableModel*);
00063 
00064   private:
00065     void removeTracks(QStringList trackLocations);
00066 
00067     void addSearchColumn(int index);
00068     bool isTrackInUse(QString& file) const;
00069     QList<int> m_searchColumns;
00070     QString m_current_path;
00071     TrackCollection* m_pTrackCollection;
00072     RecordingManager* m_pRecordingManager;
00073 };
00074 
00075 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines