From 33e39d2f25e6bd82ee780fd0e0e9e1a40b221d84 Mon Sep 17 00:00:00 2001 From: DYefremov Date: Mon, 11 Jul 2022 08:52:15 +0300 Subject: [PATCH] improved sorting by recording time --- app/ui/recordings.glade | 2 ++ app/ui/recordings.py | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/ui/recordings.glade b/app/ui/recordings.glade index b9b2afe3..27735d20 100644 --- a/app/ui/recordings.glade +++ b/app/ui/recordings.glade @@ -324,6 +324,8 @@ Author: Dmitriy Yefremov + True + 200 100 Time 0.5 diff --git a/app/ui/recordings.py b/app/ui/recordings.py index 5089abfd..0edc7237 100644 --- a/app/ui/recordings.py +++ b/app/ui/recordings.py @@ -77,6 +77,8 @@ class RecordingsTool(Gtk.Box): self._filter_entry = builder.get_object("recordings_filter_entry") self._recordings_count_label = builder.get_object("recordings_count_label") self.pack_start(builder.get_object("recordings_box"), True, True, 0) + self._rec_view.get_model().set_sort_func(2, self.time_sort_func, 2) + if settings.alternate_layout: self.on_layout_changed(app, True) @@ -167,7 +169,7 @@ class RecordingsTool(Gtk.Box): def get_recordings_row(self, rec): service = rec.get("e2servicename") title = rec.get("e2title", "") - time = datetime.fromtimestamp(int(rec.get("e2time", "0"))).strftime("%A, %H:%M") + time = datetime.fromtimestamp(int(rec.get("e2time", "0"))).strftime("%A, %Y-%m-%d, %H:%M") length = rec.get("e2length", "0") file = rec.get("e2filename", "") desc = rec.get("e2description", "") @@ -243,6 +245,13 @@ class RecordingsTool(Gtk.Box): for c in (Column.REC_SERVICE, Column.REC_TIME, Column.REC_LEN, Column.REC_FILE, Column.REC_DESC): self._rec_view.get_column(c).set_visible(state) + def time_sort_func(self, model, iter1, iter2, column): + """ Custom sort function for time column. """ + rec1 = model.get_value(iter1, 6) + rec2 = model.get_value(iter2, 6) + + return int(rec1.get("e2time", "0")) - int(rec2.get("e2time", "0")) + if __name__ == "__main__": pass