From 553d8cd9b0c13b9b0a6295d717e8e62ebb771136 Mon Sep 17 00:00:00 2001 From: Herwig Birke Date: Thu, 8 Mar 2018 14:04:24 +0100 Subject: [PATCH] . --- calbum.cpp | 96 ++++++++++++++++++++++++++++++++++++++++++------- calbum.h | 2 +- cmainwindow.cpp | 2 +- common.h | 12 ++++--- qtJukeBox.pro | 3 +- 5 files changed, 96 insertions(+), 19 deletions(-) diff --git a/calbum.cpp b/calbum.cpp index a5978ed..cb531be 100644 --- a/calbum.cpp +++ b/calbum.cpp @@ -1,21 +1,92 @@ +#include "common.h" + #include "calbum.h" #include "ctrack.h" -static bool compare(cAlbum* lpFirst, cAlbum* lpSecond) +class cAlbumCompare { - if(lpFirst->band() < lpSecond->band()) - return(true); - else if(lpFirst->band() > lpSecond->band()) - return(false); - else +public: + cAlbumCompare(qint32 sort) : m_sort(sort) {} + + bool operator()(cAlbum* lpFirst, cAlbum* lpSecond) { - if(lpFirst->album() < lpSecond->album()) - return(true); + if(m_sort & SORT_BAND_ASC) + { + if(lpFirst->band() < lpSecond->band()) + return(true); + else if(lpFirst->band() > lpSecond->band()) + return(false); + else + { + if(m_sort & SORT_ALBUM_ASC) + { + if(lpFirst->album() < lpSecond->album()) + return(true); + else + return(false); + } + else if(m_sort & SORT_ALBUM_DESC) + { + if(lpFirst->album() > lpSecond->album()) + return(true); + else + return(false); + } + else + return(false); + } + } + else if(m_sort & SORT_BAND_DESC) + { + if(lpFirst->band() > lpSecond->band()) + return(true); + else if(lpFirst->band() < lpSecond->band()) + return(false); + else + { + if(m_sort & SORT_ALBUM_ASC) + { + if(lpFirst->album() < lpSecond->album()) + return(true); + else + return(false); + } + else if(m_sort & SORT_ALBUM_DESC) + { + if(lpFirst->album() > lpSecond->album()) + return(true); + else + return(false); + } + else + return(false); + } + } else - return(false); + { + if(m_sort & SORT_ALBUM_ASC) + { + if(lpFirst->album() < lpSecond->album()) + return(true); + else + return(false); + } + else if(m_sort & SORT_ALBUM_DESC) + { + if(lpFirst->album() > lpSecond->album()) + return(true); + else + return(false); + } + else + return(false); + } } -} + +private: + qint32 m_sort; +}; cAlbum::cAlbum(const QString& szAlbum, const QString &szBand) : m_szAlbum(szAlbum), @@ -74,7 +145,8 @@ cAlbum* cAlbumList::add(const QString& szAlbum, const QString& szBand) return(lpAlbumNew); } -void cAlbumList::sort() +void cAlbumList::sort(qint32 sort) { - std::sort(begin(), end(), compare); +// std::sort(begin(), end(), compare); + std::sort(begin(), end(), cAlbumCompare(sort)); } diff --git a/calbum.h b/calbum.h index b3c2ad1..54243ec 100644 --- a/calbum.h +++ b/calbum.h @@ -37,7 +37,7 @@ class cAlbumList : public QList { public: cAlbum* add(const QString& szAlbum, const QString &szBand); - void sort(); + void sort(qint32 sort); private: }; diff --git a/cmainwindow.cpp b/cmainwindow.cpp index fc74795..263f7f2 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -219,7 +219,7 @@ void cMainWindow::displayDB() { m_lpMusicListModel->clear(); - m_albumList.sort(); + m_albumList.sort(SORT_ALBUM_ASC | SORT_BAND_ASC); QStringList header; header << "Original"; diff --git a/common.h b/common.h index 15ac39f..a8e828f 100644 --- a/common.h +++ b/common.h @@ -2,6 +2,9 @@ #define COMMON_H +#include + + #define MUSICLIST_ORI_ALBUM 0 #define MUSICLIST_ORI_TRACK 1 @@ -9,11 +12,12 @@ #define MUSICLIST_NEW_TRACK 3 -#include +#define SORT_ALBUM_ASC 0x0001 +#define SORT_ALBUM_DESC 0x0002 +#define SORT_BAND_ASC 0x0004 +#define SORT_BAND_DESC 0x0008 - -//#define myDebug qDebug() << __FILE__ << "(" << __LINE__ << ") - " << __PRETTY_FUNCTION__ << ":" -#define myDebug qDebug() << __FILE__ << "(" << __LINE__ << ") - " << __FUNCTION__ << ":" +#define myDebug qDebug() << __FILE__ << "(" << __LINE__ << ") - " << __PRETTY_FUNCTION__ << ":" #endif // COMMON_H diff --git a/qtJukeBox.pro b/qtJukeBox.pro index af89b13..b0a7b5a 100644 --- a/qtJukeBox.pro +++ b/qtJukeBox.pro @@ -58,6 +58,7 @@ HEADERS += cmainwindow.h \ cpixmap.h \ cmusicviewitemdelegate.h \ calbum.h \ - ctrack.h + ctrack.h \ + common.h FORMS += cmainwindow.ui