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