[meego-commits] 7560: Changes to Trunk:Handset/meego-handset-calendar

Kaitlin Rupert no_reply at build.meego.com
Thu Sep 16 17:31:54 UTC 2010


Hi,
I have made the following changes to meego-handset-calendar in project Trunk:Handset. Please review and accept ASAP.

Thank You,
Kaitlin Rupert

[This message was auto-generated]

---

Request #7560:

  submit:   devel:ux:handset/meego-handset-calendar(r9) -> Trunk:Handset/meego-handset-calendar


Message:
    * Wed Sep 15 9 2010 Mika Saha <mika.saha at symbio.com> 0.1
- BMC#6746 fixed, event handling corected
- BMC#6762 fixed, AP/PM times set
- Additional fixes:
  Add ability to set an end date for repeating events
  Fix error with 12 hour clock display
  Add some sanity checks to verify valid dates and times
  Fix issue with deleting events

State:   new          2010-09-16T10:31:54 krupert
Comment: None



changes files:
--------------
--- meego-handset-calendar.changes
+++ meego-handset-calendar.changes
@@ -0,0 +1,9 @@
+* Wed Sep 15 9 2010 Mika Saha <mika.saha at symbio.com> 0.1
+- BMC#6746 fixed, event handling corected
+- BMC#6762 fixed, AP/PM times set
+- Additional fixes:
+  Add ability to set an end date for repeating events
+  Fix error with 12 hour clock display
+  Add some sanity checks to verify valid dates and times
+  Fix issue with deleting events
+

new:
----
  12h_clock_patch.patch
  delete_event_fixed.patch
  event_modify_fixed.patch
  mtextedit_usage_fixed.patch
  repeat_related_fixes.patch
  some_sanity_checks_added.patch
  update_fix_and_calendar_item_fix.patch

spec files:
-----------
--- meego-handset-calendar.spec
+++ meego-handset-calendar.spec
@@ -15,6 +15,13 @@
 Source0:    %{name}-%{version}.tar.gz
 Source100:  meego-handset-calendar.yaml
 Patch0:     desktop_file_fixed.patch
+Patch1:     mtextedit_usage_fixed.patch
+Patch2:     repeat_related_fixes.patch
+Patch3:     delete_event_fixed.patch
+Patch4:     12h_clock_patch.patch
+Patch5:     update_fix_and_calendar_item_fix.patch
+Patch6:     event_modify_fixed.patch
+Patch7:     some_sanity_checks_added.patch
 Requires:   kcalcore
 Requires:   mkcal
 Requires:   timed
@@ -40,6 +47,20 @@
 
 # desktop_file_fixed.patch
 %patch0 -p1
+# mtextedit_usage_fixed.patch
+%patch1 -p1
+# repeat_related_fixes.patch
+%patch2 -p1
+# delete_event_fixed.patch
+%patch3 -p1
+# 12h_clock_patch.patch
+%patch4 -p1
+# update_fix_and_calendar_item_fix.patch
+%patch5 -p1
+# event_modify_fixed.patch
+%patch6 -p1
+# some_sanity_checks_added.patch
+%patch7 -p1
 # >> setup
 # << setup
 

other changes:
--------------

++++++ 12h_clock_patch.patch (new)
--- 12h_clock_patch.patch
+++ 12h_clock_patch.patch
+diff -Naur second_patch/comingupviewitemmodel.cpp ampm_patch/comingupviewitemmodel.cpp
+--- second_patch/comingupviewitemmodel.cpp	2010-09-14 09:13:46.000000000 +0300
++++ ampm_patch/comingupviewitemmodel.cpp	2010-09-15 13:18:40.000000000 +0300
+@@ -79,7 +79,7 @@
+ 
+         if ( addEvent ) {
+             modelEventList->append(event);
+-            QString dateString = event->StartDate().toString ( "ddd dd MM hh:mm" );
++            QString dateString = event->StartDate().toString ( "ddd dd MM hh:mm AP" );
+             QString alarmsString("alarmOFF");
+             if ( event->Alarm() ) {
+                 alarmsString = "alarmON";
+diff -Naur second_patch/mcreatenewdialog.cpp ampm_patch/mcreatenewdialog.cpp
+--- second_patch/mcreatenewdialog.cpp	2010-09-14 09:23:00.000000000 +0300
++++ ampm_patch/mcreatenewdialog.cpp	2010-09-15 13:28:19.000000000 +0300
+@@ -19,8 +19,82 @@
+ #include <MButton>
+ #include <MTextEdit>
+ #include <MComboBox>
++#include <QGraphicsLinearLayout>
++
++MAmPmButton::MAmPmButton() : MButton(),
++state(EPm)
++{
++    setText(tr("PM"));
++    connect( this, SIGNAL(clicked()), this, SLOT(changeState()) );
++}
++
++MAmPmButton::~MAmPmButton()
++{
++}
++
++void MAmPmButton::changeState()
++{
++    if (state == EAm )
++    {
++        state = EPm;
++        setText(tr("PM"));
++        return;
++    }
++    if (state == EPm )
++    {
++        state = EAm;
++        setText(tr("AM"));
++    }
++}
++
++QString MAmPmButton::getState()
++{
++    QString ret;
++    if (state == EAm )
++    {
++        ret = QString(tr("AM"));
++    }
++    if (state == EPm )
++    {
++        ret = QString(tr("PM"));
++    }
++    return ret;
++}
++
++void MAmPmButton::setState( buttonState btState )
++{
++    if (btState == EAm )
++    {
++        state = EAm;
++        setText(tr("AM"));
++    }
++    else //if (btState == EPm )
++    {
++        state = EPm;
++        setText(tr("PM"));
++    }
++}
++
++void MAmPmButton::setState( const QString &ampm )
++{
++    if (ampm == "AM" )
++    {
++        state = EAm;
++        setText(tr("AM"));
++    }
++    else if (ampm == "PM" )
++    {
++        state = EPm;
++        setText(tr("PM"));
++    }
++    else
++    {
++
++    }
++}
++
++
+ 
+- #include <QGraphicsLinearLayout>
+ 
+ MCreateNewdialog::MCreateNewdialog( MViewManager* manager, CalendarEvent* eventToEdit ) : MDialog(),
+ viewManager(manager),
+@@ -144,30 +218,48 @@
+     startTimeNameLabel->setText(tr("Time"));
+     stTimeHourEdit = new MTextEdit();
+     stTimeMinEdit = new MTextEdit();
++    startAmPm = new MAmPmButton();
+     stTimeHourEdit->setContentType(M::NumberContentType);
+-    stTimeMinEdit->setContentType(M::NumberContentType);
++    stTimeMinEdit->setContentType(M::NumberContentType);   
+     if ( editEvent ) {
+         QDateTime datetime = editEvent->StartDate();
++        QString	hourStr = datetime.toString ( "hh" );
++        QString	ampm = datetime.toString ( "AP" );
++        int hourInt = hourStr.toInt() % 12;
++        if ( hourInt == 0 )
++        {
++            hourInt = 12;
++        }
+         QTime time = datetime.time();
+         QString hour;
+         QString minute;
+-        hour.setNum( time.hour() );
++        hour.setNum( hourInt );
+         minute.setNum( time.minute() );
+         stTimeHourEdit->setText( hour );
+         stTimeMinEdit->setText( minute );
++        startAmPm->setState( ampm );
+     } else {
+         QDateTime datetime = QDateTime::currentDateTime();
++        QString	hourStr = datetime.toString ( "hh" );
++        QString	ampm = datetime.toString ( "AP" );
++        int hourInt = hourStr.toInt() % 12;
++        if ( hourInt == 0 )
++        {
++            hourInt = 12;
++        }
+         QTime time = datetime.time();
+         QString hour;
+         QString minute;
+-        hour.setNum( time.hour() );
++        hour.setNum( hourInt );
+         minute.setNum( time.minute() );
+         stTimeHourEdit->setText( hour );
+         stTimeMinEdit->setText( minute );
++        startAmPm->setState( ampm );
+     }
+     startDtLinLayout->addItem(startTimeNameLabel);
+     startDtLinLayout->addItem(stTimeHourEdit);
+     startDtLinLayout->addItem(stTimeMinEdit);
++    startDtLinLayout->addItem(startAmPm);
+     mainPolicy->addItem(startDtWidget);
+ 
+     //EEndDate
+@@ -216,30 +308,48 @@
+     endTimeNameLabel->setAlignment(Qt::AlignLeft);
+     endTimeHourEdit = new MTextEdit();
+     endTimeMinEdit = new MTextEdit();
++    endAmPm = new MAmPmButton();
+     endTimeHourEdit->setContentType(M::NumberContentType);
+     endTimeMinEdit->setContentType(M::NumberContentType);
+     if ( editEvent ) {
+         QDateTime datetime = editEvent->EndDate();
++        QString	hourStr = datetime.toString ( "hh" );
++        QString	ampm = datetime.toString ( "AP" );
++        int hourInt = hourStr.toInt() % 12;
++        if ( hourInt == 0 )
++        {
++            hourInt = 12;
++        }
+         QTime time = datetime.time();
+         QString hour;
+         QString minute;
+-        hour.setNum( time.hour() );
++        hour.setNum( hourInt );
+         minute.setNum( time.minute() );
+         endTimeHourEdit->setText( hour );
+         endTimeMinEdit->setText( minute );
++        endAmPm->setState( ampm );
+     } else {
+         QDateTime datetime = QDateTime::currentDateTime().addSecs(30*60);
++        QString	hourStr = datetime.toString ( "hh" );
++        QString	ampm = datetime.toString ( "AP" );
++        int hourInt = hourStr.toInt() % 12;
++        if ( hourInt == 0 )
++        {
++            hourInt = 12;
++        }
+         QTime time = datetime.time();
+         QString hour;
+         QString minute;
+-        hour.setNum( time.hour() );
++        hour.setNum( hourInt );
+         minute.setNum( time.minute() );
+         endTimeHourEdit->setText( hour );
+         endTimeMinEdit->setText( minute );
++        endAmPm->setState( ampm );
+     }
+     endDtLinLayout->addItem(endTimeNameLabel);
+     endDtLinLayout->addItem(endTimeHourEdit);
+     endDtLinLayout->addItem(endTimeMinEdit);
(262 more lines skipped)

++++++ delete_event_fixed.patch (new)
--- delete_event_fixed.patch
+++ delete_event_fixed.patch
+diff -Naur first_patch/mviewmanager.cpp fourth_patch/mviewmanager.cpp
+--- first_patch/mviewmanager.cpp	2010-09-14 09:13:46.000000000 +0300
++++ fourth_patch/mviewmanager.cpp	2010-09-14 14:43:49.000000000 +0300
+@@ -341,6 +341,7 @@
+ 
+ void MViewManager::deleteEvent(CalendarEvent* calendarEventToRemove)
+ {
++    calendarEngine->removeEvent( *calendarEventToRemove );
+     if ( calendarEventToRemove->Repeat() )
+     {
+         for ( int i=0; i<events->count();i++ )
+@@ -370,7 +371,6 @@
+             }
+         }
+     }
+-    calendarEngine->removeEvent( *calendarEventToRemove );
+ }
+ 
+ void MViewManager::addNewCalendarEvent( CalendarEvent* newCalendarEvent )

++++++ event_modify_fixed.patch (new)
--- event_modify_fixed.patch
+++ event_modify_fixed.patch
+diff -Naur update_patch/calengine.cpp event_modify_fix/calengine.cpp
+--- update_patch/calengine.cpp	2010-09-15 10:31:29.000000000 +0300
++++ event_modify_fix/calengine.cpp	2010-09-15 15:23:57.769909761 +0300
+@@ -355,7 +355,7 @@
+     calendar->deleteEvent( ptr );
+     storage->save();
+     calendar->save();
+-    storage->loadNotebookIncidences(notebook->uid());
++    //storage->loadNotebookIncidences(notebook->uid());
+ }
+ 
+ void CalEngine::modifyEvent( CalendarEvent &event )

++++++ meego-handset-calendar.yaml
--- meego-handset-calendar.yaml
+++ meego-handset-calendar.yaml
@@ -10,6 +10,13 @@
 Description: MeeGo Touch Framework based calendar Application
 Patches:
     - desktop_file_fixed.patch
+    - mtextedit_usage_fixed.patch
+    - repeat_related_fixes.patch
+    - delete_event_fixed.patch
+    - 12h_clock_patch.patch
+    - update_fix_and_calendar_item_fix.patch
+    - event_modify_fixed.patch
+    - some_sanity_checks_added.patch
 
 Requires:
     - kcalcore

++++++ mtextedit_usage_fixed.patch (new)
--- mtextedit_usage_fixed.patch
+++ mtextedit_usage_fixed.patch
+diff -Naur first_patch/mcreatenewdialog.cpp second_patch/mcreatenewdialog.cpp
+--- first_patch/mcreatenewdialog.cpp	2010-09-02 11:53:46.000000000 +0300
++++ second_patch/mcreatenewdialog.cpp	2010-09-14 09:23:00.000000000 +0300
+@@ -113,14 +113,26 @@
+     stDtYearEdit->setContentType(M::CustomContentType);
+     if ( editEvent ) {
+         QDate date = editEvent->StartDate().date();
+-        stDtDayEdit->setText( QString(date.day()) );
+-        stDtMonthEdit->setText( QString(date.month()) );
+-        stDtYearEdit->setText( QString(date.year()) );
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        stDtDayEdit->setText( day );
++        stDtMonthEdit->setText( month );
++        stDtYearEdit->setText( year );
+     } else {
+         QDate date = QDate::currentDate();
+-        stDtDayEdit->setText( QString(date.day()) );
+-        stDtMonthEdit->setText( QString(date.month()) );
+-        stDtYearEdit->setText( QString(date.year()) );
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        stDtDayEdit->setText( day );
++        stDtMonthEdit->setText( month );
++        stDtYearEdit->setText( year );
+     }
+     startDtLinLayout->addItem(startDateNameLabel);
+     startDtLinLayout->addItem(stDtDayEdit);
+@@ -137,13 +149,21 @@
+     if ( editEvent ) {
+         QDateTime datetime = editEvent->StartDate();
+         QTime time = datetime.time();
+-        stTimeHourEdit->setText( QString(time.hour()) );
+-        stTimeMinEdit->setText( QString(time.minute()) );
++        QString hour;
++        QString minute;
++        hour.setNum( time.hour() );
++        minute.setNum( time.minute() );
++        stTimeHourEdit->setText( hour );
++        stTimeMinEdit->setText( minute );
+     } else {
+         QDateTime datetime = QDateTime::currentDateTime();
+         QTime time = datetime.time();
+-        stTimeHourEdit->setText( QString(time.hour()) );
+-        stTimeMinEdit->setText( QString(time.minute()) );
++        QString hour;
++        QString minute;
++        hour.setNum( time.hour() );
++        minute.setNum( time.minute() );
++        stTimeHourEdit->setText( hour );
++        stTimeMinEdit->setText( minute );
+     }
+     startDtLinLayout->addItem(startTimeNameLabel);
+     startDtLinLayout->addItem(stTimeHourEdit);
+@@ -164,14 +184,26 @@
+     endDtYearEdit->setContentType(M::NumberContentType);
+     if ( editEvent ) {
+         QDate date = editEvent->EndDate().date();
+-        endDtDayEdit->setText( QString(date.day()) );
+-        endDtMonthEdit->setText( QString(date.month()) );
+-        endDtYearEdit->setText( QString(date.year()) );
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        endDtDayEdit->setText( day );
++        endDtMonthEdit->setText( month );
++        endDtYearEdit->setText( year );
+     } else {
+         QDate date = QDate::currentDate();
+-        endDtDayEdit->setText( QString(date.day()) );
+-        endDtMonthEdit->setText( QString(date.month()) );
+-        endDtYearEdit->setText( QString(date.year()) );
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        endDtDayEdit->setText( day );
++        endDtMonthEdit->setText( month );
++        endDtYearEdit->setText( year );
+     }
+     endDtLinLayout->addItem(endDateNameLabel);
+     endDtLinLayout->addItem(endDtDayEdit);
+@@ -189,13 +221,21 @@
+     if ( editEvent ) {
+         QDateTime datetime = editEvent->EndDate();
+         QTime time = datetime.time();
+-        endTimeHourEdit->setText( QString(time.hour()) );
+-        endTimeMinEdit->setText( QString(time.minute()) );
++        QString hour;
++        QString minute;
++        hour.setNum( time.hour() );
++        minute.setNum( time.minute() );
++        endTimeHourEdit->setText( hour );
++        endTimeMinEdit->setText( minute );
+     } else {
+-        QDateTime datetime = QDateTime::currentDateTime();
++        QDateTime datetime = QDateTime::currentDateTime().addSecs(30*60);
+         QTime time = datetime.time();
+-        endTimeHourEdit->setText( QString(time.hour()) );
+-        endTimeMinEdit->setText( QString(time.minute()) );
++        QString hour;
++        QString minute;
++        hour.setNum( time.hour() );
++        minute.setNum( time.minute() );
++        endTimeHourEdit->setText( hour );
++        endTimeMinEdit->setText( minute );
+     }
+     endDtLinLayout->addItem(endTimeNameLabel);
+     endDtLinLayout->addItem(endTimeHourEdit);
+@@ -276,14 +316,26 @@
+     alarmDtYearEdit->setContentType(M::NumberContentType);
+     if ( editEvent ) {
+         QDate date = editEvent->AlarmDate().date();
+-        alarmDtDayEdit->setText( QString(date.day()) );
+-        alarmDtMonthEdit->setText( QString(date.month()) );
+-        alarmDtYearEdit->setText( QString(date.year()) );
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        alarmDtDayEdit->setText( day );
++        alarmDtMonthEdit->setText( month );
++        alarmDtYearEdit->setText( year );
+     } else {
+         QDate date = QDate::currentDate();
+-        alarmDtDayEdit->setText( QString(date.day()) );
+-        alarmDtMonthEdit->setText( QString(date.month()) );
+-        alarmDtYearEdit->setText( QString(date.year()) );
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        alarmDtDayEdit->setText( day );
++        alarmDtMonthEdit->setText( month );
++        alarmDtYearEdit->setText( year );
+     }
+     alarmDtLinLayout->addItem(alarmDateNameLabel);
+     alarmDtLinLayout->addItem(alarmDtDayEdit);
+@@ -301,13 +353,21 @@
+     if ( editEvent ) {
+         QDateTime datetime = editEvent->AlarmDate();
+         QTime time = datetime.time();
+-        alarmTimeHourEdit->setText( QString(time.hour()) );
+-        alarmTimeMinEdit->setText( QString(time.minute()) );
++        QString hour;
++        QString minute;
++        hour.setNum( time.hour() );
++        minute.setNum( time.minute() );
++        alarmTimeHourEdit->setText( hour );
++        alarmTimeMinEdit->setText( minute );
+     } else {
+-        QDateTime datetime = QDateTime::currentDateTime();
++        QDateTime datetime = QDateTime::currentDateTime().addSecs(-15*60);
+         QTime time = datetime.time();
+-        alarmTimeHourEdit->setText( QString(time.hour()) );
+-        alarmTimeMinEdit->setText( QString(time.minute()) );
++        QString hour;
++        QString minute;
++        hour.setNum( time.hour() );
++        minute.setNum( time.minute() );
++        alarmTimeHourEdit->setText( hour );
++        alarmTimeMinEdit->setText( minute );
+     }
+     alarmDtLinLayout->addItem(alarmTimeNameLabel);
+     alarmDtLinLayout->addItem(alarmTimeHourEdit);

++++++ repeat_related_fixes.patch (new)
--- repeat_related_fixes.patch
+++ repeat_related_fixes.patch
+diff -Naur second_patch/calendarevent.cpp third_patch/calendarevent.cpp
+--- second_patch/calendarevent.cpp	2010-09-14 09:13:45.000000000 +0300
++++ third_patch/calendarevent.cpp	2010-09-14 09:56:22.000000000 +0300
+@@ -25,6 +25,8 @@
+ 
+     repeat          = false;
+ 
++    repeatEndDate   = new QDateTime( startDate->addYears(50) );
++
+     alarm           = qrand()%2;
+     alarmDate       = new QDateTime(startDate->addSecs(-900));
+ 
+@@ -43,6 +45,7 @@
+                               const QDateTime& newEndDate,
+                               bool newRepeat,
+                               int newRepeatType,
++                              const QDateTime& newRepeatEndDate,
+                               bool newAlarm,
+                               const QDateTime& newAlarmDate,
+                               const QString& newNotes,
+@@ -56,6 +59,7 @@
+     endDate         = new QDateTime(newEndDate);
+     repeat          = newRepeat;
+     repeatType      = newRepeatType;
++    repeatEndDate   = new QDateTime(newRepeatEndDate);
+     alarm           = newAlarm;
+     alarmDate       = new QDateTime(newAlarmDate);
+     notes           = new QString(newNotes);
+@@ -75,6 +79,7 @@
+     delete alarmDate;
+     delete notes;
+     delete repeatId;
++    delete repeatEndDate;
+ }
+ 
+ CalendarData* CalendarEvent::Calendar()
+@@ -247,3 +252,17 @@
+ {
+     return calCoreEvent;
+ }
++
++
++void CalendarEvent::SetRepeatEndDate(const QDateTime& newRepeatEndDate)
++{
++    if ( repeatEndDate ) {
++        delete repeatEndDate;
++    }
++    repeatEndDate = new QDateTime(newRepeatEndDate);
++}
++
++QDateTime& CalendarEvent::RepeatEndDate()
++{
++    return *repeatEndDate;
++}
+diff -Naur second_patch/calendarevent.h third_patch/calendarevent.h
+--- second_patch/calendarevent.h	2010-09-14 09:13:45.000000000 +0300
++++ third_patch/calendarevent.h	2010-09-14 09:56:01.000000000 +0300
+@@ -33,6 +33,7 @@
+                   const QDateTime& newEndDate,
+                   bool newRepeat,
+                   int newRepeatType,
++                  const QDateTime& newRepeatEndDate,
+                   bool newAlarm,
+                   const QDateTime& newAlarmDate,
+                   const QString& newNotes,
+@@ -45,6 +46,7 @@
+                   const QDateTime& newEndDate,
+                   bool newRepeat,
+                   int newRepeatType,
++                  const QDateTime& newRepeatEndDate,
+                   bool newAlarm,
+                   const QDateTime& newAlarmDate,
+                   const QString& newNotes,
+@@ -101,6 +103,10 @@
+     */
+     QDateTime& RepeatId();
+     /**
++      QDateTime& RepeatEndDate();
++    */
++    QDateTime& RepeatEndDate();
++    /**
+       bool Alarm();
+     */
+     bool Alarm();
+@@ -159,6 +165,10 @@
+     */
+     void SetRepeatType(int newRepeatType);
+     /**
++      void SetRepeatEndDate(const QDateTime& newRepeatEndDate);
++    */
++    void SetRepeatEndDate(const QDateTime& newRepeatEndDate);
++    /**
+       void SetAlarm(bool newAlarm);
+     */
+     void SetAlarm(bool newAlarm);
+@@ -190,6 +200,7 @@
+     QDateTime*  endDate;
+     bool        repeat;
+     int         repeatType;
++    QDateTime*  repeatEndDate;
+     QDateTime*  repeatId;
+     bool        alarm;
+     QDateTime*  alarmDate;
+diff -Naur second_patch/calengine.cpp third_patch/calengine.cpp
+--- second_patch/calengine.cpp	2010-09-14 09:13:46.000000000 +0300
++++ third_patch/calengine.cpp	2010-09-14 10:01:18.000000000 +0300
+@@ -242,7 +242,6 @@
+     Notebook::Ptr nbPtr = nbList.at( event.CalendarType() );
+     Notebook* nb = nbPtr.data();
+ 
+-
+     newEvent->setAllDay( event.AllDay() );
+ 
+     if ( &event.Description() && event.Description().length() ) {
+@@ -268,11 +267,10 @@
+ 
+     if( event.Repeat() )
+        {
+-        QDate dt = QDate::currentDate();
+-        newRecurrence->setEndDate(dt.addYears(10));
+-           QBitArray *qb = new QBitArray(10);
++        newRecurrence->setEndDate( event.RepeatEndDate().date() );
++        QBitArray *qb = new QBitArray(10);
+ 
+-           switch( event.RepeatType() )
++        switch( event.RepeatType() )
+            {
+            case 1: //once
+                newRecurrence->setDaily(1);
+@@ -368,9 +366,9 @@
+ {
+     int recurrenceType = event->recurrenceType();
+     calEvent->SetRepeat( true );
+-    if ( recurrenceType == 3 ) {
++    if ( recurrenceType == 3 ) { //3 == daily
+         calEvent->SetRepeatType( 2 );
+-    } else if ( recurrenceType == 4 )
++    } else if ( recurrenceType == 4 ) //4 == weekly
+     {
+         QBitArray dayBitArray = event->recurrence()->days();
+         for (int j=0; j<dayBitArray.count();j++)
+@@ -381,6 +379,10 @@
+                 break;
+             }
+         }
++    } else if ( recurrenceType == 0 ) //0 == none
++    {
++        calEvent->SetRepeatType( 0 );
++        calEvent->SetRepeat( false );
+     } else {
+         QBitArray dayBitArray = event->recurrence()->days();
+         if ( dayBitArray.count() > 0) {
+diff -Naur second_patch/mcreatenewdialog.cpp third_patch/mcreatenewdialog.cpp
+--- second_patch/mcreatenewdialog.cpp	2010-09-14 09:23:00.000000000 +0300
++++ third_patch/mcreatenewdialog.cpp	2010-09-14 10:04:27.000000000 +0300
+@@ -287,6 +287,45 @@
+ 
+     mainPolicy->addItem(repeatTypeWidget);
+ 
++    //ERepeatEndDate
++    repeatEndDtWidget = new QGraphicsWidget;
++    QGraphicsLinearLayout* repeatEndDtLinLayout = new QGraphicsLinearLayout(Qt::Horizontal, repeatEndDtWidget);
++    repeatEndDateNameLabel = new MLabel();
++    repeatEndDateNameLabel->setText(tr("Repeat until"));
++    repeatEndDateNameLabel->setAlignment(Qt::AlignLeft);
++    repeatEndDtDayEdit = new MTextEdit();
++    repeatEndDtMonthEdit = new MTextEdit();
++    repeatEndDtYearEdit = new MTextEdit();
++
++    if ( editEvent ) {
++        QDate date = editEvent->EndDate().date();
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        repeatEndDtDayEdit->setText( day );
++        repeatEndDtMonthEdit->setText( month );
++        repeatEndDtYearEdit->setText( year );
++    } else {
++        QDate date = QDate::currentDate().addYears(50);
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        repeatEndDtDayEdit->setText( day );
++        repeatEndDtMonthEdit->setText( month );
++        repeatEndDtYearEdit->setText( year );
++    }
++    repeatEndDtLinLayout->addItem(repeatEndDateNameLabel);
++    repeatEndDtLinLayout->addItem(repeatEndDtDayEdit);
++    repeatEndDtLinLayout->addItem(repeatEndDtMonthEdit);
++    repeatEndDtLinLayout->addItem(repeatEndDtYearEdit);
++    mainPolicy->addItem(repeatEndDtWidget);
++
(76 more lines skipped)

++++++ some_sanity_checks_added.patch (new)
--- some_sanity_checks_added.patch
+++ some_sanity_checks_added.patch
+diff -Naur update_patch/mcreatenewdialog.cpp sanity_added/mcreatenewdialog.cpp
+--- update_patch/mcreatenewdialog.cpp	2010-09-15 13:28:19.000000000 +0300
++++ sanity_added/mcreatenewdialog.cpp	2010-09-15 17:07:04.406207857 +0300
+@@ -21,6 +21,8 @@
+ #include <MComboBox>
+ #include <QGraphicsLinearLayout>
+ 
++#include <MMessageBox>
++
+ MAmPmButton::MAmPmButton() : MButton(),
+ state(EPm)
+ {
+@@ -329,7 +331,7 @@
+         endTimeMinEdit->setText( minute );
+         endAmPm->setState( ampm );
+     } else {
+-        QDateTime datetime = QDateTime::currentDateTime().addSecs(30*60);
++        QDateTime datetime = QDateTime::currentDateTime().addSecs(60*60);
+         QString	hourStr = datetime.toString ( "hh" );
+         QString	ampm = datetime.toString ( "AP" );
+         int hourInt = hourStr.toInt() % 12;
+@@ -479,7 +481,7 @@
+         alarmTimeMinEdit->setText( minute );
+         alarmAmPm->setState( ampm );
+     } else {
+-        QDateTime datetime = QDateTime::currentDateTime().addSecs(-15*60);
++        QDateTime datetime = QDateTime::currentDateTime().addSecs(-30*60);
+         QString	hourStr = datetime.toString ( "hh" );
+         QString	ampm = datetime.toString ( "AP" );
+         int hourInt = hourStr.toInt() % 12;
+@@ -550,6 +552,14 @@
+ 
+ void MCreateNewdialog::dialogAccepted()
+ {
++    if ( !verifyDateTimes() )
++    {
++        MMessageBox *msgBox = new MMessageBox("Check dates/times...");
++        msgBox->exec();
++        delete msgBox;
++        return;
++    }
++
+     if ( editEvent )
+     {
+         QDate startDate( stDtYearEdit->text().toInt(), stDtMonthEdit->text().toInt(), stDtDayEdit->text().toInt() );
+@@ -756,6 +766,116 @@
+     }
+ }
+ 
++bool MCreateNewdialog::verifyDateTimes()
++{
++    bool retVal = true;
++    QDate startDate( stDtYearEdit->text().toInt(), stDtMonthEdit->text().toInt(), stDtDayEdit->text().toInt() );
++    int startHour = stTimeHourEdit->text().toInt();
++    if ( startAmPm->getState() == "PM" )
++    {
++        startHour += 12;
++        if ( startHour == 24 )
++        {
++            startHour = 0;
++        }
++    }
++    QTime startTime( startHour, stTimeMinEdit->text().toInt() );
++    QDateTime startsDT( startDate, startTime );
++
++    QDate endDate( endDtYearEdit->text().toInt(), endDtMonthEdit->text().toInt(), endDtDayEdit->text().toInt() );
++    int endHour = endTimeHourEdit->text().toInt();
++    if ( endAmPm->getState() == "PM" )
++    {
++        endHour += 12;
++        if ( endHour == 24 )
++        {
++            endHour = 0;
++        }
++    }
++    QTime endTime( endHour, endTimeMinEdit->text().toInt() );
++    QDateTime endsDT( endDate, endTime );
++
++    QDate alarmDate( alarmDtYearEdit->text().toInt(), alarmDtMonthEdit->text().toInt(), alarmDtDayEdit->text().toInt() );
++    int alarmHour = alarmTimeHourEdit->text().toInt();
++    if ( alarmAmPm->getState() == "PM" )
++    {
++        alarmHour += 12;
++        if ( alarmHour == 24 )
++        {
++            alarmHour = 0;
++        }
++    }
++    QTime alarmTime( alarmHour, alarmTimeMinEdit->text().toInt() );
++    QDateTime alarmDT( alarmDate, alarmTime );
++
++    QDate repeatEndDate( repeatEndDtDayEdit->text().toInt(), repeatEndDtMonthEdit->text().toInt(), repeatEndDtYearEdit->text().toInt() );
++    QDateTime repeatEndDT( repeatEndDate, QTime::currentTime() );
++
++    if ( startsDT > endsDT )
++    {
++        //set endsDT = startsDT + 60 minutes
++        QDate date = startsDT.date();
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        endDtDayEdit->setText( day );
++        endDtMonthEdit->setText( month );
++        endDtYearEdit->setText( year );
++
++        QDateTime datetime = startsDT.addSecs(60*60);
++        QString	hourStr = datetime.toString ( "hh" );
++        QString	ampm = datetime.toString ( "AP" );
++        int hourInt = hourStr.toInt() % 12;
++        if ( hourInt == 0 )
++        {
++            hourInt = 12;
++        }
++        QTime time = datetime.time();
++        QString hour;
++        QString minute;
++        hour.setNum( hourInt );
++        minute.setNum( time.minute() );
++        endTimeHourEdit->setText( hour );
++        endTimeMinEdit->setText( minute );
++        endAmPm->setState( ampm );
++        retVal = false;
++    }
++    if ( alarmDT >= startsDT )
++    {
++        //set alarmDT = startsDT -15 minutes
++        QDate date = startsDT.date();
++        QString day;
++        QString month;
++        QString year;
++        day.setNum( date.day() );
++        month.setNum( date.month() );
++        year.setNum( date.year() );
++        alarmDtDayEdit->setText( day );
++        alarmDtMonthEdit->setText( month );
++        alarmDtYearEdit->setText( year );
+ 
++        QDateTime datetime = startsDT.addSecs(-30*60);
++        QString	hourStr = datetime.toString ( "hh" );
++        QString	ampm = datetime.toString ( "AP" );
++        int hourInt = hourStr.toInt() % 12;
++        if ( hourInt == 0 )
++        {
++            hourInt = 12;
++        }
++        QTime time = datetime.time();
++        QString hour;
++        QString minute;
++        hour.setNum( hourInt );
++        minute.setNum( time.minute() );
++        alarmTimeHourEdit->setText( hour );
++        alarmTimeMinEdit->setText( minute );
++        alarmAmPm->setState( ampm );
++        retVal = false;
++    }
++    return retVal;
++}
+ 
+ 
+diff -Naur update_patch/mcreatenewdialog.h sanity_added/mcreatenewdialog.h
+--- update_patch/mcreatenewdialog.h	2010-09-15 12:58:43.000000000 +0300
++++ sanity_added/mcreatenewdialog.h	2010-09-15 16:31:39.029131000 +0300
+@@ -78,6 +78,10 @@
+       void updateEvents();
+       */
+     MCreateNewdialog(MViewManager* manager, CalendarEvent* eventToEdit=0);
++    /**
++      bool verifyDateTimes();
++      */
++    bool verifyDateTimes();
+ 
+ public Q_SLOTS:
+     /**

++++++ update_fix_and_calendar_item_fix.patch (new)
--- update_fix_and_calendar_item_fix.patch
+++ update_fix_and_calendar_item_fix.patch
+diff -Naur ampm_patch/mviewmanager.cpp update_patch/mviewmanager.cpp
+--- ampm_patch/mviewmanager.cpp	2010-09-15 14:31:29.205916690 +0300
++++ update_patch/mviewmanager.cpp	2010-09-15 14:27:24.000000000 +0300
+@@ -136,7 +136,7 @@
+         if( isSameDate( date, events->at(i)->StartDate().date()) )
+         {
+             int secsTo = events->at(i)->StartDate().time().secsTo(events->at(i)->EndDate().time());
+-            retVal += secsTo / 3600;
++            retVal += float(secsTo) / float(3600);
+         }
+     }
+     return retVal;
+@@ -394,15 +394,13 @@
+ 
+ void MViewManager::updateEvents()
+ {
+-    MApplicationPage* appPage = pageList[currentViewIndex];
+-    if ( currentViewIndex == EComingUpView ) {
+-        MComingUpView* comingUpView = (MComingUpView*)appPage;
+-        comingUpView->updateEvents();
+-    } else if (currentViewIndex == EThreeDayView) {
+-        MThreeDayView* threedayView = (MThreeDayView*)appPage;
+-        threedayView->updateEvents();
+-    } else {
+-        MMonthView* monthView = (MMonthView*)appPage;
+-        monthView->updateEvents();
+-    }
++    MApplicationPage* appPage1 = pageList[EComingUpView];
++    MComingUpView* comingUpView = (MComingUpView*)appPage1;
++    comingUpView->updateEvents();
++    MApplicationPage* appPage2 = pageList[EThreeDayView];
++    MThreeDayView* threedayView = (MThreeDayView*)appPage2;
++    threedayView->updateEvents();
++    MApplicationPage* appPage3 = pageList[EMonthView];
++    MMonthView* monthView = (MMonthView*)appPage3;
++    monthView->updateEvents();
+ }




More information about the MeeGo-commits mailing list