--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/notes/notesui/notesplugins/noteseditorplugin/src/noteseditorplugin.cpp Mon Jun 28 15:22:02 2010 +0530
@@ -0,0 +1,188 @@
+/*
+* 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 of NotesEditorPlugin class.
+*
+*/
+
+// System includes.
+#include <noteseditorinterface.h>
+#include <AgendaUtil>
+#include <AgendaEntry>
+
+// User includes.
+#include "noteseditorplugin.h"
+#include "noteseditor.h"
+
+/*!
+ \class NotesEditorPlugin
+
+ NotesEditorPlugin provides QT plugin implementation of NotesEditorInterface.
+ */
+
+/*!
+ \fn void NotesEditorPlugin::editingCompleted(bool status = true)
+
+ This signal is emitted when editing/creation of a note/to-do is completed.
+
+ \param status This indicates whether the note/to-do was saved or not.
+ This will be `true' if the note was saved by the user.
+ false' otherwise.
+ */
+
+
+/*!
+ Constructor.
+
+ \param parent QObject pointer.
+ */
+NotesEditorPlugin::NotesEditorPlugin(QObject *parent)
+{
+ Q_UNUSED(parent)
+}
+
+/*!
+ Destructor.
+ */
+NotesEditorPlugin::~NotesEditorPlugin()
+{
+}
+
+
+/*!
+ Shows the noteseditor. The argument acts as the description for the note.
+
+ \param string reference to file string/buffer.
+ */
+void NotesEditorPlugin::edit(const QString &string, AgendaUtil *agendaUtil)
+{
+ if (!mNotesEditor) {
+ createNotesEditor(agendaUtil);
+ }
+
+ mNotesEditor->edit(string);
+}
+
+/*!
+ Shows the noteseditor by parsing a .vcs which could be of a To-do or a plain
+ .txt file which will be edited as a note.
+
+ \param handle reference to QFile handle.
+ */
+void NotesEditorPlugin::edit(const QFile &handle, AgendaUtil *agendaUtil)
+{
+ if (!mNotesEditor) {
+ createNotesEditor(agendaUtil);
+ }
+
+ mNotesEditor->edit(handle);
+}
+
+/*!
+ Shows the noteseditor, by parsing an AgendaEntry.
+
+ \param entry An object of AgendaEntry.
+ */
+void NotesEditorPlugin::edit(AgendaEntry entry, AgendaUtil *agendaUtil)
+{
+ if (!mNotesEditor) {
+ createNotesEditor(agendaUtil);
+ }
+
+ mNotesEditor->edit(entry);
+}
+
+/*!
+ Shows the noteseditor, by fetching the note using the entry id provided.
+
+ \param id entry id of the note.
+ */
+void NotesEditorPlugin::edit(ulong id, AgendaUtil *agendaUtil)
+{
+ if (!mNotesEditor) {
+ createNotesEditor(agendaUtil);
+ }
+
+ mNotesEditor->edit(id);
+}
+
+/*!
+ Creates a new note or to-do based on the create type.It lanuches the
+ respective editors for editing
+
+ \type type of the editor to be shown for creating new note and new to-do
+ */
+void NotesEditorPlugin::create( NotesEditorInterface::CreateType type,
+ AgendaUtil *agendaUtil)
+{
+ if (!mNotesEditor) {
+ createNotesEditor(agendaUtil);
+ }
+
+ mNotesEditor->create(static_cast<NotesEditor::CreateType>(type));
+}
+
+/*!
+ Closes the notes editor
+
+ \param type Type of the close required.
+ */
+ulong NotesEditorPlugin::close( NotesEditorInterface::CloseType type,
+ AgendaUtil *agendaUtil)
+{
+ if (!mNotesEditor) {
+ createNotesEditor(agendaUtil);
+ }
+
+ return mNotesEditor->close(static_cast<NotesEditor::CloseType>(type));
+}
+
+/*!
+ Creates notes Editor.
+ */
+void NotesEditorPlugin::createNotesEditor(AgendaUtil *agendaUtil)
+{
+ if (agendaUtil) {
+ mNotesEditor = new NotesEditor(agendaUtil, this);
+ } else {
+ mNotesEditor = new NotesEditor(this);
+ }
+
+ if (mNotesEditor) {
+ connect(
+ mNotesEditor, SIGNAL(editingCompleted(bool)),
+ this, SLOT(handleEditingCompleted(bool)));
+ }
+}
+
+/*!
+ Slot to handle editing completed
+ */
+void NotesEditorPlugin::handleEditingCompleted(bool status)
+{
+ // Emits the signal.
+ emit editingCompleted(status);
+
+ // Cleanup.
+ if (mNotesEditor) {
+ mNotesEditor->deleteLater();
+ }
+}
+
+// Exports plugin class NotesEditorPlugin for the target
+// plugin noteseditorplugin.
+Q_EXPORT_PLUGIN2(noteseditorplugin, NotesEditorPlugin)
+
+// End of file --Don't remove this.
+