From 77df59046714a9659a05aac3849f63ca43ebc9b3 Mon Sep 17 00:00:00 2001 From: Kavindra Devi Palaraja Date: Wed, 10 Jun 2009 17:06:25 +0200 Subject: Doc - More on Part 5 RevBy: TrustMe --- doc/examples/addressbook-sdk/part5/addressbook.cpp | 27 ++++++++++++++++++++++ doc/examples/addressbook-sdk/part5/addressbook.h | 4 ++++ doc/examples/addressbook-sdk/part5/finddialog.cpp | 23 ++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/doc/examples/addressbook-sdk/part5/addressbook.cpp b/doc/examples/addressbook-sdk/part5/addressbook.cpp index 5509ff4cb1..e14d95026f 100644 --- a/doc/examples/addressbook-sdk/part5/addressbook.cpp +++ b/doc/examples/addressbook-sdk/part5/addressbook.cpp @@ -41,6 +41,11 @@ AddressBook::AddressBook(QWidget *parent) removeButton = ui->removeButton; removeButton->setEnabled(false); + findButton = new QPushButton; + findButton = ui->findButton; + + dialog = new FindDialog; + connect(addButton, SIGNAL(clicked()), this, SLOT(addContact())); connect(submitButton, SIGNAL(clicked()), this, @@ -55,6 +60,8 @@ AddressBook::AddressBook(QWidget *parent) SLOT(editContact())); connect(removeButton, SIGNAL(clicked()), this, SLOT(removeContact())); + connect(findButton, SIGNAL(clicked()), this, + SLOT(findContact())); setWindowTitle(tr("Simple Address Book")); } @@ -235,3 +242,23 @@ void AddressBook::updateInterface(Mode mode) break; } } + +void AddressBook::findContact() +{ + dialog->show(); + + if (dialog->exec() == QDialog::Accepted) { + QString contactName = dialog->getFindText(); + + if (contacts.contains(contactName)) { + nameLine->setText(contactName); + addressText->setText(contacts.value(contactName)); + } else { + QMessageBox::information(this, tr("Contact Not Found"), + tr("Sorry, \"%1\" is not in your address book.").arg(contactName)); + return; + } + } + + updateInterface(NavigationMode); +} diff --git a/doc/examples/addressbook-sdk/part5/addressbook.h b/doc/examples/addressbook-sdk/part5/addressbook.h index 7958cb69f6..9bc1f75ba3 100644 --- a/doc/examples/addressbook-sdk/part5/addressbook.h +++ b/doc/examples/addressbook-sdk/part5/addressbook.h @@ -6,6 +6,7 @@ #include #include #include +#include "finddialog.h" namespace Ui @@ -30,6 +31,7 @@ public slots: void removeContact(); void next(); void previous(); + void findContact(); private: Ui::AddressBook *ui; @@ -42,6 +44,7 @@ private: QPushButton *removeButton; QPushButton *nextButton; QPushButton *previousButton; + QPushButton *findButton; QLineEdit *nameLine; QTextEdit *addressText; @@ -49,6 +52,7 @@ private: QString oldName; QString oldAddress; Mode currentMode; + FindDialog *dialog; }; #endif // ADDRESSBOOK_H diff --git a/doc/examples/addressbook-sdk/part5/finddialog.cpp b/doc/examples/addressbook-sdk/part5/finddialog.cpp index 15002d62f3..89ee5e083a 100644 --- a/doc/examples/addressbook-sdk/part5/finddialog.cpp +++ b/doc/examples/addressbook-sdk/part5/finddialog.cpp @@ -6,6 +6,17 @@ FindDialog::FindDialog(QWidget *parent) : m_ui(new Ui::FindDialog) { m_ui->setupUi(this); + lineEdit = new QLineEdit; + lineEdit = m_ui->lineEdit; + + findButton = new QPushButton; + findButton = m_ui->findButton; + + findText = ""; + + connect(findButton, SIGNAL(clicked()), this, SLOT(findClicked())); + + setWindowTItle(tr("Find a Contact")); } FindDialog::~FindDialog() @@ -15,8 +26,20 @@ FindDialog::~FindDialog() void FindDialog::findClicked() { + QString text = lineEdit->text(); + + if (text.isEmpty()) { + QMessageBox::information(this, tr("Empty Field"), + tr("Please enter a name.")); + return; + } else { + findText = text; + lineEdit->clear(); + hide(); + } } QString FindDialog::getFindText() { + return findText; } -- cgit v1.2.1