From 640278e1d04cf51972720162c836a4cbcfcfbd92 Mon Sep 17 00:00:00 2001 From: Kavindra Devi Palaraja <kavindra.palaraja@nokia.com> Date: Tue, 30 Jun 2009 15:42:17 +0200 Subject: [PATCH] Doc - More of Part 5 and some minor changes to part 2 to ensure that the include statements were explained. Reviewed-By: TrustMe --- doc/addressbook-sdk.qdoc | 38 ++++++++++++++++++ .../addressbook-sdk/part2/addressbook.h | 5 +-- .../addressbook-sdk/part5/finddialog.cpp | 4 ++ .../addressbook-sdk/part5/finddialog.h | 8 +++- ...sbook-tutorial-part5-signals-and-slots.png | Bin 0 -> 5542 bytes 5 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 doc/images/addressbook-tutorial-part5-signals-and-slots.png diff --git a/doc/addressbook-sdk.qdoc b/doc/addressbook-sdk.qdoc index 1974c129ede..3194ad70b2f 100644 --- a/doc/addressbook-sdk.qdoc +++ b/doc/addressbook-sdk.qdoc @@ -315,6 +315,12 @@ \snippet examples/addressbook-sdk/part2/addressbook.h members1 + The Qt types used for our private members, e.g., QPushButton, QLineEdit, + QTextEdit, etc., need to be included with the \c include directive, as + shown below: + + \snippet examples/addressbook-sdk/part2/addressbook.h include + \note The names, e.g., \c addButton etc., correspond to the name of the actual object. You can modify them by double-clicking on their names within \QD's \gui{Object Inspector}. @@ -727,6 +733,7 @@ dialog that can prompt the user for a contact's name. Qt provides QDialog, which we subclass in this chapter, to implement a FindDialog class. + \section1 Designing \c FindDialog #image @@ -743,6 +750,7 @@ in a horizontal layout. Then set a top level layout - either horizontal or vertical. + \section1 Implementing \c FindDialog Let's look at \c{FindDialog}'s header file. Here, we need to provide @@ -751,8 +759,38 @@ \snippet examples/addressbook-sdk/part5/finddialog.h private members + We define a public function, \c getFindText(), to be used by classes that + instantiate \c FindDialog. This function allows the these classes to obtain + the search string entered by the user. A public slot, \c findClicked(), is + also defined to handle the search string when the user clicks the \gui Find + button. + + \snippet examples/addressbook-sdk/part5/finddialog.h getFindText + \dots + \snippet examples/addressbook-sdk/part5/finddialog.h findClicked + + Now, lets look at our constructor in the \c{finddialog.cpp} file. Here, we + set up the private variables, \c lineEdit, \c findButton, and \c findText. + + \snippet examples/addressbook-sdk/part5/finddialog.cpp constructor + + We connect our signals to their respective slots. Notice that + \c{findButton}'s \l{QPushButton:}{clicked()} signal is connected to + \c findClicked() and \l{QDialog::}{accept()}. The \l{QDialog::}{accept()} + slot provided by QDialog hides the dialog and sets the result code to + \l{QDialog::}{Accepted}. We use this function to help \c{AddressBook}'s + \c findContact() function know when the \c FindDialog object has been + closed. We will explain this logic in further detail when discussing the + \c findContact() function. + + \image addressbook-tutorial-part5-signals-and-slots.png + In \c findClicked(), we validate to ensure that the user did not click the + \gui Find button without entering a contact's name. Then, we set + \c findText to the search string, extracted from \c lineEdit. After that, + we clear the contents of \c lineEdit and hide the dialog. + \snippet examples/addressbook-sdk/part5/finddialog.cpp findClicked */ diff --git a/doc/examples/addressbook-sdk/part2/addressbook.h b/doc/examples/addressbook-sdk/part2/addressbook.h index efea5d177b3..69486cb8cf2 100644 --- a/doc/examples/addressbook-sdk/part2/addressbook.h +++ b/doc/examples/addressbook-sdk/part2/addressbook.h @@ -1,13 +1,13 @@ -//! [class definition] #ifndef ADDRESSBOOK_H #define ADDRESSBOOK_H +//! [include] #include <QtGui/QWidget> #include <QtGui/QPushButton> #include <QtGui/QLineEdit> #include <QtGui/QTextEdit> #include <QtGui/QMessageBox> - +//! [include] namespace Ui { @@ -48,4 +48,3 @@ private: }; #endif // ADDRESSBOOK_H -//! [class definition] diff --git a/doc/examples/addressbook-sdk/part5/finddialog.cpp b/doc/examples/addressbook-sdk/part5/finddialog.cpp index 89ee5e083a2..1a464b70903 100644 --- a/doc/examples/addressbook-sdk/part5/finddialog.cpp +++ b/doc/examples/addressbook-sdk/part5/finddialog.cpp @@ -1,6 +1,7 @@ #include "finddialog.h" #include "ui_finddialog.h" +//! [constructor] FindDialog::FindDialog(QWidget *parent) : QDialog(parent), m_ui(new Ui::FindDialog) @@ -18,12 +19,14 @@ FindDialog::FindDialog(QWidget *parent) : setWindowTItle(tr("Find a Contact")); } +//! [constructor] FindDialog::~FindDialog() { delete m_ui; } +//! [findClicked] void FindDialog::findClicked() { QString text = lineEdit->text(); @@ -38,6 +41,7 @@ void FindDialog::findClicked() hide(); } } +//! [findClicked] QString FindDialog::getFindText() { diff --git a/doc/examples/addressbook-sdk/part5/finddialog.h b/doc/examples/addressbook-sdk/part5/finddialog.h index 9df1df89988..aef5aee9fa3 100644 --- a/doc/examples/addressbook-sdk/part5/finddialog.h +++ b/doc/examples/addressbook-sdk/part5/finddialog.h @@ -2,8 +2,8 @@ #define FINDDIALOG_H #include <QtGui/QDialog> -#include <QLineEdit> -#include <QPushButton> +#include <QtGui/QLineEdit> +#include <QtGui/QPushButton> namespace Ui { class FindDialog; @@ -14,10 +14,14 @@ class FindDialog : public QDialog { public: FindDialog(QWidget *parent = 0); ~FindDialog(); +//! [getFindText] QString getFindText(); +//! [getFindText] +//! [findClicked] public slots: void findClicked(); +//! [findClicked] //! [private members] private: diff --git a/doc/images/addressbook-tutorial-part5-signals-and-slots.png b/doc/images/addressbook-tutorial-part5-signals-and-slots.png new file mode 100644 index 0000000000000000000000000000000000000000..1771e7bbbf54d69aed3121adf4a96ff8ec7b6353 GIT binary patch literal 5542 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 TX0{wW{^cx8ZB43-PznD7QY((t literal 0 HcmV?d00001 -- GitLab