mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-03-03 19:11:41 +01:00
improved sorting for EPG time column (#110)
This commit is contained in:
@@ -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:
|
||||
|
||||
|
||||
@@ -245,7 +245,9 @@ Author: Dmitriy Yefremov
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="epg_title_column">
|
||||
<property name="min_width">25</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="fixed_width">170</property>
|
||||
<property name="min_width">50</property>
|
||||
<property name="title" translatable="yes">Title</property>
|
||||
<property name="alignment">0.49000000953674316</property>
|
||||
<property name="sort_column_id">0</property>
|
||||
@@ -261,7 +263,9 @@ Author: Dmitriy Yefremov
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="epg_time_column">
|
||||
<property name="min_width">25</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="fixed_width">270</property>
|
||||
<property name="min_width">50</property>
|
||||
<property name="title" translatable="yes">Time</property>
|
||||
<property name="alignment">0.49000000953674316</property>
|
||||
<property name="sort_column_id">1</property>
|
||||
@@ -277,6 +281,8 @@ Author: Dmitriy Yefremov
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="epg_desc_column">
|
||||
<property name="fixed_width">100</property>
|
||||
<property name="min_width">50</property>
|
||||
<property name="title" translatable="yes">Description</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="alignment">0.49000000953674316</property>
|
||||
|
||||
@@ -1206,7 +1206,7 @@ Author: Dmitriy Yefremov
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="timer_time_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="fixed_width">150</property>
|
||||
<property name="fixed_width">270</property>
|
||||
<property name="min_width">50</property>
|
||||
<property name="title" translatable="yes">Time</property>
|
||||
<property name="alignment">0.5</property>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user