[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