From b184c8c3472bdfaf5cc9f27d73f2cbc791caa274 Mon Sep 17 00:00:00 2001
From: Kavindra Devi Palaraja <kavindra.palaraja@nokia.com>
Date: Wed, 3 Jun 2009 14:24:12 +0200
Subject: [PATCH] Fixes:    Doc - finishing part 2, yay ;)

RevBy:    TrustMe
---
 doc/addressbook-sdk.qdoc                      |  53 ++++++++++++++++++
 .../addressbook-sdk/part2/addressbook.cpp     |  49 +++++++++++++++-
 .../addressbook-sdk/part2/addressbook.h       |   2 +
 ...dressbook-tutorial-part2-add-flowchart.png | Bin 0 -> 23533 bytes
 4 files changed, 103 insertions(+), 1 deletion(-)
 create mode 100644 doc/images/addressbook-tutorial-part2-add-flowchart.png

diff --git a/doc/addressbook-sdk.qdoc b/doc/addressbook-sdk.qdoc
index 3d97237e570..643f6d0b7e4 100644
--- a/doc/addressbook-sdk.qdoc
+++ b/doc/addressbook-sdk.qdoc
@@ -364,4 +364,57 @@
     \c submitButton and \c cancelButton; but we disable \c addButton.
 
     \snippet examples/addressbook-sdk/part2/addressbook.cpp addContact
+
+    \section2 The \c{submitContact()} Function
+
+    This function can be divided into three parts:
+
+    \list 1
+        \o  We extract the contact's detail from \c nameLine and \c addressText
+            and store them in QString objects. We also validate to ensure that
+            the user did not click \gui Submit with empty input fields;
+            otherwise, a QMessageBox is displayed to remind the user for a name
+            and address.
+
+            \snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part1
+
+        \o  We then proceed to check if the contact already exists. If it does
+            not exist, we add the contact to \c contacts and we display a
+            QMessageBox to inform the user about this, preventing the user from
+            adding duplicate contacts. Our \c contacts object is based on
+            key-value pairs or name and address, hence, we want to ensure that
+            \e key is unique.
+
+            \snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part2
+
+        \o  Once we have handled both cases mentioned above, we restore the
+            push buttons to their normal state with the following code:
+
+            \snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part3
+    \endlist
+
+    The screenshot below shows the QMessageBox object we use to display
+    information messages to the user.
+
+    # image
+
+    \section2 The \c{cancel()} Function
+
+    This function restores the last displayed contact details and enables
+    \c addButton, as well as hides \c submitButton and \c cancelButton.
+
+    \snippet examples/addressbook-sdk/part2/addressbook.cpp cancel
+
+    The general idea behind adding a contact is to give the user the
+    flexibility to click \gui Submit or \gui Cancel at any time. The flowchart
+    below further explains this concept:
+
+    \image addressbook-tutorial-part2-add-flowchart.png
+
+
+    \section1 Running the Application
+
+    Run your application now. You will be able to add as many unique contacts
+    as you like.
+
 */
diff --git a/doc/examples/addressbook-sdk/part2/addressbook.cpp b/doc/examples/addressbook-sdk/part2/addressbook.cpp
index 1406c3ca72b..06bb6327d5a 100644
--- a/doc/examples/addressbook-sdk/part2/addressbook.cpp
+++ b/doc/examples/addressbook-sdk/part2/addressbook.cpp
@@ -50,7 +50,7 @@ AddressBook::~AddressBook()
 void AddressBook::addContact()
 {
     oldName = nameLine->text();
-    oldAddress = addressTExt->toPlainText();
+    oldAddress = addressText->toPlainText();
 
     nameLine->clear();
     addressText->clear();
@@ -65,10 +65,57 @@ void AddressBook::addContact()
 }
 //! [addContact]
 
+//! [submitContact part1]
 void AddressBook::submitContact()
 {
+    QString name = nameLine->text();
+    QString address = addressText->toPlainText();
+
+    if (name == "" || address == "") {
+        QMessageBox::information(this, tr("Empty Field"),
+            tr("Please enter a name and address."));
+        return;
+    }
+//! [submitContact part1]
+
+//! [submitContact part2]
+    if (!contacts.contains(name)) {
+        contacts.insert(name, address);
+        QMessageBox::information(this, tr("Add Successful"),
+            tr("\"%1\" has been added to your address book.").arg(name));
+        return;
+    } else {
+        QMessageBox::information(this, tr("Add Unsuccessful"),
+            tr("Sorry, \"%1\" is already in your address book.").arg(name));
+        return;
+    }
+//! [submitContact part2]
+
+//! [submitContact part3]
+    if (contacts.isEmpty()) {
+        nameLine->clear();
+        addressText->clear();
+    }
+
+    nameLine->setReadOnly(true);
+    addressText->setReadOnly(true);
+    addButton->setEnabled(true);
+    submitButton->hide();
+    cancelButton->hide();
 }
+//! [submitContact part3]
 
+//! [cancel]
 void AddressBook::cancel()
 {
+    nameLine->setText(oldName);
+    nameLine->setReadOnly(true);
+
+    addressText->setText(oldAddress);
+    addressText->setReadOnly(true);
+
+    addButton->setEnabled(true);
+    submitButton->hide();
+    cancelButton->hide();
 }
+//! [cancel]
diff --git a/doc/examples/addressbook-sdk/part2/addressbook.h b/doc/examples/addressbook-sdk/part2/addressbook.h
index 3021d5b9b09..86cf5b07bd8 100644
--- a/doc/examples/addressbook-sdk/part2/addressbook.h
+++ b/doc/examples/addressbook-sdk/part2/addressbook.h
@@ -6,6 +6,8 @@
 #include <QtGui/QPushButton>
 #include <QtGui/QLineEdit>
 #include <QtGui/QTextEdit>
+#include <QtGui/QMessageBox>
+
 
 namespace Ui
 {
diff --git a/doc/images/addressbook-tutorial-part2-add-flowchart.png b/doc/images/addressbook-tutorial-part2-add-flowchart.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca9af3720d45f9be8806504b04c82a212e9df6ab
GIT binary patch
literal 23533
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

literal 0
HcmV?d00001

-- 
GitLab