[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/korganizer
From:       Sergio Luis Martins <iamsergio () gmail ! com>
Date:       2010-09-18 13:38:50
Message-ID: 20100918133850.199CDAC888 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1176732 by smartins:

FwdPort r1157280 from enterprise to trunk:

Refactoring. Separated the code that changes the item from the code that determines \
the date and date string so it can be reused.

For kolab/issue4203

 M  +0 -1      akonadicollectionview.cpp  
 M  +1 -3      history.h  
 M  +1 -2      koprefsdialog.cpp  
 M  +51 -42    korgac/alarmdialog.cpp  
 M  +10 -1     korgac/alarmdialog.h  
 M  +0 -1      views/todoview/kotodoview.cpp  


--- trunk/KDE/kdepim/korganizer/akonadicollectionview.cpp #1176731:1176732
@@ -61,7 +61,6 @@
 #include <akonadi/entitydisplayattribute.h>
 #include <akonadi/agenttypedialog.h>
 #include <akonadi/agentinstancewidget.h>
-#include <akonadi/agentmanager.h>
 #include <akonadi/agentinstancecreatejob.h>
 #include <akonadi/agentfilterproxymodel.h>
 #include <akonadi/control.h>
--- trunk/KDE/kdepim/korganizer/history.h #1176731:1176732
@@ -24,14 +24,12 @@
 #ifndef KORG_HISTORY_H
 #define KORG_HISTORY_H
 
-#include <kcalcore/incidence.h>
-
 #include <calendarsupport/incidencechanger.h>
 
 #include <Akonadi/Item>
 #include <Akonadi/Collection>
 
-#include <kcalcore/incidence.h>
+#include <KCalCore/Incidence>
 
 #include <QObject>
 #include <QStack>
--- trunk/KDE/kdepim/korganizer/koprefsdialog.cpp #1176731:1176732
@@ -65,7 +65,6 @@
 #include <KUrlRequester>
 #include <KWindowSystem>
 
-#include <QListWidget>
 #include <QBoxLayout>
 #include <QFormLayout>
 #include <QGridLayout>
@@ -482,7 +481,7 @@
       remindersLayout->addWidget( mReminderUnitsCombo, 0, 2 );
 
       QCheckBox *cb = addWidBool( \
CalendarSupport::KCalPrefs::instance()->defaultAudioFileRemindersItem() \
                )->checkBox();
-      cb->setText( QString::null );
+      cb->setText( QString() );
 
       if ( CalendarSupport::KCalPrefs::instance()->audioFilePathItem()->value().isEmpty() \
                ) {
         QString defAudioFile = KGlobal::dirs()->findResourceDir( "sound", \
                "KDE-Sys-Warning.ogg");
--- trunk/KDE/kdepim/korganizer/korgac/alarmdialog.cpp #1176731:1176732
@@ -300,54 +300,23 @@
   item->mTrigger = KDateTime::currentLocalDateTime();
   item->mDisplayText = displayText;
   item->setText( 0, cleanSummary( incidence->summary() ) );
-  item->setText( 1, QString() );
 
   Event::Ptr event;
   Todo::Ptr todo;
-  Alarm::Ptr alarm = incidence->alarms().first();
-  if ( ( event = incidence.dynamicCast<Event>() ) ) {
+
+  QString displayStr;
+  const KDateTime dateTime = triggerDateForIncidence( incidence, reminderAt,
+                                                      displayStr );
+
+  if ( incidence->type() == Incidence::TypeEvent ) {
     item->setIcon( 0, SmallIcon( "view-calendar-day" ) );
-    if ( event->recurs() ) {
-      KDateTime nextStart = event->recurrence()->getNextDateTime(
-        KDateTime( reminderAt, KDateTime::Spec::LocalZone() ) );
-      if ( nextStart.isValid() ) {
-        item->mHappening = nextStart.toLocalZone();
-        item->setText( 1, KGlobal::locale()->formatDateTime( nextStart.toLocalZone() \
                ) );
-      }
-    }
-    if ( item->text( 1 ).isEmpty() ) {
-      KDateTime kdt;
-      if ( alarm->hasStartOffset() ) {
-        kdt = event->dtStart();
-      } else {
-        kdt = event->dtEnd();
-      }
-      item->mHappening = kdt;
-      item->setText( 1, IncidenceFormatter::dateTimeToString(
-                       kdt, false, true, KDateTime::Spec::LocalZone() ) );
-    }
-  } else if ( ( todo = incidence.dynamicCast<Todo>() ) ) {
+  } else if ( incidence->type() == Incidence::TypeTodo ) {
     item->setIcon( 0, SmallIcon( "view-calendar-tasks" ) );
-    if ( todo->recurs() ) {
-      KDateTime nextStart = todo->recurrence()->getNextDateTime(
-        KDateTime( reminderAt, KDateTime::Spec::LocalZone() ) );
-      if ( nextStart.isValid() ) {
-        item->mHappening = nextStart.toLocalZone();
-        item->setText( 1, KGlobal::locale()->formatDateTime( nextStart.toLocalZone() \
) );  }
-    }
-    if ( item->text( 1 ).isEmpty() ) {
-      KDateTime kdt;
-      if ( alarm->hasStartOffset() && todo->dtStart().isValid() ) {
-        kdt = todo->dtStart();
-      } else {
-        kdt = todo->dtDue();
-      }
-      item->mHappening = kdt;
-      item->setText( 1, IncidenceFormatter::dateTimeToString(
-                       kdt, false, true, KDateTime::Spec::LocalZone() ) );
-    }
-  }
+
+  item->mHappening = dateTime;
+  item->setText( 1, displayStr );
+
   item->setText( 2, IncidenceFormatter::dateTimeToString(
                    item->mTrigger, false, true, KDateTime::Spec::LocalZone() ) );
   QString tip =
@@ -861,4 +830,44 @@
   }
 }
 
+/** static */
+KDateTime AlarmDialog::triggerDateForIncidence( const Incidence::Ptr &incidence,
+                                                const QDateTime &reminderAt,
+                                                QString &displayStr )
+{
+  // Will be simplified in trunk, with roles.
+  KDateTime result;
+
+  Alarm::Ptr alarm = incidence->alarms().first();
+
+  if ( incidence->recurs() ) {
+    result = incidence->recurrence()->getNextDateTime(
+      KDateTime( reminderAt, KDateTime::Spec::LocalZone( ) ) );
+
+      displayStr = KGlobal::locale()->formatDateTime( result.toLocalZone() );
+  }
+
+  if ( incidence->type() == Incidence::TypeEvent ) {
+    if ( !result.isValid() ) {
+      Event::Ptr event = incidence.staticCast<Event>();
+      result = alarm->hasStartOffset() ? event->dtStart() :
+                                         event->dtEnd();
+      displayStr = IncidenceFormatter::dateTimeToString( result, false,
+                                                         true,
+                                                         \
KDateTime::Spec::LocalZone() ); +    }
+ } else if ( incidence->type() == Incidence::TypeTodo ) {
+    if ( !result.isValid() ) {
+      Todo::Ptr todo = incidence.staticCast<Todo>() ;
+      result = alarm->hasStartOffset() && todo->dtStart().isValid() ? \
todo->dtStart(): +                                                                    \
todo->dtDue(); +     displayStr = IncidenceFormatter::dateTimeToString( result, \
false, true, +                                                        \
KDateTime::Spec::LocalZone() ); +    }
+  }
+
+  return result;
+}
+
+
 #include "alarmdialog.moc"
--- trunk/KDE/kdepim/korganizer/korgac/alarmdialog.h #1176731:1176732
@@ -26,6 +26,9 @@
 
 #include <KDialog>
 
+#include <KCalCore/Incidence>
+#include <KDateTime>
+
 #include <QPoint>
 #include <QTimer>
 
@@ -54,7 +57,7 @@
   Q_OBJECT
   public:
     explicit AlarmDialog( CalendarSupport::Calendar *calendar, QWidget *parent = 0 \
                );
-    virtual ~AlarmDialog();
+    ~AlarmDialog();
 
     void addIncidence( const Akonadi::Item &incidence, const QDateTime &reminderAt,
                        const QString &displayText );
@@ -88,6 +91,12 @@
     void closeEvent( QCloseEvent * );
 
   private:
+
+
+    static KDateTime triggerDateForIncidence( const KCalCore::Incidence::Ptr &inc,
+                                              const QDateTime &reminderAt,
+                                              QString &displayStr );
+
     bool startKOrganizer();
     ReminderListItem *searchByItem( const Akonadi::Item &incidence );
     void setTimer();
--- trunk/KDE/kdepim/korganizer/views/todoview/kotodoview.cpp #1176731:1176732
@@ -42,7 +42,6 @@
 #include "kotodoviewsortfilterproxymodel.h"
 #include "kotodoviewview.h"
 
-#include <calendarsupport/calendar.h>
 #include <calendarsupport/utils.h>
 #include <calendarsupport/calendar.h>
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic