notes/notesui/notesviewmanager/src/notesviewmanager.cpp
changeset 18 c198609911f9
child 23 fd30d51f876b
--- /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 <qdebug.h>
+#include <qglobal.h>
+#include <QtGui>
+#include <HbMainWindow>
+#include <HbView>
+#include <HbInstance>
+#include <HbListView>
+
+// 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<NotesMainView *> (
+			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<NotesCollectionView *> (
+			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<NotesTodoView *> (
+			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<NotesFavoriteView *> (
+			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<NotesNoteView *> (
+			docLoader->findWidget(NOTES_NOTE_VIEW));
+	// Setup the view.
+	mNoteView->setupView(mAppControllerIf, docLoader);
+
+	qDebug() << "notes: NotesViewManager::loadNoteView <--";
+}
+
+// End of file	--Don't remove this.