summaryrefslogtreecommitdiff
path: root/src/events/EventsDirectoryPage.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/EventsDirectoryPage.vala')
-rw-r--r--src/events/EventsDirectoryPage.vala40
1 files changed, 27 insertions, 13 deletions
diff --git a/src/events/EventsDirectoryPage.vala b/src/events/EventsDirectoryPage.vala
index 7ead1a0..c00e4bf 100644
--- a/src/events/EventsDirectoryPage.vala
+++ b/src/events/EventsDirectoryPage.vala
@@ -88,10 +88,10 @@ public abstract class EventsDirectoryPage : CheckerboardPage {
}
private static int64 event_ascending_comparator(void *a, void *b) {
- time_t start_a = ((EventDirectoryItem *) a)->event.get_start_time();
- time_t start_b = ((EventDirectoryItem *) b)->event.get_start_time();
+ DateTime start_a = ((EventDirectoryItem *) a)->event.get_start_time();
+ DateTime start_b = ((EventDirectoryItem *) b)->event.get_start_time();
- return start_a - start_b;
+ return start_a.compare(start_b);
}
private static int64 event_descending_comparator(void *a, void *b) {
@@ -239,21 +239,21 @@ public class SubEventsDirectoryPage : EventsDirectoryPage {
}
public const string UNDATED_PAGE_NAME = _("Undated");
- public const string YEAR_FORMAT = _("%Y");
- public const string MONTH_FORMAT = _("%B");
+ public const string YEAR_FORMAT = "%Y";
+ public const string MONTH_FORMAT = "%0B";
private class SubEventDirectoryManager : EventsDirectoryPage.EventDirectoryManager {
private int month = 0;
private int year = 0;
DirectoryType type;
- public SubEventDirectoryManager(DirectoryType type, Time time) {
+ public SubEventDirectoryManager(DirectoryType type, DateTime time) {
base();
if (type == DirectoryType.MONTH)
- month = time.month;
+ month = time.get_month();
this.type = type;
- year = time.year;
+ year = time.get_year();
}
public override bool include_in_view(DataSource source) {
@@ -261,10 +261,10 @@ public class SubEventsDirectoryPage : EventsDirectoryPage {
return false;
EventSource event = (EventSource) source;
- Time event_time = Time.local(event.get_start_time());
- if (event_time.year == year) {
+ var event_time = event.get_start_time().to_local();
+ if (event_time.get_year() == year) {
if (type == DirectoryType.MONTH) {
- return (event_time.month == month);
+ return (event_time.get_month() == month);
}
return true;
}
@@ -284,12 +284,26 @@ public class SubEventsDirectoryPage : EventsDirectoryPage {
}
}
- public SubEventsDirectoryPage(DirectoryType type, Time time) {
+ public SubEventsDirectoryPage(DirectoryType type, DateTime time) {
string page_name;
if (type == SubEventsDirectoryPage.DirectoryType.UNDATED) {
page_name = UNDATED_PAGE_NAME;
} else {
- page_name = time.format((type == DirectoryType.YEAR) ? YEAR_FORMAT : MONTH_FORMAT);
+ switch (type) {
+ case DirectoryType.MONTH: {
+ page_name = time.format(MONTH_FORMAT);
+ if (page_name.index_of("%0B") != -1) {
+ page_name = time.format("%B");
+ }
+ }
+ break;
+ case DirectoryType.YEAR: {
+ page_name = time.format(YEAR_FORMAT);
+ }
+ break;
+ default:
+ assert_not_reached();
+ }
}
base(page_name, new SubEventDirectoryManager(type, time), null);