![]() |
Mixxx
|
00001 // preparefeature.h 00002 // Created 8/23/2009 by RJ Ryan (rryan@mit.edu) 00003 // Forked 11/11/2009 by Albert Santoni (alberts@mixxx.org) 00004 00005 #ifndef TRIAGEFEATURE_H 00006 #define TRIAGEFEATURE_H 00007 00008 #include <QStringListModel> 00009 #include "library/libraryfeature.h" 00010 #include "configobject.h" 00011 #include "treeitemmodel.h" 00012 00013 class AnalyserQueue; 00014 class LibraryTableModel; 00015 class TrackCollection; 00016 00017 class PrepareFeature : public LibraryFeature { 00018 Q_OBJECT 00019 public: 00020 PrepareFeature(QObject* parent, 00021 ConfigObject<ConfigValue>* pConfig, 00022 TrackCollection* pTrackCollection); 00023 virtual ~PrepareFeature(); 00024 00025 QVariant title(); 00026 QIcon getIcon(); 00027 00028 bool dropAccept(QUrl url); 00029 bool dropAcceptChild(const QModelIndex& index, QUrl url); 00030 bool dragMoveAccept(QUrl url); 00031 bool dragMoveAcceptChild(const QModelIndex& index, QUrl url); 00032 00033 void bindWidget(WLibrarySidebar* sidebarWidget, 00034 WLibrary* libraryWidget, 00035 MixxxKeyboard* keyboard); 00036 00037 TreeItemModel* getChildModel(); 00038 00039 signals: 00040 void trackAnalysisProgress(TrackPointer pTrack, int progress); 00041 void trackAnalysisFinished(TrackPointer pTrack); 00042 void analysisActive(bool bActive); 00043 00044 public slots: 00045 void activate(); 00046 void activateChild(const QModelIndex& index); 00047 void onRightClick(const QPoint& globalPos); 00048 void onRightClickChild(const QPoint& globalPos, QModelIndex index); 00049 void onLazyChildExpandation(const QModelIndex& index); 00050 00051 private slots: 00052 void analyzeTracks(QList<int> trackIds); 00053 void stopAnalysis(); 00054 void slotTrackAnalysisProgress(TrackPointer pTrack, int progress); 00055 void slotTrackAnalysisFinished(TrackPointer pTrack); 00056 00057 private: 00058 void cleanupAnalyser(); 00059 ConfigObject<ConfigValue>* m_pConfig; 00060 TrackCollection* m_pTrackCollection; 00061 AnalyserQueue* m_pAnalyserQueue; 00062 // Used to temporarily enable BPM detection in the prefs before we analyse 00063 int m_iOldBpmEnabled; 00064 TreeItemModel m_childModel; 00065 const static QString m_sPrepareViewName; 00066 }; 00067 00068 00069 #endif /* PREPAREFEATURE_H */