Skip to content

Commit e46812b

Browse files
0000xFFFFradioactiveman
authored andcommitted
qtui: Support file creation/modification dates
1 parent d8d91d1 commit e46812b

4 files changed

Lines changed: 36 additions & 16 deletions

File tree

src/qtui/menus.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ QMenuBar * qtui_build_menubar(QWidget * parent)
195195
audqt::MenuCommand({N_("By _Custom Title")}, sort_custom_title),
196196
audqt::MenuCommand({N_("By C_omment")}, sort_comment),
197197
audqt::MenuCommand({N_("By D_isc Number")}, sort_disc),
198+
audqt::MenuCommand({N_("By File Created")}, sort_file_created),
199+
audqt::MenuCommand({N_("By File Modified")}, sort_file_modified),
198200
audqt::MenuSep(),
199201
audqt::MenuCommand({N_("R_everse Order"), "view-sort-descending"},
200202
sort_reverse),
@@ -213,6 +215,8 @@ QMenuBar * qtui_build_menubar(QWidget * parent)
213215
audqt::MenuCommand({N_("By _Custom Title")}, sort_sel_custom_title),
214216
audqt::MenuCommand({N_("By C_omment")}, sort_sel_comment),
215217
audqt::MenuCommand({N_("By D_isc Number")}, sort_sel_disc),
218+
audqt::MenuCommand({N_("By File Created")}, sort_sel_file_created),
219+
audqt::MenuCommand({N_("By File Modified")}, sort_sel_file_modified),
216220
audqt::MenuSep(),
217221
audqt::MenuCommand({N_("R_everse Order"), "view-sort-descending"},
218222
sort_sel_reverse),

src/qtui/playlist_header.cc

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
#include <libaudqt/libaudqt.h>
3636

3737
static const char * const s_col_keys[] = {
38-
"number", "title", "artist", "year", "album",
39-
"album-artist", "track", "genre", "queued", "length",
40-
"path", "filename", "custom", "bitrate", "comment",
41-
"publisher", "catalog-number", "disc"};
38+
"number", "title", "artist", "year", "album",
39+
"album-artist", "track", "genre", "queued", "length",
40+
"path", "filename", "custom", "bitrate", "comment",
41+
"publisher", "catalog-number", "disc", "file-created", "file-modified"};
4242

4343
static const int s_default_widths[] = {
4444
25, // entry number
@@ -58,7 +58,9 @@ static const int s_default_widths[] = {
5858
275, // comment
5959
175, // publisher
6060
75, // catalog number
61-
25 // disc
61+
25, // disc
62+
190, // file created
63+
190, // file modified
6264
};
6365

6466
static const Playlist::SortType s_sort_types[] = {
@@ -79,7 +81,9 @@ static const Playlist::SortType s_sort_types[] = {
7981
Playlist::Comment, // comment,
8082
Playlist::Publisher, // publisher
8183
Playlist::CatalogNum, // catalog number
82-
Playlist::Disc // disc
84+
Playlist::Disc, // disc
85+
Playlist::FileCreated, // file created
86+
Playlist::FileModified, // file modified
8387
};
8488

8589
static_assert(aud::n_elems(s_col_keys) == PlaylistModel::n_cols,

src/qtui/playlist_model.cc

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
*/
1919

2020
#include <QApplication>
21+
#include <QDateTime>
2122
#include <QIcon>
23+
#include <QLocale>
2224
#include <QMimeData>
2325
#include <QUrl>
2426

@@ -30,18 +32,18 @@
3032
#include "playlist_model.h"
3133

3234
const char * const PlaylistModel::labels[] = {
33-
N_("Entry Number"), N_("Title"), N_("Artist"), N_("Year"),
34-
N_("Album"), N_("Album Artist"), N_("Track"), N_("Genre"),
35-
N_("Queue Position"), N_("Length"), N_("File Path"), N_("File Name"),
36-
N_("Custom Title"), N_("Bitrate"), N_("Comment"), N_("Publisher"),
37-
N_("Catalog Number"), N_("Disc")};
35+
N_("Entry Number"), N_("Title"), N_("Artist"), N_("Year"),
36+
N_("Album"), N_("Album Artist"), N_("Track"), N_("Genre"),
37+
N_("Queue Position"), N_("Length"), N_("File Path"), N_("File Name"),
38+
N_("Custom Title"), N_("Bitrate"), N_("Comment"), N_("Publisher"),
39+
N_("Catalog Number"), N_("Disc"), N_("File Created"), N_("File Modified")};
3840

3941
static const Tuple::Field s_fields[] = {
40-
Tuple::Invalid, Tuple::Title, Tuple::Artist, Tuple::Year,
41-
Tuple::Album, Tuple::AlbumArtist, Tuple::Track, Tuple::Genre,
42-
Tuple::Invalid, Tuple::Length, Tuple::Path, Tuple::Basename,
43-
Tuple::FormattedTitle, Tuple::Bitrate, Tuple::Comment, Tuple::Publisher,
44-
Tuple::CatalogNum, Tuple::Disc};
42+
Tuple::Invalid, Tuple::Title, Tuple::Artist, Tuple::Year,
43+
Tuple::Album, Tuple::AlbumArtist, Tuple::Track, Tuple::Genre,
44+
Tuple::Invalid, Tuple::Length, Tuple::Path, Tuple::Basename,
45+
Tuple::FormattedTitle, Tuple::Bitrate, Tuple::Comment, Tuple::Publisher,
46+
Tuple::CatalogNum, Tuple::Disc, Tuple::FileCreated, Tuple::FileModified};
4547

4648
static_assert(aud::n_elems(PlaylistModel::labels) == PlaylistModel::n_cols,
4749
"update PlaylistModel::labels");
@@ -117,6 +119,14 @@ QVariant PlaylistModel::data(const QModelIndex & index, int role) const
117119
case Tuple::Int:
118120
val = tuple.get_int(s_fields[col]);
119121
break;
122+
case Tuple::DateTime:
123+
int64_t t = tuple.get_int64(s_fields[col]);
124+
if (t > 0)
125+
{
126+
QDateTime dt = QDateTime::fromSecsSinceEpoch(t).toLocalTime();
127+
return QLocale().toString(dt, QLocale::ShortFormat);
128+
}
129+
return QString();
120130
}
121131
}
122132

src/qtui/playlist_model.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ class PlaylistModel : public QAbstractListModel
5050
Publisher,
5151
CatalogNum,
5252
Disc,
53+
FileCreated,
54+
FileModified,
5355
n_cols
5456
};
5557

0 commit comments

Comments
 (0)