From b0613c7f8dec3fc2a1cd7c7d86f4afca442f6499 Mon Sep 17 00:00:00 2001 From: SungWan Kim Date: Fri, 26 Apr 2013 16:40:48 +0900 Subject: [PATCH] Resolve date bug on ListView. Change-Id: I07725639cc368f380d3aba166ee794dbea9458f1 Signed-off-by: SungWan Kim --- src/ClEventDeleterForm.cpp | 28 ++++++++++++++++++++++++++++ src/ClEventListPresentationModel.cpp | 8 ++++++-- src/ClListPanel.cpp | 28 ++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/ClEventDeleterForm.cpp b/src/ClEventDeleterForm.cpp index fa9dd8e..fcff4dd 100755 --- a/src/ClEventDeleterForm.cpp +++ b/src/ClEventDeleterForm.cpp @@ -401,6 +401,19 @@ EventDeleterForm::CreateItem(int groupIndex, int itemIndex, int itemWidth) pItem->AddElement(Rectangle(LEFT_MARGIN, 0, itemWidth - TOTAL_MARGIN, H_ITEM) , ID_LIST_ITEM_BEFORE_AFTER, string, FONT_SIZE_EVENT_SUB_LIST , Color(COLOR_TOP_BOTTOM_ITEM_TEXT), Color(COLOR_ITEM_TEXT_PRESSED), Color(COLOR_ITEM_TEXT_PRESSED)); + + if (groupIndex == 0) + { + DateTime minDateTime = Calendarbook::GetMinDateTime(); + minDateTime.AddYears(1); + __pGroupedListViewDeleteList->SetItemEnabled(groupIndex, itemIndex, __pPm->GetViewMinRange() > minDateTime); + } + else + { + DateTime maxDateTime = Calendarbook::GetMaxDateTime(); + maxDateTime.AddYears(-1); + __pGroupedListViewDeleteList->SetItemEnabled(groupIndex, itemIndex, __pPm->GetViewMaxRange() < maxDateTime); + } return pItem; } else @@ -408,6 +421,7 @@ EventDeleterForm::CreateItem(int groupIndex, int itemIndex, int itemWidth) groupIndex -= TOP_BOTTOM_ITEM_COUNT; } } + __pGroupedListViewDeleteList->SetItemEnabled(groupIndex, itemIndex, true); const CalEventInstance* pEvent = __pPm->GetEventWithWholeIndex(groupIndex, itemIndex); TryReturn((pEvent != null), null, "[E_SYSTEM] Unable to get event instance."); @@ -468,6 +482,12 @@ EventDeleterForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, i DateTime startDate = __pPm->GetDateTimeFromGroupIndex(0); DateTime minRange = __pPm->GetViewMinRange(); minRange.AddMonths(PREVIOUS_DATE); + DateTime minDateTime = Calendarbook::GetMinDateTime(); + minDateTime.AddYears(1); + if (minRange < minDateTime) + { + minRange = minDateTime; + } __pPm->SetViewRange(minRange, __pPm->GetViewMaxRange()); __pPm->SetViewType(VIEW_TYPE_LIST); @@ -503,6 +523,12 @@ EventDeleterForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, i int prevGroupCount = __pPm->GetWholeDayCount(); DateTime maxRange = __pPm->GetViewMaxRange(); maxRange.AddMonths(NEXT_DATE); + DateTime maxDateTime = Calendarbook::GetMaxDateTime(); + maxDateTime.AddYears(-1); + if (maxRange > maxDateTime) + { + maxRange = maxDateTime; + } __pPm->SetViewRange(__pPm->GetViewMinRange(), maxRange); __pPm->SetViewType(VIEW_TYPE_LIST); @@ -857,11 +883,13 @@ EventDeleterForm::UpdateSelectedLabel(void) int groupCount = GetGroupCount(); if (groupCount == 0 || (groupCount == 1 && __pPm->GetEventWithWholeIndex(0, 0) == null)) { + AppLogDebug("Select button enable."); __pSelectAll->SetEnabled(false); __pSelectBeforeToday->SetEnabled(false); } else { + AppLogDebug("Select button disable."); __pSelectAll->SetEnabled(true); __pSelectBeforeToday->SetEnabled(true); } diff --git a/src/ClEventListPresentationModel.cpp b/src/ClEventListPresentationModel.cpp index 67179b9..3a9afa0 100644 --- a/src/ClEventListPresentationModel.cpp +++ b/src/ClEventListPresentationModel.cpp @@ -638,8 +638,12 @@ EventListPresentationModel::SetTodayToCurrentDate(void) void EventListPresentationModel::SetViewRange(const DateTime& minRange, const DateTime& maxRange) { - __minRangeOfView = minRange; - __maxRangeOfView = maxRange; + DateTime minDateTime = Calendarbook::GetMinDateTime(); + minDateTime.AddYears(1); + __minRangeOfView = (minRange > minDateTime) ? minRange : minDateTime; + DateTime maxDateTime = Calendarbook::GetMaxDateTime(); + maxDateTime.AddYears(-1); + __maxRangeOfView = (maxRange < maxDateTime) ? maxRange : maxDateTime; AdjustEventsList(); } diff --git a/src/ClListPanel.cpp b/src/ClListPanel.cpp index 6f43075..a12905e 100644 --- a/src/ClListPanel.cpp +++ b/src/ClListPanel.cpp @@ -358,8 +358,22 @@ ListPanel::CreateItem(int groupIndex, int itemIndex, int itemWidth) pItem->AddElement(Rectangle(LEFT_MARGIN, 0, itemWidth - TOTAL_MARGIN, ITEM_HEIGHT) , ID_LIST_ITEM_BEFORE_AFTER, string, EVENT_SUB_LIST_TEXT_SIZE , Color(COLOR_TOP_BOTTOM_ITEM_TEXT), Color(COLOR_ITEM_TEXT_PRESSED), Color(COLOR_ITEM_TEXT_PRESSED)); + + if (groupIndex == 0) + { + DateTime minDateTime = Calendarbook::GetMinDateTime(); + minDateTime.AddYears(1); + __pGroupedListViewEventsList->SetItemEnabled(groupIndex, itemIndex, __pPm->GetViewMinRange() > minDateTime); + } + else + { + DateTime maxDateTime = Calendarbook::GetMaxDateTime(); + maxDateTime.AddYears(-1); + __pGroupedListViewEventsList->SetItemEnabled(groupIndex, itemIndex, __pPm->GetViewMaxRange() < maxDateTime); + } return pItem; } + __pGroupedListViewEventsList->SetItemEnabled(groupIndex, itemIndex, true); const CalEventInstance* pEvent = __pPm->GetEventWithWholeIndex(groupIndex - TOP_BOTTOM_ITEM_COUNT, itemIndex); if (pEvent == null) @@ -440,6 +454,13 @@ ListPanel::OnGroupedListViewItemStateChanged(GroupedListView& listView, { DateTime minRange = __pPm->GetViewMinRange(); minRange.AddMonths(PREVIOUS_DATE); + DateTime minDateTime = Calendarbook::GetMinDateTime(); + minDateTime.AddYears(1); + if (minRange < minDateTime) + { + minRange = minDateTime; + } + __pPm->SetViewType(VIEW_TYPE_LIST); __pPm->SetViewRange(minRange, __pPm->GetViewMaxRange()); @@ -450,6 +471,13 @@ ListPanel::OnGroupedListViewItemStateChanged(GroupedListView& listView, { DateTime maxRange = __pPm->GetViewMaxRange(); maxRange.AddMonths(NEXT_DATE); + DateTime maxDateTime = Calendarbook::GetMaxDateTime(); + maxDateTime.AddYears(-1); + if (maxRange > maxDateTime) + { + maxRange = maxDateTime; + } + __pPm->SetViewType(VIEW_TYPE_LIST); __pPm->SetViewRange(__pPm->GetViewMinRange(), maxRange); -- 2.7.4