Resolve some UI issues.
authorSungWan Kim <sw0726.kim@samsung.com>
Mon, 22 Apr 2013 09:44:56 +0000 (18:44 +0900)
committerSungWan Kim <sw0726.kim@samsung.com>
Mon, 22 Apr 2013 09:44:56 +0000 (18:44 +0900)
Change-Id: I69df21b3946e13b5217532fe8bd4c3af7f3adb93
Signed-off-by: SungWan Kim <sw0726.kim@samsung.com>
16 files changed:
inc/ClImportForm.h
inc/ClSettingForm.h
res/screen-size-normal/IDL_GO_TO_DATE_POPUP.xml
src/ClDayPanel.cpp
src/ClEventDeleterForm.cpp
src/ClEventDetailsForm.cpp
src/ClEventEditorForm.cpp
src/ClEventSearcherForm.cpp
src/ClGoToDatePopup.cpp
src/ClImportForm.cpp
src/ClMonthPanel.cpp
src/ClNodes.cpp
src/ClRepeatForm.cpp
src/ClSettingForm.cpp
src/ClTaskDetailsForm.cpp
src/ClYearPanel.cpp

index a56810c..485353b 100644 (file)
@@ -32,6 +32,7 @@ class CalendarSelectorPopup;
 
 class ImportForm
        : public Tizen::Ui::Controls::Form
+       , public virtual Tizen::Base::Runtime::IRunnable
        , public virtual Tizen::Ui::IActionEventListener
        , public virtual Tizen::Ui::Controls::IFormBackEventListener
        , public virtual Tizen::Ui::Controls::IListViewItemEventListener
@@ -48,6 +49,8 @@ public:
        virtual result OnTerminating(void);
        virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
 
+       virtual Tizen::Base::Object* Run(void);
+
        virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
 
        virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
@@ -82,6 +85,9 @@ private:
        Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
        Tizen::Social::Calendarbook* __pCalendarbook;
        CalendarSelectorPopup* __pCalendarSelectorPopup;
+       Tizen::Base::Runtime::Thread* __pThread;
+       Tizen::Ui::Controls::ProgressPopup* __pProgressPopup;
+       Tizen::Social::RecordId __calendarId;
 }; // ImportForm
 
 #endif // _CL_IMPORT_FORM_H_
index 765f6aa..5bd039a 100644 (file)
@@ -96,6 +96,8 @@ private:
        Tizen::Ui::Controls::Label* __pLabelFirstDayOfWeek;
        Tizen::Ui::Controls::Label* __pLabelFirstDayOfWeekExpandIcon;
        CalendarSelectorPopup* __pCalendarSelectorPopup;
+       Tizen::Base::Runtime::Thread* __pThread;
+       Tizen::Ui::Controls::ProgressPopup* __pProgressPopup;
        Tizen::Social::RecordId __exportCalendarId;
        int __descriptionItemHeight;
        bool __isLockTimeZoneSet;
index 793fb10..c34fa63 100644 (file)
@@ -12,8 +12,8 @@
     </Popup>
     <EditDate id="IDC_EDITDATE" parent="IDL_GO_TO_DATE_POPUP">
         <property maxYearRange="9999" minYearRange="1" titleText=""/>
-        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="144" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="" marginLeft="" marginRight="" marginTop="40" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_GO_TO_DATE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="100" y="0"/>
-        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="144" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="" marginLeft="" marginRight="" marginTop="40" mode="Landscape" rightRelation="" rightRelationType="" topRelation="IDL_GO_TO_DATE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="100" y="0"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="144" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="" marginLeft="" marginRight="" marginTop="40" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_GO_TO_DATE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="175" y="0"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="144" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="" marginLeft="" marginRight="" marginTop="40" mode="Landscape" rightRelation="" rightRelationType="" topRelation="IDL_GO_TO_DATE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="175" y="0"/>
     </EditDate>
     <Button id="IDC_BUTTON_DONE" parent="IDL_GO_TO_DATE_POPUP">
         <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK3_DONE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
index abfa094..0b5538e 100644 (file)
@@ -1256,7 +1256,7 @@ DayPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& curre
                        if (date > Calendarbook::GetMaxDateTime())
                        {
                                DateTime minDate = Calendarbook::GetMinDateTime();
-                               date.SetValue(minDate.GetYear(), minDate.GetMonth(), minDate.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(minDate.GetYear() + 1, minDate.GetMonth(), minDate.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->Initialize(Rectangle(0, 0, GetWidth(), GetHeight()), date, *__pPm);
                        break;
@@ -1265,7 +1265,7 @@ DayPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& curre
                        if (date < Calendarbook::GetMinDateTime())
                        {
                                DateTime maxDate = Calendarbook::GetMaxDateTime();
-                               date.SetValue(maxDate.GetYear(), maxDate.GetMonth(), maxDate.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(maxDate.GetYear() - 1, maxDate.GetMonth(), maxDate.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->Initialize(Rectangle(0, 0, GetWidth(), GetHeight()), date, *__pPm);
                        break;
@@ -1382,7 +1382,7 @@ DayPanel::OnPanningAnimationEnded(ViewScrollEffect direction)
                        if (date < Calendarbook::GetMinDateTime())
                        {
                                DateTime maxDate = Calendarbook::GetMaxDateTime();
-                               date.SetValue(maxDate.GetYear(), maxDate.GetMonth(), maxDate.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(maxDate.GetYear() - 1, maxDate.GetMonth(), maxDate.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->SetDate(date);
                        pPanel->RequestRedraw(false);
@@ -1399,7 +1399,7 @@ DayPanel::OnPanningAnimationEnded(ViewScrollEffect direction)
                        if (date > Calendarbook::GetMaxDateTime())
                        {
                                DateTime minDate = Calendarbook::GetMinDateTime();
-                               date.SetValue(minDate.GetYear(), minDate.GetMonth(), minDate.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(minDate.GetYear() + 1, minDate.GetMonth(), minDate.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->SetDate(date);
                        pPanel->RequestRedraw(false);
@@ -1443,7 +1443,7 @@ DayPanel::DrawEvents(void)
                if (nextDate > Calendarbook::GetMaxDateTime())
                {
                        DateTime minDate = Calendarbook::GetMinDateTime();
-                       nextDate.SetValue(minDate.GetYear(), minDate.GetMonth(), minDate.GetDay(), nextDate.GetHour(), nextDate.GetMinute());
+                       nextDate.SetValue(minDate.GetYear() + 1, minDate.GetMonth(), minDate.GetDay(), nextDate.GetHour(), nextDate.GetMinute());
                }
                pNextPanel->SetDate(nextDate);
        }
@@ -1457,7 +1457,7 @@ DayPanel::DrawEvents(void)
                if (prevDate < Calendarbook::GetMinDateTime())
                {
                        DateTime maxDate = Calendarbook::GetMaxDateTime();
-                       prevDate.SetValue(maxDate.GetYear(), maxDate.GetMonth(), maxDate.GetDay(), prevDate.GetHour(), prevDate.GetMinute());
+                       prevDate.SetValue(maxDate.GetYear() - 1, maxDate.GetMonth(), maxDate.GetDay(), prevDate.GetHour(), prevDate.GetMinute());
                }
                pPrevPanel->SetDate(prevDate);
        }
index a4e68cc..a4a1cf1 100755 (executable)
@@ -183,16 +183,23 @@ EventDeleterForm::OnInitializing(void)
 result
 EventDeleterForm::OnTerminating(void)
 {
-       delete __pCalendarbook;
-       delete __pDateFormatter;
-       delete __pTimeFormatter;
-       delete __pTwoButtonPopup;
        if (__pThread != null)
        {
                __pThread->Join();
                delete __pThread;
        }
-       delete __pProgressPopup;
+
+       delete __pCalendarbook;
+       delete __pDateFormatter;
+       delete __pTimeFormatter;
+       if (__pTwoButtonPopup != null)
+       {
+               __pTwoButtonPopup->Destroy();
+       }
+       if (__pProgressPopup != null)
+       {
+               __pProgressPopup->Destroy();
+       }
        __pPm->RemoveCalendarEventChangedEventListener(*this);
 
        return E_SUCCESS;
@@ -244,6 +251,7 @@ EventDeleterForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
                break;
        }
        case IDA_EVENT_DELETER_FORM_DELETE_COMPLETE:
+               __pThread->Join();
                delete __pThread;
                __pThread = null;
                __pProgressPopup->SetShowState(false);
index b73a39b..6f5df43 100644 (file)
@@ -178,10 +178,22 @@ result
 EventDetailsForm::OnTerminating(void)
 {
        delete __pPm;
-       delete __pCalendarSelectorPopup;
-       delete __pSharePopup;
-       delete __pThreeButtonPopup;
-       delete __pTwoButtonPopup;
+       if (__pCalendarSelectorPopup != null)
+       {
+               __pCalendarSelectorPopup->Destroy();
+       }
+       if (__pSharePopup != null)
+       {
+               __pSharePopup->Destroy();
+       }
+       if (__pThreeButtonPopup != null)
+       {
+               __pThreeButtonPopup->Destroy();
+       }
+       if (__pTwoButtonPopup != null)
+       {
+               __pTwoButtonPopup->Destroy();
+       }
        return E_SUCCESS;
 }
 
index bbf7ecb..600caac 100644 (file)
@@ -169,7 +169,10 @@ result
 EventEditorForm::OnTerminating(void)
 {
        delete __pPm;
-       delete __pCalendarSelectorPopup;
+       if (__pCalendarSelectorPopup != null)
+       {
+               __pCalendarSelectorPopup->Destroy();
+       }
        return E_SUCCESS;
 }
 
@@ -1253,7 +1256,7 @@ EventEditorForm::CreateStartTimeItemN(int itemWidth, const DateTime& start, bool
 
        pItem->AddControl(pStartDate);
 
-       pStartDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear(), Calendarbook::GetMaxDateTime().GetYear());
+       pStartDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear() + 1, Calendarbook::GetMaxDateTime().GetYear() - 1);
        pStartDate->SetDate(start);
        pStartDate->AddDateChangeEventListener(*this);
        pItem->SetIndividualSelectionEnabled(pStartDate, true);
@@ -1301,7 +1304,7 @@ EventEditorForm::CreateEndTimeItemN(int itemWidth, const DateTime& end, bool isA
 
        pItem->AddControl(pEndDate);
 
-       pEndDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear(), Calendarbook::GetMaxDateTime().GetYear());
+       pEndDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear() + 1, Calendarbook::GetMaxDateTime().GetYear() - 1);
        pEndDate->SetDate(end);
        pEndDate->AddDateChangeEventListener(*this);
        pItem->SetIndividualSelectionEnabled(pEndDate, true);
index 05238b3..4f4609b 100644 (file)
@@ -118,9 +118,18 @@ EventSearcherForm::OnTerminating(void)
        delete __pPm;
        delete __pContextItem;
        delete __pContextItemNoEdit;
-       delete __pSharePopup;
-       delete __pThreeButtonPopup;
-       delete __pTwoButtonPopup;
+       if (__pSharePopup != null)
+       {
+               __pSharePopup->Destroy();
+       }
+       if (__pThreeButtonPopup != null)
+       {
+               __pThreeButtonPopup->Destroy();
+       }
+       if (__pTwoButtonPopup != null)
+       {
+               __pTwoButtonPopup->Destroy();
+       }
        return E_SUCCESS;
 }
 
index f2af2bd..cc65c8d 100644 (file)
@@ -50,7 +50,7 @@ GoToDatePopup::OnInitializing(void)
 {
        __pEditDate = dynamic_cast<EditDate*>(GetControl(L"IDC_EDITDATE"));
        AppAssertf(__pEditDate != null, "[E_FAILURE] Unable to get button.");
-       __pEditDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear(), Calendarbook::GetMaxDateTime().GetYear());
+       __pEditDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear() + 1, Calendarbook::GetMaxDateTime().GetYear() - 1);
        __pEditDate->SetDate(__date);
 
        Locales::DateTimeFormatter* pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_DEFAULT);
index 41b6783..3557b12 100644 (file)
@@ -29,6 +29,7 @@
 using namespace Tizen;
 using namespace Tizen::Base;
 using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
 using namespace Tizen::Graphics;
 using namespace Tizen::Social;
 using namespace Tizen::Ui;
@@ -37,6 +38,7 @@ using namespace Tizen::Ui::Scenes;
 
 static const int IDA_IMPORT_FORM_SELECT_ALL = 90001;
 static const int IDA_IMPORT_FORM_ADD_TO_CALENDAR = 90010;
+static const int IDA_IMPORT_FORM_ADD_COMPLETE = 90020;
 
 
 ImportForm::ImportForm(void)
@@ -47,6 +49,9 @@ ImportForm::ImportForm(void)
        , __pTimeFormatter(null)
        , __pCalendarbook(null)
        , __pCalendarSelectorPopup(null)
+       , __pThread(null)
+       , __pProgressPopup(null)
+       , __calendarId(INVALID_RECORD_ID)
 {
 }
 
@@ -93,12 +98,25 @@ ImportForm::OnInitializing(void)
 result
 ImportForm::OnTerminating(void)
 {
+       if (__pThread != null)
+       {
+               __pThread->Join();
+               delete __pThread;
+       }
+
        delete __pList;
        delete __pDateTimeFormatter;
        delete __pDateFormatter;
        delete __pTimeFormatter;
        delete __pCalendarbook;
-       delete __pCalendarSelectorPopup;
+       if (__pCalendarSelectorPopup != null)
+       {
+               __pCalendarSelectorPopup->Destroy();
+       }
+       if (__pProgressPopup != null)
+       {
+               __pProgressPopup->Destroy();
+       }
        return E_SUCCESS;
 }
 
@@ -110,75 +128,52 @@ ImportForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
        case IDA_CALENDAR_SELECTOR_POPUP_DONE:
                if (pArgs != null)
                {
-                       RecordId calendarId = static_cast<Integer*>(pArgs->GetAt(0))->value;
-                       Calendar* pCalendar = __pCalendarbook->GetCalendarN(calendarId);
-                       if (pCalendar != null)
+                       __calendarId = static_cast<Integer*>(pArgs->GetAt(0))->value;
+
+                       if (__pThread != null)
                        {
-                               IEnumerator* pEnum = __pList->GetEnumeratorN();
-                               int index = 0;
-                               if ((pCalendar->GetItemType() & CALENDAR_ITEM_TYPE_EVENT_ONLY) != 0)
-                               {
-                                       while (pEnum->MoveNext() == E_SUCCESS)
-                                       {
-                                               if (__pListViewContents->IsItemChecked(index) == true)
-                                               {
-                                                       CalEvent* pEvent = dynamic_cast<CalEvent*>(pEnum->GetCurrent());
-                                                       if (pEvent != null)
-                                                       {
-                                                               if (pEvent->GetRecordId() == INVALID_RECORD_ID)
-                                                               {
-                                                                       __pCalendarbook->AddEvent(*pEvent, calendarId);
-                                                               }
-                                                               __pListViewContents->SetItemChecked(index, false);
-                                                       }
-                                               }
-                                               ++index;
-                                       }
-                               }
-                               pEnum->Reset();
-                               index = 0;
-                               if ((pCalendar->GetItemType() & CALENDAR_ITEM_TYPE_TODO_ONLY) != 0)
-                               {
-                                       while (pEnum->MoveNext() == E_SUCCESS)
-                                       {
-                                               if (__pListViewContents->IsItemChecked(index) == true)
-                                               {
-                                                       CalTodo* pTodo = dynamic_cast<CalTodo*>(pEnum->GetCurrent());
-                                                       if (pTodo != null)
-                                                       {
-                                                               if (pTodo->GetRecordId() == INVALID_RECORD_ID)
-                                                               {
-                                                                       __pCalendarbook->AddTodo(*pTodo, calendarId);
-                                                               }
-                                                               __pListViewContents->SetItemChecked(index, false);
-                                                       }
-                                               }
-                                               ++index;
-                                       }
-                               }
-                               delete pEnum;
+                               __pThread->Join();
+                               delete __pThread;
                        }
 
-                       if (IsTodoItemChecked() == true)
+                       if (__pProgressPopup == null)
                        {
-                               __pCalendarSelectorPopup->RequestCalendar(CALENDAR_SELECTOR_POPUP_STYLE_TODO, this);
+                               __pProgressPopup = new (std::nothrow) ProgressPopup();
+                               __pProgressPopup->Construct(false, false);
                        }
+                       __pProgressPopup->SetShowState(true);
+                       __pProgressPopup->Show();
 
-                       __pListViewContents->UpdateList();
+                       __pThread = new (std::nothrow) Thread();
+                       __pThread->Construct(*this, Thread::DEFAULT_STACK_SIZE, THREAD_PRIORITY_LOW);
+                       __pThread->Start();
+               }
+               break;
+       case IDA_IMPORT_FORM_ADD_COMPLETE:
+               __pThread->Join();
+               delete __pThread;
+               __pThread = null;
+               __pProgressPopup->SetShowState(false);
 
-                       if (IsNoItemChecked() == true)
-                       {
-                               GetFooter()->SetItemEnabled(0, false);
-                               GetFooter()->Invalidate(true);
-                       }
+               if (IsTodoItemChecked() == true)
+               {
+                       __pCalendarSelectorPopup->RequestCalendar(CALENDAR_SELECTOR_POPUP_STYLE_TODO, this);
+               }
 
-                       if (IsAllItemAdded() == true)
-                       {
-                               GetHeader()->RemoveAllButtons();
-                               GetHeader()->Invalidate(true);
-                               GetFooter()->RemoveAllItems();
-                               GetFooter()->Invalidate(true);
-                       }
+               __pListViewContents->UpdateList();
+
+               if (IsNoItemChecked() == true)
+               {
+                       GetFooter()->SetItemEnabled(0, false);
+                       GetFooter()->Invalidate(true);
+               }
+
+               if (IsAllItemAdded() == true)
+               {
+                       GetHeader()->RemoveAllButtons();
+                       GetHeader()->Invalidate(true);
+                       GetFooter()->RemoveAllItems();
+                       GetFooter()->Invalidate(true);
                }
                break;
        }
@@ -190,6 +185,63 @@ ImportForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
        }
 }
 
+Object*
+ImportForm::Run(void)
+{
+       Calendar* pCalendar = __pCalendarbook->GetCalendarN(__calendarId);
+       if (pCalendar != null)
+       {
+               ArrayList* pList = new (std::nothrow) ArrayList();
+               pList->Construct();
+
+               IEnumerator* pEnum = __pList->GetEnumeratorN();
+               int index = 0;
+               if ((pCalendar->GetItemType() & CALENDAR_ITEM_TYPE_EVENT_ONLY) != 0)
+               {
+                       while (pEnum->MoveNext() == E_SUCCESS)
+                       {
+                               if (__pListViewContents->IsItemChecked(index) == true)
+                               {
+                                       CalEvent* pEvent = dynamic_cast<CalEvent*>(pEnum->GetCurrent());
+                                       if (pEvent != null)
+                                       {
+                                               if (pEvent->GetRecordId() == INVALID_RECORD_ID)
+                                               {
+                                                       __pCalendarbook->AddEvent(*pEvent, __calendarId);
+                                               }
+                                               __pListViewContents->SetItemChecked(index, false);
+                                       }
+                               }
+                               ++index;
+                       }
+               }
+               pEnum->Reset();
+               index = 0;
+               if ((pCalendar->GetItemType() & CALENDAR_ITEM_TYPE_TODO_ONLY) != 0)
+               {
+                       while (pEnum->MoveNext() == E_SUCCESS)
+                       {
+                               if (__pListViewContents->IsItemChecked(index) == true)
+                               {
+                                       CalTodo* pTodo = dynamic_cast<CalTodo*>(pEnum->GetCurrent());
+                                       if (pTodo != null)
+                                       {
+                                               if (pTodo->GetRecordId() == INVALID_RECORD_ID)
+                                               {
+                                                       __pCalendarbook->AddTodo(*pTodo, __calendarId);
+                                               }
+                                               __pListViewContents->SetItemChecked(index, false);
+                                       }
+                               }
+                               ++index;
+                       }
+               }
+               delete pEnum;
+       }
+       SendUserEvent(IDA_IMPORT_FORM_ADD_COMPLETE, null);
+       return null;
+}
+
 void
 ImportForm::OnActionPerformed(const Control& source, int actionId)
 {
index ec311bd..c11682d 100644 (file)
@@ -985,7 +985,7 @@ MonthPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& cur
                        if (date > Calendarbook::GetMaxDateTime())
                        {
                                DateTime minDate = Calendarbook::GetMinDateTime();
-                               date.SetValue(minDate.GetYear(), minDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(minDate.GetYear() + 1, minDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->Initialize(Rectangle(0, Y_CALENDAR, GetWidth(), GetHeight()), date, *__pPm);
                        break;
@@ -994,7 +994,7 @@ MonthPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& cur
                        if (date < Calendarbook::GetMinDateTime())
                        {
                                DateTime maxDate = Calendarbook::GetMaxDateTime();
-                               date.SetValue(maxDate.GetYear(), maxDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(maxDate.GetYear() - 1, maxDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->Initialize(Rectangle(0, Y_CALENDAR, GetWidth(), GetHeight()), date, *__pPm);
                        break;
@@ -1086,7 +1086,7 @@ MonthPanel::OnPanningAnimationEnded(ViewScrollEffect direction)
                        if (date < Calendarbook::GetMinDateTime())
                        {
                                DateTime maxDate = Calendarbook::GetMaxDateTime();
-                               date.SetValue(maxDate.GetYear(), maxDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(maxDate.GetYear() - 1, maxDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->SetDate(date);
                        pPanel->RequestRedraw(false);
@@ -1106,7 +1106,7 @@ MonthPanel::OnPanningAnimationEnded(ViewScrollEffect direction)
                        if (date > Calendarbook::GetMaxDateTime())
                        {
                                DateTime minDate = Calendarbook::GetMinDateTime();
-                               date.SetValue(minDate.GetYear(), minDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(minDate.GetYear() + 1, minDate.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->SetDate(date);
                        pPanel->RequestRedraw(false);
@@ -1149,7 +1149,7 @@ MonthPanel::DrawCalendar(void)
                if (nextDate > Calendarbook::GetMaxDateTime())
                {
                        DateTime minDate = Calendarbook::GetMinDateTime();
-                       nextDate.SetValue(minDate.GetYear(), minDate.GetMonth(), nextDate.GetDay(), nextDate.GetHour(), nextDate.GetMinute());
+                       nextDate.SetValue(minDate.GetYear() + 1, minDate.GetMonth(), nextDate.GetDay(), nextDate.GetHour(), nextDate.GetMinute());
                }
                pNextPanel->SetDate(nextDate);
                pNextPanel->SetSize(pNextPanel->GetWidth(), pCurrent->GetHeight());
@@ -1163,7 +1163,7 @@ MonthPanel::DrawCalendar(void)
                if (prevDate < Calendarbook::GetMinDateTime())
                {
                        DateTime maxDate = Calendarbook::GetMaxDateTime();
-                       prevDate.SetValue(maxDate.GetYear(), maxDate.GetMonth(), prevDate.GetDay(), prevDate.GetHour(), prevDate.GetMinute());
+                       prevDate.SetValue(maxDate.GetYear() - 1, maxDate.GetMonth(), prevDate.GetDay(), prevDate.GetHour(), prevDate.GetMinute());
                }
                pPrevPanel->SetDate(prevDate);
                pPrevPanel->SetSize(pPrevPanel->GetWidth(), pCurrent->GetHeight());
index e8edcfc..73338c4 100644 (file)
@@ -76,7 +76,6 @@ EventInstanceListNode::~EventInstanceListNode(void)
                {
                        static_cast<EventInstanceNode*>(__pAllDayEvents->GetAt(i))->RemoveRef();
                }
-               __pAllDayEvents->RemoveAll(false);
                delete __pAllDayEvents;
        }
        if (__pEvents != null)
@@ -86,7 +85,6 @@ EventInstanceListNode::~EventInstanceListNode(void)
                {
                        static_cast<EventInstanceNode*>(__pEvents->GetAt(i))->RemoveRef();
                }
-               __pEvents->RemoveAll(false);
                delete __pEvents;
        }
 }
@@ -101,7 +99,7 @@ EventInstanceListNode::Add(EventInstanceNode& eventNode)
                        __pAllDayEvents = new (std::nothrow) ArrayList();
                        __pAllDayEvents->Construct();
                }
-               __pAllDayEvents->Add(eventNode);
+               __pAllDayEvents->Add(&eventNode);
        }
        else
        {
@@ -110,7 +108,7 @@ EventInstanceListNode::Add(EventInstanceNode& eventNode)
                        __pEvents = new (std::nothrow) ArrayList();
                        __pEvents->Construct();
                }
-               __pEvents->Add(eventNode);
+               __pEvents->Add(&eventNode);
        }
 }
 
index 1d4b4b9..807d59a 100644 (file)
@@ -264,7 +264,7 @@ RepeatForm::CreateItem(int sectionIndex, int itemIndex, int itemWidth)
                __pEditDateUntilDate = new (std::nothrow) EditDate();
                __pEditDateUntilDate->Construct(Point(X_REPEAT_UNTIL_TYPE_EDIT_DATE, Y_REPEAT_UNTIL_TYPE_EDIT_DATE));
                pItem->AddControl(__pEditDateUntilDate);
-               __pEditDateUntilDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear(), Calendarbook::GetMaxDateTime().GetYear());
+               __pEditDateUntilDate->SetYearRange(Calendarbook::GetMinDateTime().GetYear() + 1, Calendarbook::GetMaxDateTime().GetYear() - 1);
                __pEditDateUntilDate->SetDate(__untilDate);
                __pEditDateUntilDate->SetEnabled(__repeatUntilType == REPEAT_UNTIL_TYPE_UNTIL_DATE);
                __pEditDateUntilDate->AddDateChangeEventListener(*this);
index b31735f..a11496c 100644 (file)
@@ -31,6 +31,7 @@
 using namespace Tizen::App;
 using namespace Tizen::Base;
 using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
 using namespace Tizen::Graphics;
 using namespace Tizen::Io;
 using namespace Tizen::Social;
@@ -84,6 +85,39 @@ static const unsigned int COLOR_DETAIL02 = Color32<0, 0, 0>::Value;
 static const int FONT_SIZE_DETAIL03 = 32;
 static const unsigned int COLOR_DETAIL03 = Color32<128, 128, 128>::Value;
 
+static const int IDA_SETTING_FORM_PARSE_VCS_FILE_COMPLETE = 90001;
+
+
+class AsyncVcsParser
+       : public Thread
+{
+public:
+       result Initialize(const String& vcsFilePath, Control* pTarget);
+
+       virtual Object* Run(void);
+private:
+       String __path;
+       Control* __pTarget;
+};
+
+result
+AsyncVcsParser::Initialize(const String& vcsFilePath, Control* pTarget)
+{
+       __path = vcsFilePath;
+       __pTarget = pTarget;
+       return Construct(DEFAULT_STACK_SIZE, THREAD_PRIORITY_LOW);
+}
+
+Object*
+AsyncVcsParser::Run(void)
+{
+       if (__pTarget != null)
+       {
+               __pTarget->SendUserEvent(IDA_SETTING_FORM_PARSE_VCS_FILE_COMPLETE, ResourceManager::ParseVcsFileN(__path));
+       }
+       return null;
+}
+
 
 SettingForm::SettingForm(void)
        : __pTableView(null)
@@ -91,6 +125,8 @@ SettingForm::SettingForm(void)
        , __pLabelFirstDayOfWeek(null)
        , __pLabelFirstDayOfWeekExpandIcon(null)
        , __pCalendarSelectorPopup(null)
+       , __pThread(null)
+       , __pProgressPopup(null)
        , __exportCalendarId(INVALID_RECORD_ID)
        , __descriptionItemHeight(-1)
        , __isLockTimeZoneSet(false)
@@ -129,7 +165,20 @@ SettingForm::OnInitializing(void)
 result
 SettingForm::OnTerminating(void)
 {
-       delete __pCalendarSelectorPopup;
+       if (__pThread != null)
+       {
+               __pThread->Join();
+               delete __pThread;
+       }
+
+       if (__pCalendarSelectorPopup != null)
+       {
+               __pCalendarSelectorPopup->Destroy();
+       }
+       if (__pProgressPopup != null)
+       {
+               __pProgressPopup->Destroy();
+       }
        return E_SUCCESS;
 }
 
@@ -179,6 +228,25 @@ SettingForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
                        }
                }
                break;
+       case IDA_SETTING_FORM_PARSE_VCS_FILE_COMPLETE:
+               __pThread->Join();
+               delete __pThread;
+               __pThread = null;
+               __pProgressPopup->SetShowState(false);
+
+               if (pArgs != null && pArgs->GetCount() > 0)
+               {
+                       SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_IMPORT, SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+                       pArgs = null;
+               }
+               else
+               {
+                       MessageBox msgBox;
+                       msgBox.Construct(L"", ResourceManager::GetString(IDS_RSSR_BODY_FAILED_TO_IMPORT_FILE), MSGBOX_STYLE_NONE, MESSAGE_BOX_TIME_OUT);
+                       int modalResult;
+                       msgBox.ShowAndWait(modalResult);
+               }
+               break;
        }
 
        if (pArgs != null)
@@ -239,19 +307,17 @@ SettingForm::OnAppControlCompleteResponseReceived(const AppId& appId, const Stri
                                }
                                else
                                {
-                                       // Import File
-                                       IList* pList = ResourceManager::ParseVcsFileN(static_cast<const String&>(*pPaths->GetAt(0)));
-                                       if (pList != null)
+                                       if (__pThread != null)
                                        {
-                                               SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_IMPORT, SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
-                                       }
-                                       else
-                                       {
-                                               MessageBox msgBox;
-                                               msgBox.Construct(L"", ResourceManager::GetString(IDS_RSSR_BODY_FAILED_TO_IMPORT_FILE), MSGBOX_STYLE_NONE, MESSAGE_BOX_TIME_OUT);
-                                               int modalResult;
-                                               msgBox.ShowAndWait(modalResult);
+                                               __pThread->Join();
+                                               delete __pThread;
                                        }
+
+                                       // Import File
+                                       AsyncVcsParser* pAsyncVcsParser = new (std::nothrow) AsyncVcsParser();
+                                       pAsyncVcsParser->Initialize(static_cast<const String&>(*pPaths->GetAt(0)), this);
+                                       __pThread = pAsyncVcsParser;
+                                       __pThread->Start();
                                }
                        }
                }
@@ -484,6 +550,14 @@ SettingForm::OnSectionTableViewItemStateChanged(SectionTableView& tableView, int
                        {
                        case IMPORT_EXPORT_ITEM_IMPORT:
                        {
+                               if (__pProgressPopup == null)
+                               {
+                                       __pProgressPopup = new (std::nothrow) ProgressPopup();
+                                       __pProgressPopup->Construct(false, false);
+                               }
+                               __pProgressPopup->SetShowState(true);
+                               __pProgressPopup->Show();
+
                                String mimeType = MIME_TYPE_VCALENDAR;
                                AppControl* pApp = AppManager::FindAppControlN(AppId(L"tizen.filemanager"), ID_OPERATION_PICK);
                                if (pApp != null)
index 3b2875b..e2fcdf0 100644 (file)
@@ -148,7 +148,10 @@ result
 TaskDetailsForm::OnTerminating(void)
 {
        delete __pTask;
-       delete __pCalendarSelectorPopup;
+       if (__pCalendarSelectorPopup != null)
+       {
+               __pCalendarSelectorPopup->Destroy();
+       }
        return E_SUCCESS;
 }
 
index 8348514..cd46e17 100644 (file)
@@ -486,7 +486,7 @@ YearPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& curr
                        if (date > Calendarbook::GetMaxDateTime())
                        {
                                DateTime minDate = Calendarbook::GetMinDateTime();
-                               date.SetValue(minDate.GetYear(), date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(minDate.GetYear() + 1, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pCalendarPanel->Initialize(Rectangle(0, 0, GetWidth(), GetHeight()), date,
                                                                                __pBitmapWeekText, __pBitmapWeekdayText, __pBitmapHolidayText, __pBitmapTodayText, __pBitmapFocus);
@@ -496,7 +496,7 @@ YearPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& curr
                        if (date < Calendarbook::GetMinDateTime())
                        {
                                DateTime maxDate = Calendarbook::GetMaxDateTime();
-                               date.SetValue(maxDate.GetYear(), date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(maxDate.GetYear() - 1, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pCalendarPanel->Initialize(Rectangle(0, 0, GetWidth(), GetHeight()), date,
                                                                                __pBitmapWeekText, __pBitmapWeekdayText, __pBitmapHolidayText, __pBitmapTodayText, __pBitmapFocus);
@@ -577,7 +577,7 @@ YearPanel::OnPanningAnimationEnded(ViewScrollEffect direction)
                        if (date < Calendarbook::GetMinDateTime())
                        {
                                DateTime maxDate = Calendarbook::GetMaxDateTime();
-                               date.SetValue(maxDate.GetYear(), date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(maxDate.GetYear() - 1, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->SetDate(date);
                        pPanel->RequestRedraw(false);
@@ -594,7 +594,7 @@ YearPanel::OnPanningAnimationEnded(ViewScrollEffect direction)
                        if (date > Calendarbook::GetMaxDateTime())
                        {
                                DateTime minDate = Calendarbook::GetMinDateTime();
-                               date.SetValue(minDate.GetYear(), date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                               date.SetValue(minDate.GetYear() + 1, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                        }
                        pPanel->SetDate(date);
                        pPanel->RequestRedraw(false);
@@ -797,7 +797,7 @@ YearPanel::Update(bool draw)
                if (date > Calendarbook::GetMaxDateTime())
                {
                        DateTime minDate = Calendarbook::GetMinDateTime();
-                       date.SetValue(minDate.GetYear(), date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                       date.SetValue(minDate.GetYear() + 1, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                }
                pNext->SetDate(date);
        }
@@ -810,7 +810,7 @@ YearPanel::Update(bool draw)
                if (date < Calendarbook::GetMinDateTime())
                {
                        DateTime maxDate = Calendarbook::GetMaxDateTime();
-                       date.SetValue(maxDate.GetYear(), date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
+                       date.SetValue(maxDate.GetYear() - 1, date.GetMonth(), date.GetDay(), date.GetHour(), date.GetMinute());
                }
                pPreview->SetDate(date);
        }