diff --git a/app/ui/epg/epg.py b/app/ui/epg/epg.py index 04530bc8..233819e2 100644 --- a/app/ui/epg/epg.py +++ b/app/ui/epg/epg.py @@ -202,6 +202,9 @@ class EpgTool(Gtk.Box): self._filter_entry = builder.get_object("epg_filter_entry") builder.get_object("epg_filter_button").bind_property("active", self._filter_entry, "visible") self.pack_start(builder.get_object("epg_frame"), True, True, 0) + # Custom sort function. + self._view.get_model().set_sort_func(1, self.time_sort_func, 1) + self.show() def on_timer_add(self, action=None, value=None): @@ -259,13 +262,14 @@ class EpgTool(Gtk.Box): @staticmethod def get_event(event, show_day=True): + t_str = f"{'%A, ' if show_day else ''}%Y-%m-%d, %H:%M" title = event.get("e2eventtitle", "") or "" desc = event.get("e2eventdescription", "") or "" start = int(event.get("e2eventstart", "0")) start_time = datetime.fromtimestamp(start) end_time = datetime.fromtimestamp(start + int(event.get("e2eventduration", "0"))) - ev_time = f"{start_time.strftime('%A, %H:%M' if show_day else '%H:%M')} - {end_time.strftime('%H:%M')}" + ev_time = f"{start_time.strftime(t_str)} - {end_time.strftime('%H:%M')}" return EpgEvent(title, ev_time, desc, event) @@ -280,6 +284,13 @@ class EpgTool(Gtk.Box): txt = self._filter_entry.get_text().upper() return next((s for s in model.get(itr, 0, 1, 2) if txt in s.upper()), False) + def time_sort_func(self, model, iter1, iter2, column): + """ Custom sort function for time column. """ + event1 = model.get_value(iter1, 3) + event2 = model.get_value(iter2, 3) + + return int(event1.get("e2eventstart", "0")) - int(event2.get("e2eventstart", "0")) + class EpgDialog: diff --git a/app/ui/epg/tab.glade b/app/ui/epg/tab.glade index eb21203e..18b4ca3d 100644 --- a/app/ui/epg/tab.glade +++ b/app/ui/epg/tab.glade @@ -245,7 +245,9 @@ Author: Dmitriy Yefremov - 25 + True + 170 + 50 Title 0.49000000953674316 0 @@ -261,7 +263,9 @@ Author: Dmitriy Yefremov - 25 + True + 270 + 50 Time 0.49000000953674316 1 @@ -277,6 +281,8 @@ Author: Dmitriy Yefremov + 100 + 50 Description True 0.49000000953674316 diff --git a/app/ui/timers.glade b/app/ui/timers.glade index 58ee3697..06dc3123 100644 --- a/app/ui/timers.glade +++ b/app/ui/timers.glade @@ -1206,7 +1206,7 @@ Author: Dmitriy Yefremov True - 150 + 270 50 Time 0.5 diff --git a/app/ui/timers.py b/app/ui/timers.py index 2fcdf744..502703ab 100644 --- a/app/ui/timers.py +++ b/app/ui/timers.py @@ -350,7 +350,7 @@ class TimerTool(Gtk.Box): service = timer.get("e2servicename", "") or "" start_time = datetime.fromtimestamp(int(timer.get("e2timebegin", "0"))) end_time = datetime.fromtimestamp(int(timer.get("e2timeend", "0"))) - time = f"{start_time.strftime('%A, %H:%M')} - {end_time.strftime('%H:%M')}" + time = f"{start_time.strftime('%A, %Y-%m-%d, %H:%M')} - {end_time.strftime('%H:%M')}" return disabled, name, service, time, description, timer