diff -r 96907930389d -r 12af337248b1 calendarui/controller/src/calenactionuiutils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/controller/src/calenactionuiutils.cpp Tue Aug 31 15:13:43 2010 +0300 @@ -0,0 +1,118 @@ +/* +* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Implementation of UI utils +* +*/ + +// System Includes +#include +#include +#include +#include +#include +#include +#include + +// User includes +#include "calendarui_debug.h" +#include "calenactionuiutils.h" +#include "calendar.hrh" +#include "hb_calencommands.hrh" +#include "caleninstanceid.h" +#include "CleanupResetAndDestroy.h" +#include "calendateutils.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "calenactionuiutilsTraces.h" +#endif + +// ----------------------------------------------------------------------------- +// CCalenCommonUI::FindPossibleInstanceL +// Finds an instance with the given instance id and instance view. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +AgendaEntry CalenActionUiUtils::findPossibleInstanceL(const TCalenInstanceId& id, + AgendaUtil* agendaUtil ) + { + OstTraceFunctionEntry0( CALENACTIONUIUTILS_FINDPOSSIBLEINSTANCEL_ENTRY ); + + AgendaUtil::FilterFlags filter = + AgendaUtil::FilterFlags(AgendaUtil::IncludeAnniversaries | + AgendaUtil::IncludeAppointments | + AgendaUtil::IncludeEvents | + AgendaUtil::IncludeReminders | + AgendaUtil::IncludeIncompletedTodos); + QList instances = + agendaUtil->createEntryIdListForDay(id.mInstanceTime, filter); + AgendaEntry result; + + // For instances finishing the next day (now possible with unified DateTime editor), + // we have to do our best to match the instance time exactly - otherwise we could + // match the LocalUid to the incorrect instance in a series. + for ( TInt i=0; i < instances.count() && (result.isNull()); ++i ) + { + if( instances[i].id() == id.mEntryLocalUid ) + { + // Check the instance time matches. + if( instances[i].startTime() == id.mInstanceTime ) + { + result = instances[i]; + instances.removeAt(i); + } + } + } + + if( result.isNull() ) + { + // Couldn't match the instance time exactly - just use the instance + // with the same LocalUid as the one we're looking for. + for ( TInt i=0; i < instances.count() && (result.isNull()); ++i ) + { + if( instances[i].id() == id.mEntryLocalUid ) + { + result = instances[i]; + instances.removeAt(i); + } + } + } + + OstTraceFunctionExit0( CALENACTIONUIUTILS_FINDPOSSIBLEINSTANCEL_EXIT ); + return result; + } + + +// ---------------------------------------------------------------------------- +// CalenActionUiUtils::SetToDoCompleteStatusL +// Mark to-do entry as completed or restore a completed to-do and save. +// This is not in the engine layer because it shows an error mesage on failure. +// (other items were commented in a header). +// ---------------------------------------------------------------------------- +// +void CalenActionUiUtils::setToDoCompleteStatus( AgendaUtil* agendaUtil, + AgendaEntry& entry, + const bool status ) + { + OstTraceFunctionEntry0( CALENACTIONUIUTILS_SETTODOCOMPLETESTATUS_ENTRY ); + + ASSERT( !entry.isNull() ); + QDateTime now = QDateTime::currentDateTime(); + + // set as completed or restore and update the entry in the database + agendaUtil->setCompleted(entry, status, now); + + OstTraceFunctionExit0( CALENACTIONUIUTILS_SETTODOCOMPLETESTATUS_EXIT ); + } + +// End of file