BrowseTableModel::BrowseTableModel(QObject* parent, TrackCollection* pTrackCollection, RecordingManager* pRecordingManager) : TrackModel(pTrackCollection->getDatabase(), "mixxx.db.model.browse"), QStandardItemModel(parent), m_pTrackCollection(pTrackCollection), m_pRecordingManager(pRecordingManager) { QStringList header_data; header_data.insert(COLUMN_FILENAME, tr("Filename")); header_data.insert(COLUMN_ARTIST, tr("Artist")); header_data.insert(COLUMN_TITLE, tr("Title")); header_data.insert(COLUMN_ALBUM, tr("Album")); header_data.insert(COLUMN_TRACK_NUMBER, tr("Track #")); header_data.insert(COLUMN_YEAR, tr("Year")); header_data.insert(COLUMN_GENRE, tr("Genre")); header_data.insert(COLUMN_COMPOSER, tr("Composer")); header_data.insert(COLUMN_COMMENT, tr("Comment")); header_data.insert(COLUMN_DURATION, tr("Duration")); header_data.insert(COLUMN_BPM, tr("BPM")); header_data.insert(COLUMN_KEY, tr("Key")); header_data.insert(COLUMN_TYPE, tr("Type")); header_data.insert(COLUMN_BITRATE, tr("Bitrate")); header_data.insert(COLUMN_LOCATION, tr("Location")); header_data.insert(COLUMN_ALBUMARTIST, tr("Album Artist")); header_data.insert(COLUMN_GROUPING, tr("Grouping")); addSearchColumn(COLUMN_FILENAME); addSearchColumn(COLUMN_ARTIST); addSearchColumn(COLUMN_ALBUM); addSearchColumn(COLUMN_TITLE); addSearchColumn(COLUMN_GENRE); addSearchColumn(COLUMN_COMPOSER); addSearchColumn(COLUMN_KEY); addSearchColumn(COLUMN_COMMENT); addSearchColumn(COLUMN_ALBUMARTIST); addSearchColumn(COLUMN_GROUPING); setHorizontalHeaderLabels(header_data); // register the QList<T> as a metatype since we use QueuedConnection below qRegisterMetaType< QList< QList<QStandardItem*> > >( "QList< QList<QStandardItem*> >"); qRegisterMetaType<BrowseTableModel*>("BrowseTableModel*"); connect(BrowseThread::getInstance(), SIGNAL(clearModel(BrowseTableModel*)), this, SLOT(slotClear(BrowseTableModel*)), Qt::QueuedConnection); connect( BrowseThread::getInstance(), SIGNAL(rowsAppended(const QList< QList<QStandardItem*> >&, BrowseTableModel*)), this, SLOT(slotInsert(const QList< QList<QStandardItem*> >&, BrowseTableModel*)), Qt::QueuedConnection); }
BrowseTableModel::BrowseTableModel(QObject* parent, TrackCollection* pTrackCollection, RecordingManager* pRecordingManager) : TrackModel(pTrackCollection->database(), "mixxx.db.model.browse"), QStandardItemModel(parent), m_pTrackCollection(pTrackCollection), m_pRecordingManager(pRecordingManager), m_previewDeckGroup(PlayerManager::groupForPreviewDeck(0)) { QStringList header_data; header_data.insert(COLUMN_PREVIEW, tr("Preview")); header_data.insert(COLUMN_FILENAME, tr("Filename")); header_data.insert(COLUMN_ARTIST, tr("Artist")); header_data.insert(COLUMN_TITLE, tr("Title")); header_data.insert(COLUMN_ALBUM, tr("Album")); header_data.insert(COLUMN_TRACK_NUMBER, tr("Track #")); header_data.insert(COLUMN_YEAR, tr("Year")); header_data.insert(COLUMN_GENRE, tr("Genre")); header_data.insert(COLUMN_COMPOSER, tr("Composer")); header_data.insert(COLUMN_COMMENT, tr("Comment")); header_data.insert(COLUMN_DURATION, tr("Duration")); header_data.insert(COLUMN_BPM, tr("BPM")); header_data.insert(COLUMN_KEY, tr("Key")); header_data.insert(COLUMN_TYPE, tr("Type")); header_data.insert(COLUMN_BITRATE, tr("Bitrate")); header_data.insert(COLUMN_REPLAYGAIN, tr("ReplayGain")); header_data.insert(COLUMN_LOCATION, tr("Location")); header_data.insert(COLUMN_ALBUMARTIST, tr("Album Artist")); header_data.insert(COLUMN_GROUPING, tr("Grouping")); header_data.insert(COLUMN_FILE_MODIFIED_TIME, tr("File Modified")); header_data.insert(COLUMN_FILE_CREATION_TIME, tr("File Created")); addSearchColumn(COLUMN_FILENAME); addSearchColumn(COLUMN_ARTIST); addSearchColumn(COLUMN_ALBUM); addSearchColumn(COLUMN_TITLE); addSearchColumn(COLUMN_GENRE); addSearchColumn(COLUMN_COMPOSER); addSearchColumn(COLUMN_KEY); addSearchColumn(COLUMN_COMMENT); addSearchColumn(COLUMN_ALBUMARTIST); addSearchColumn(COLUMN_GROUPING); addSearchColumn(COLUMN_FILE_MODIFIED_TIME); addSearchColumn(COLUMN_FILE_CREATION_TIME); setDefaultSort(COLUMN_FILENAME, Qt::AscendingOrder); setHorizontalHeaderLabels(header_data); // register the QList<T> as a metatype since we use QueuedConnection below qRegisterMetaType< QList< QList<QStandardItem*> > >( "QList< QList<QStandardItem*> >"); qRegisterMetaType<BrowseTableModel*>("BrowseTableModel*"); m_pBrowseThread = BrowseThread::getInstanceRef(); connect(m_pBrowseThread.data(), SIGNAL(clearModel(BrowseTableModel*)), this, SLOT(slotClear(BrowseTableModel*)), Qt::QueuedConnection); connect(m_pBrowseThread.data(), SIGNAL(rowsAppended(const QList< QList<QStandardItem*> >&, BrowseTableModel*)), this, SLOT(slotInsert(const QList< QList<QStandardItem*> >&, BrowseTableModel*)), Qt::QueuedConnection); connect(&PlayerInfo::instance(), SIGNAL(trackLoaded(QString, TrackPointer)), this, SLOT(trackLoaded(QString, TrackPointer))); trackLoaded(m_previewDeckGroup, PlayerInfo::instance().getTrackInfo(m_previewDeckGroup)); }