diff -r f979ecb2b13e -r c198609911f9 notes/notesui/notesviewmanager/src/notesviewmanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notes/notesui/notesviewmanager/src/notesviewmanager.cpp Fri Apr 16 14:57:40 2010 +0300 @@ -0,0 +1,268 @@ +/* +* Copyright (c) 2009 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: Definition file for class NotesDocLoader. +* +*/ + +// System includes +#include +#include +#include +#include +#include +#include +#include + +// User includes +#include "notesviewmanager.h" +#include "notesmainview.h" +#include "notescollectionview.h" +#include "notestodoview.h" +#include "notesfavoriteview.h" +#include "notesnoteview.h" +#include "notesdocloader.h" +#include "notescommon.h" +#include "notesmodel.h" +#include "notessortfilterproxymodel.h" +#include "agendautil.h" + +/*! + \class NotesViewManager + + This is the heart of the notes application. This is responsible for + managing the notes views and owning the agenda interface object. + This also is the source for the notes list model. + */ +/*! + Constructor. + + \param controller A reference to the object of NotesAppController. + */ +NotesViewManager::NotesViewManager( + NotesAppControllerIf &controllerIf, QObject *parent) +:QObject(parent), + mAppControllerIf(controllerIf) +{ + qDebug() << "notes: NotesViewManager::NotesViewManager -->"; + + // The document loader and views. + loadViews(); + + qDebug() << "notes: NotesViewManager::NotesViewManager <--"; +} + +/*! + Destructor. + */ +NotesViewManager::~NotesViewManager() +{ + // No implementation yet +} + +/*! + Switches to view specified by viewId. + + \param viewId View Id. + */ +void NotesViewManager::switchToView(NotesNamespace::NotesViewIds viewId) +{ + HbMainWindow *window = hbInstance->allMainWindows().first(); + + switch (viewId) { + case NotesNamespace::NotesMainViewId: + window->removeView(window->currentView()); + window->addView(mMainView); + window->setCurrentView(mMainView); + break; + + case NotesNamespace::NotesCollectionViewId: + window->removeView(window->currentView()); + window->addView(mCollectionView); + window->setCurrentView(mCollectionView); + break; + + case NotesNamespace::NotesTodoViewId: + window->removeView(window->currentView()); + window->addView(mTodoView); + window->setCurrentView(mTodoView); + break; + + case NotesNamespace::NotesFavoritesViewId: + window->removeView(window->currentView()); + window->addView(mFavoriteView); + window->setCurrentView(mFavoriteView); + break; + + case NotesNamespace::NotesNoteViewId: + window->removeView(window->currentView()); + window->addView(mNoteView); + window->setCurrentView(mNoteView); + break; + + default: + break; + } +} + +/*! + Loads the views from the docml file. + */ +void NotesViewManager::loadViews() +{ + qDebug() << "notes: NotesViewManager::loadViews -->"; + + // Load the main view. + loadNotesMainView(); + // Load the collection view. + loadNotesCollectionView(); + // Load the to-do view. + loadTodoView(); + // Load the favorites view. + loadFavoritesView(); + // Load the recent notes view. + loadNoteView(); + + // Set the main view to the window + hbInstance->allMainWindows().first()->addView(mMainView); + + qDebug() << "notes: NotesViewManager::loadViews <--"; +} + +/*! + Loads the notes main view. + */ +void NotesViewManager::loadNotesMainView() +{ + qDebug() << "notes: NotesViewManager::loadNotesMainView -->"; + + bool loadSuccess; + + // Construct the document loader instance + NotesDocLoader *docLoader = new NotesDocLoader(); + + // Load the application xml. + docLoader->load(NOTES_MAIN_VIEW_XML, &loadSuccess); + Q_ASSERT_X( + loadSuccess, + "notesviewmanager.cpp", + "Unable to load the main view app xml"); + + // Find the main view. + mMainView = static_cast ( + docLoader->findWidget(NOTES_MAIN_VIEW)); + Q_ASSERT_X( + mMainView, "notesviewmanager.cpp", "Unable to find the main view."); + // Setup the view. + mMainView->setupView(mAppControllerIf, docLoader); + + qDebug() << "notes: NotesViewManager::loadNotesMainView <--"; +} + +/*! + Loads the notes collection view. + */ +void NotesViewManager::loadNotesCollectionView() +{ + qDebug("notes: NotesViewManager::loadNotesCollectionView -- Entry"); + + bool loadSuccess; + + // Construct the document loader instance + NotesDocLoader *docLoader = new NotesDocLoader(); + + // Load the application xml. + docLoader->load(NOTES_COLLECTION_VIEW_XML, &loadSuccess); + + // Find the collection view. + mCollectionView = static_cast ( + docLoader->findWidget(NOTES_COLLECTION_VIEW)); + // Setup the view. + mCollectionView->setupView(mAppControllerIf, docLoader); + + qDebug() << "notes: NotesViewManager::loadNotesCollectionView <--"; +} + +/*! + Loads the to-do view. + */ +void NotesViewManager::loadTodoView() +{ + qDebug("notes: NotesViewManager::loadTodoView -->"); + + bool loadSuccess; + + // Construct the document loader instance + NotesDocLoader *docLoader = new NotesDocLoader(); + + // Load the application xml. + docLoader->load(NOTES_TODO_VIEW_XML, &loadSuccess); + + // Find the to-do view. + mTodoView = static_cast ( + docLoader->findWidget(NOTES_TODO_VIEW)); + // Setup the view. + mTodoView->setupView(mAppControllerIf, docLoader); + + qDebug() << "notes: NotesViewManager::loadTodoView <--"; +} + +/*! + Loads the favorites view. + */ +void NotesViewManager::loadFavoritesView() +{ + qDebug("notes: NotesViewManager::loadFavoritesView -->"); + + bool loadSuccess; + + // Construct the document loader instance + NotesDocLoader *docLoader = new NotesDocLoader(); + + // Load the application xml. + docLoader->load(NOTES_FAVORITES_VIEW_XML, &loadSuccess); + + // Find the favorites view. + mFavoriteView = static_cast ( + docLoader->findWidget(NOTES_FAVORITES_VIEW)); + // Setup the view. + mFavoriteView->setupView(mAppControllerIf, docLoader); + + qDebug() << "notes: NotesViewManager::loadFavoritesView <--"; +} + +/*! + Loads the recent notes view. + */ +void NotesViewManager::loadNoteView() +{ + qDebug("notes: NotesViewManager::loadNoteView -->"); + + bool loadSuccess; + + // Construct the document loader instance + NotesDocLoader *docLoader = new NotesDocLoader(); + + // Load the application xml. + docLoader->load(NOTES_NOTE_VIEW_XML, &loadSuccess); + + // Find the note view. + mNoteView = static_cast ( + docLoader->findWidget(NOTES_NOTE_VIEW)); + // Setup the view. + mNoteView->setupView(mAppControllerIf, docLoader); + + qDebug() << "notes: NotesViewManager::loadNoteView <--"; +} + +// End of file --Don't remove this.