Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/library/cratefeature.h

Go to the documentation of this file.
00001 #ifndef CRATEFEATURE_H
00002 #define CRATEFEATURE_H
00003 
00004 #include <QSqlTableModel>
00005 #include <QModelIndex>
00006 #include <QAction>
00007 
00008 #include "library/libraryfeature.h"
00009 #include "library/cratetablemodel.h"
00010 
00011 #include "treeitemmodel.h"
00012 #include "configobject.h"
00013 
00014 class TrackCollection;
00015 
00016 class CrateFeature : public LibraryFeature {
00017     Q_OBJECT
00018   public:
00019     CrateFeature(QObject* parent, TrackCollection* pTrackCollection, ConfigObject<ConfigValue>* pConfig);
00020     virtual ~CrateFeature();
00021 
00022     QVariant title();
00023     QIcon getIcon();
00024 
00025     bool dropAccept(QUrl url);
00026     bool dropAcceptChild(const QModelIndex& index, QUrl url);
00027     bool dragMoveAccept(QUrl url);
00028     bool dragMoveAcceptChild(const QModelIndex& index, QUrl url);
00029 
00030     void bindWidget(WLibrarySidebar* sidebarWidget,
00031                     WLibrary* libraryWidget,
00032                     MixxxKeyboard* keyboard);
00033 
00034     TreeItemModel* getChildModel();
00035   signals:
00036     void showPage(const QUrl& page);
00037 
00038   public slots:
00039     void activate();
00040     void activateChild(const QModelIndex& index);
00041     void onRightClick(const QPoint& globalPos);
00042     void onRightClickChild(const QPoint& globalPos, QModelIndex index);
00043     void onLazyChildExpandation(const QModelIndex& index);
00044 
00045     void slotCreateCrate();
00046     void slotDeleteCrate();
00047     void slotRenameCrate();
00048     void slotToggleCrateLock();
00049     void slotImportPlaylist();
00050     void slotExportPlaylist();
00051 
00052   private:
00053     void constructChildModel();
00054     void clearChildModel();
00055   
00056     TrackCollection* m_pTrackCollection;
00057     QAction *m_pCreateCrateAction;
00058     QAction *m_pDeleteCrateAction;
00059     QAction *m_pRenameCrateAction;
00060     QAction *m_pLockCrateAction;
00061     QAction *m_pImportPlaylistAction;
00062     QAction *m_pExportPlaylistAction;
00063     QSqlTableModel m_crateListTableModel;
00064     CrateTableModel m_crateTableModel;
00065     QModelIndex m_lastRightClickedIndex;
00066     TreeItemModel m_childModel;
00067     ConfigObject<ConfigValue>* m_pConfig;
00068 };
00069 
00070 #endif /* CRATEFEATURE_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines