From 22ef61fd612f3a2fab3032163f2fd6dc2df1adfd Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 19 Oct 2009 09:57:29 +0000 Subject: added sorting by artist and album git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1325 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/playlistmodel.cpp | 36 ++++++++++++++++++++++-- src/qmmpui/playlistmodel.h | 2 ++ src/ui/playlist.cpp | 8 ++++++ src/ui/translations/qmmp_cs.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_de.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_it.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_lt.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_pl_PL.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_pt_BR.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_ru.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_tr.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_uk_UA.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_zh_CN.ts | 58 +++++++++++++++++++++++---------------- src/ui/translations/qmmp_zh_TW.ts | 58 +++++++++++++++++++++++---------------- 14 files changed, 417 insertions(+), 267 deletions(-) (limited to 'src') diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp index 909f0399d..c4e8bda54 100644 --- a/src/qmmpui/playlistmodel.cpp +++ b/src/qmmpui/playlistmodel.cpp @@ -711,6 +711,8 @@ void PlayListModel::reverseList() // First we'll implement bundle of static compare procedures // to sort items in different ways + +//by title static bool _titleLessComparator(PlayListItem* s1,PlayListItem* s2) { return QString::localeAwareCompare (s1->title(), s2->title()) < 0; @@ -720,7 +722,27 @@ static bool _titleGreaterComparator(PlayListItem* s1,PlayListItem* s2) { return QString::localeAwareCompare (s1->title(), s2->title()) > 0; } +//by album +static bool _albumLessComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QString::localeAwareCompare (s1->album(), s2->album()) < 0; +} + +static bool _albumGreaterComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QString::localeAwareCompare (s1->album(), s2->album()) > 0; +} +//by artist +static bool _artistLessComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QString::localeAwareCompare (s1->artist(), s2->artist()) < 0; +} +static bool _artistGreaterComparator(PlayListItem* s1,PlayListItem* s2) +{ + return QString::localeAwareCompare (s1->artist(), s2->artist()) > 0; +} +//by path static bool _pathAndFilenameLessComparator(PlayListItem* s1,PlayListItem* s2) { return QString::localeAwareCompare (s1->url(), s2->url()) < 0; @@ -730,7 +752,7 @@ static bool _pathAndFilenameGreaterComparator(PlayListItem* s1,PlayListItem* s2) { return QString::localeAwareCompare (s1->url(), s2->url()) > 0; } - +//by file name static bool _filenameLessComparator(PlayListItem* s1,PlayListItem* s2) { QFileInfo i_s1(s1->url()); @@ -744,7 +766,7 @@ static bool _filenameGreaterComparator(PlayListItem* s1,PlayListItem* s2) QFileInfo i_s2(s2->url()); return QString::localeAwareCompare (i_s1.baseName(), i_s2.baseName()) > 0; } - +//by date static bool _dateLessComparator(PlayListItem* s1,PlayListItem* s2) { return s1->year().toInt() < s2->year().toInt(); @@ -754,7 +776,7 @@ static bool _dateGreaterComparator(PlayListItem* s1,PlayListItem* s2) { return s1->year().toInt() > s2->year().toInt(); } - +//by track static bool _trackLessComparator(PlayListItem* s1,PlayListItem* s2) { return s1->track().toInt() < s2->track().toInt(); @@ -783,6 +805,14 @@ void PlayListModel::doSort(int sort_mode,QList& list_to_sort) compareLessFunc = _titleLessComparator; compareGreaterFunc = _titleGreaterComparator; break; + case ALBUM: + compareLessFunc = _albumLessComparator; + compareGreaterFunc = _albumGreaterComparator; + break; + case ARTIST: + compareLessFunc = _artistLessComparator; + compareGreaterFunc = _artistGreaterComparator; + break; case FILENAME: compareLessFunc = _filenameLessComparator; compareGreaterFunc = _filenameGreaterComparator; diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h index 0df987e55..8e945da57 100644 --- a/src/qmmpui/playlistmodel.h +++ b/src/qmmpui/playlistmodel.h @@ -251,6 +251,8 @@ public: enum SortMode { TITLE, /*!< by title */ + ALBUM, /*!< by album */ + ARTIST, /*!< by artist */ FILENAME, /*!< by file name */ PATH_AND_FILENAME, /*!< by path and file name */ DATE, /*!< by date */ diff --git a/src/ui/playlist.cpp b/src/ui/playlist.cpp index 9bbb493dd..a4dbdb7d0 100644 --- a/src/ui/playlist.cpp +++ b/src/ui/playlist.cpp @@ -187,6 +187,14 @@ void PlayList::createActions() connect (titleAct, SIGNAL (triggered (bool)), signalMapper, SLOT (map())); signalMapper->setMapping (titleAct, PlayListModel::TITLE); + QAction* albumAct = sort_mode_menu->addAction (tr ("By Album")); + connect (albumAct, SIGNAL (triggered (bool)), signalMapper, SLOT (map())); + signalMapper->setMapping (albumAct, PlayListModel::ALBUM); + + QAction* artistAct = sort_mode_menu->addAction (tr ("By Artist")); + connect (artistAct, SIGNAL (triggered (bool)), signalMapper, SLOT (map())); + signalMapper->setMapping (artistAct, PlayListModel::ARTIST); + QAction* nameAct = sort_mode_menu->addAction (tr ("By Filename")); connect (nameAct, SIGNAL (triggered (bool)), signalMapper, SLOT (map())); signalMapper->setMapping (nameAct, PlayListModel::FILENAME); diff --git a/src/ui/translations/qmmp_cs.ts b/src/ui/translations/qmmp_cs.ts index b8aa2da04..53eb7256c 100644 --- a/src/ui/translations/qmmp_cs.ts +++ b/src/ui/translations/qmmp_cs.ts @@ -1067,90 +1067,100 @@ - + By Title Podle názvu skladby - + By Album + + + + + By Artist + + + + + By Filename Podle názvu souboru - - + + By Path + Filename Podle cesty a názvu souboru - - + + By Date Podle data - + Sort Selection Seřadit výběr - + Randomize List Zamíchat seznam - + Reverse List Obrátit pořadí seznamu - + Invert Selection Invertovat výběr - + &Select None &Zrušit výběr - + &Select All &Vybrat vše - + Ctrl+A Ctrl+A - + &New List &Nový seznam - + Shift+N Shift+N - + &Load List Načíst &seznam - + O O - + &Save List &Uložit seznam - + Shift+S Shift+S @@ -1165,23 +1175,23 @@ U - - + + By Track Number Podle čísla skladby - + &Queue &Fronta - + Q Q - + Actions Činnosti diff --git a/src/ui/translations/qmmp_de.ts b/src/ui/translations/qmmp_de.ts index 425b67ebc..0d721275d 100644 --- a/src/ui/translations/qmmp_de.ts +++ b/src/ui/translations/qmmp_de.ts @@ -1067,90 +1067,100 @@ - + By Title Nach Titel - + By Album + + + + + By Artist + + + + + By Filename Nach Dateinamen - - + + By Path + Filename Nach Pfad + Dateinamen - - + + By Date Nach Datum - + Sort Selection Auswahl sortieren - + Randomize List Wiedergabeliste mischen - + Reverse List Wiedergabeliste umkehren - + Invert Selection Auswahl umkehren - + &Select None &Auswahl aufheben - + &Select All Alle aus&wählen - + Ctrl+A Strg+A - + &New List &Neue Wiedergabeliste - + Shift+N Umschalt+N - + &Load List Wiedergabeliste &laden - + O O - + &Save List Wiedergabeliste &speichern - + Shift+S Umschalt+S @@ -1165,23 +1175,23 @@ U - - + + By Track Number Nach Titelnummer - + &Queue &Warteschlange - + Q Q - + Actions Aktionen diff --git a/src/ui/translations/qmmp_it.ts b/src/ui/translations/qmmp_it.ts index a989fabb0..fe12d84e1 100644 --- a/src/ui/translations/qmmp_it.ts +++ b/src/ui/translations/qmmp_it.ts @@ -1021,12 +1021,12 @@ Alt+I - + Ctrl+A Ctrl+A - + O O @@ -1072,80 +1072,90 @@ - + By Title Per titolo - + By Album + + + + + By Artist + + + + + By Filename Per titolo del brano - - + + By Path + Filename per percorso più titolo del brano - - + + By Date Per data - + Sort Selection Riordina la selezione - + Randomize List Mescola i brnai della lista - + Reverse List Inverti la lista - + Invert Selection Inverti la selezione - + &Select None &Non scegliere alcun brano - + &Select All &Seleziona tutto - + &New List &Nuova lista - + Shift+N Shift+N - + &Load List &Carica lista - + &Save List &Salva lista - + Shift+S Shift+S @@ -1165,23 +1175,23 @@ U - - + + By Track Number Per numero di traccia - + &Queue &Metti in coda - + Q Q - + Actions Azioni diff --git a/src/ui/translations/qmmp_lt.ts b/src/ui/translations/qmmp_lt.ts index fee488a09..ef4c2bbe5 100644 --- a/src/ui/translations/qmmp_lt.ts +++ b/src/ui/translations/qmmp_lt.ts @@ -1021,12 +1021,12 @@ - + Ctrl+A - + O @@ -1072,80 +1072,90 @@ - + By Title Pagal dainos pavadinimą - + By Album + + + + + By Artist + + + + + By Filename Pagal bylos pavadinimą - - + + By Path + Filename Pagal kelią iki bylos - - + + By Date Pagal datą - + Sort Selection Rūšiuoti pasirinktus - + Randomize List Sumaišyti sąrašą - + Reverse List Apversti - + Invert Selection Atšaukti pasirinkimą - + &Select None &Nepasirinkti nei vieno - + &Select All &Pasirinkti visus - + &New List &Naujas sąrašas - + Shift+N - + &Load List &Įkelti sąrašą - + &Save List &Išsaugoti sąrašą - + Shift+S @@ -1165,23 +1175,23 @@ - - + + By Track Number Pagal takelio numerį - + &Queue &Į eilę - + Q - + Actions Veiksmai diff --git a/src/ui/translations/qmmp_pl_PL.ts b/src/ui/translations/qmmp_pl_PL.ts index a12d277ae..631c70546 100644 --- a/src/ui/translations/qmmp_pl_PL.ts +++ b/src/ui/translations/qmmp_pl_PL.ts @@ -1021,12 +1021,12 @@ Alt+I - + Ctrl+A Ctrl+A - + O O @@ -1072,80 +1072,90 @@ - + By Title Według nazwy - + By Album + + + + + By Artist + + + + + By Filename Według nazwy pliku - - + + By Path + Filename Według Ścieżki + Nazwy pliku - - + + By Date Wg Daty - + Sort Selection Sortuj zaznaczone - + Randomize List Tasuj listę - + Reverse List Odwróć listę - + Invert Selection Odwróć zaznaczenie - + &Select None &Odznacz wszystkie - + &Select All &Zaznacz wszystkie - + &New List &Nowa lista - + Shift+N Shift+N - + &Load List &Ładuj listę - + &Save List &Zapisz listę - + Shift+S Shift+S @@ -1165,23 +1175,23 @@ U - - + + By Track Number Wg numeru utworu - + &Queue &Kolejkuj - + Q Q - + Actions Akcje diff --git a/src/ui/translations/qmmp_pt_BR.ts b/src/ui/translations/qmmp_pt_BR.ts index 093bcedbf..0a270f678 100644 --- a/src/ui/translations/qmmp_pt_BR.ts +++ b/src/ui/translations/qmmp_pt_BR.ts @@ -1021,12 +1021,12 @@ - + Ctrl+A - + O @@ -1072,80 +1072,90 @@ - + By Title Por Título - + By Album + + + + + By Artist + + + + + By Filename Por Nome - - + + By Path + Filename Por Dirertório + Nome - - + + By Date Por Data - + Sort Selection Classificar por Seleção - + Randomize List Lista Eleatória - + Reverse List Lista Revertida - + Invert Selection Inverter Seleção - + &Select None &Nenhum selecionado - + &Select All &Selecionar tudo - + &New List &Nova lista - + Shift+N - + &Load List &Carregar lista - + &Save List &Salvar lista - + Shift+S @@ -1165,23 +1175,23 @@ - - + + By Track Number - + &Queue Na fila - + Q - + Actions diff --git a/src/ui/translations/qmmp_ru.ts b/src/ui/translations/qmmp_ru.ts index 840ba669f..de80112f6 100644 --- a/src/ui/translations/qmmp_ru.ts +++ b/src/ui/translations/qmmp_ru.ts @@ -1021,12 +1021,12 @@ - + Ctrl+A - + O @@ -1072,80 +1072,90 @@ - + By Title По названию - + By Album + + + + + By Artist + + + + + By Filename По имени файла - - + + By Path + Filename По пути и файлу - - + + By Date По дате - + Sort Selection Сортировать выделенное - + Randomize List Перемешать - + Reverse List Перевернуть - + Invert Selection Инвертировать выделение - + &Select None &Снять выделение - + &Select All &Выделить всё - + &New List &Новый лист - + Shift+N - + &Load List &Загрузить лист - + &Save List &Сохранить лист - + Shift+S @@ -1165,23 +1175,23 @@ - - + + By Track Number По номеру трека - + &Queue &В очередь - + Q - + Actions Действия diff --git a/src/ui/translations/qmmp_tr.ts b/src/ui/translations/qmmp_tr.ts index e59b239c5..eebdfe0a5 100644 --- a/src/ui/translations/qmmp_tr.ts +++ b/src/ui/translations/qmmp_tr.ts @@ -1021,12 +1021,12 @@ Alt+I - + Ctrl+A Ctrl+A - + O O @@ -1072,80 +1072,90 @@ - + By Title Başlığa Göre - + By Album + + + + + By Artist + + + + + By Filename Dosya Adına Göre - - + + By Path + Filename Dosya Yolu + Dosya Adına Göre - - + + By Date Tarihe Göre - + Sort Selection Seçilenleri Sınıflandır - + Randomize List Rastgele Listele - + Reverse List Listeyi Ters Çevir - + Invert Selection Seçimi Tersine Çevir - + &Select None &Hiçbirini Seçme - + &Select All &Tümünü Seç - + &New List &Yeni Liste - + Shift+N Shift+N - + &Load List &Liste Yükle - + &Save List &Listeyi Kaydet - + Shift+S Shift+S @@ -1165,23 +1175,23 @@ U - - + + By Track Number Parça Numarasına Göre - + &Queue &Kuyruğa ekle - + Q Q - + Actions Eylemler diff --git a/src/ui/translations/qmmp_uk_UA.ts b/src/ui/translations/qmmp_uk_UA.ts index e7b8e6d48..da89f6f85 100644 --- a/src/ui/translations/qmmp_uk_UA.ts +++ b/src/ui/translations/qmmp_uk_UA.ts @@ -1021,12 +1021,12 @@ - + Ctrl+A - + O @@ -1072,80 +1072,90 @@ - + By Title За назвою - + By Album + + + + + By Artist + + + + + By Filename За ім'ям файлу - - + + By Path + Filename За шляхом та файлом - - + + By Date За датою - + Sort Selection Сортувати вибране - + Randomize List Перемішати - + Reverse List Перевернути - + Invert Selection Інвертувати вибране - + &Select None &Зняти виділення - + &Select All &Вибрати все - + &New List &Новий список - + Shift+N - + &Load List &Завантажити список - + &Save List &Зберегти список - + Shift+S @@ -1165,23 +1175,23 @@ - - + + By Track Number - + &Queue &В чергу - + Q - + Actions Дії diff --git a/src/ui/translations/qmmp_zh_CN.ts b/src/ui/translations/qmmp_zh_CN.ts index 93c4fb96f..24fadc7ec 100644 --- a/src/ui/translations/qmmp_zh_CN.ts +++ b/src/ui/translations/qmmp_zh_CN.ts @@ -1021,12 +1021,12 @@ Alt+I - + Ctrl+A Ctrl+A - + O O @@ -1072,80 +1072,90 @@ - + By Title 按标题 - + By Album + + + + + By Artist + + + + + By Filename 按文件名 - - + + By Path + Filename 按路径+文件名 - - + + By Date 按日期 - + Sort Selection 选择排序 - + Randomize List 随机产生列表 - + Reverse List 逆序列表 - + Invert Selection 反选 - + &Select None 无选择(&S) - + &Select All 选择全部(&S) - + &New List 新建列表(&N) - + Shift+N Shift+N - + &Load List 载入列表(&L) - + &Save List 保存列表(&S) - + Shift+S Shift+S @@ -1165,23 +1175,23 @@ U - - + + By Track Number 按音轨 - + &Queue 队列(&Q) - + Q Q - + Actions 动作 diff --git a/src/ui/translations/qmmp_zh_TW.ts b/src/ui/translations/qmmp_zh_TW.ts index cc632f820..e6fc5e737 100644 --- a/src/ui/translations/qmmp_zh_TW.ts +++ b/src/ui/translations/qmmp_zh_TW.ts @@ -1021,12 +1021,12 @@ Alt+I - + Ctrl+A Ctrl+A - + O O @@ -1072,80 +1072,90 @@ - + By Title 按標題 - + By Album + + + + + By Artist + + + + + By Filename 按檔名 - - + + By Path + Filename 按路徑+檔名 - - + + By Date 按日期 - + Sort Selection 選取排序 - + Randomize List 隨機產生清單 - + Reverse List 逆串列表 - + Invert Selection 反選 - + &Select None 無選取(&S) - + &Select All 選取全部(&S) - + &New List 新建清單(&N) - + Shift+N Shift+N - + &Load List 載入清單(&L) - + &Save List 儲存清單(&S) - + Shift+S Shift+S @@ -1165,23 +1175,23 @@ U - - + + By Track Number 按音軌 - + &Queue 佇列(&Q) - + Q Q - + Actions 動作 -- cgit v1.2.3-13-gbd6f