diff options
Diffstat (limited to 'src/widget/wtracktableview.cpp')
-rw-r--r-- | src/widget/wtracktableview.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/widget/wtracktableview.cpp b/src/widget/wtracktableview.cpp index f0d635cdc0..af7c1f2e7f 100644 --- a/src/widget/wtracktableview.cpp +++ b/src/widget/wtracktableview.cpp @@ -276,7 +276,7 @@ void WTrackTableView::loadTrackModel(QAbstractItemModel* model) { } } - m_pSortColumn->set(trackModel->sortColumnIdFromColumnIndex(sortColumn)); + m_pSortColumn->set(static_cast<int>(trackModel->sortColumnIdFromColumnIndex(sortColumn))); m_pSortOrder->set(sortOrder); applySorting(); } @@ -364,6 +364,14 @@ void WTrackTableView::slotMouseDoubleClicked(const QModelIndex& index) { } } +TrackModel::SortColumnId WTrackTableView::getColumnIdFromCurrentIndex() { + TrackModel* trackModel = getTrackModel(); + VERIFY_OR_DEBUG_ASSERT(trackModel) { + return TrackModel::SortColumnId::Invalid; + } + return trackModel->sortColumnIdFromColumnIndex(currentIndex().column()); +} + void WTrackTableView::assignPreviousTrackColor() { QModelIndexList indices = selectionModel()->selectedRows(); if (indices.size() <= 0) { @@ -940,7 +948,13 @@ void WTrackTableView::applySortingIfVisible() { void WTrackTableView::applySorting() { TrackModel* trackModel = getTrackModel(); int sortColumnId = static_cast<int>(m_pSortColumn->get()); - if (sortColumnId < 0 || sortColumnId >= TrackModel::SortColumnId::NUM_SORTCOLUMNIDS) { + if (sortColumnId == static_cast<int>(TrackModel::SortColumnId::Invalid)) { + // During startup phase of Mixxx, this method is called with Invalid + return; + } + VERIFY_OR_DEBUG_ASSERT( + sortColumnId >= static_cast<int>(TrackModel::SortColumnId::IdMin) && + sortColumnId < static_cast<int>(TrackModel::SortColumnId::IdMax)) { return; } @@ -966,12 +980,12 @@ void WTrackTableView::slotSortingChanged(int headerSection, Qt::SortOrder order) TrackModel* trackModel = getTrackModel(); TrackModel::SortColumnId sortColumnId = trackModel->sortColumnIdFromColumnIndex(headerSection); - if (sortColumnId == TrackModel::SortColumnId::SORTCOLUMN_INVALID) { + if (sortColumnId == TrackModel::SortColumnId::Invalid) { return; } - if (sortColumnId != static_cast<int>(m_pSortColumn->get())) { - m_pSortColumn->set(sortColumnId); + if (static_cast<int>(sortColumnId) != static_cast<int>(m_pSortColumn->get())) { + m_pSortColumn->set(static_cast<int>(sortColumnId)); sortingChanged = true; } if (sortOrder != m_pSortOrder->get()) { |