From dcda330906b2ce8ae1c289832270e102e6cb3936 Mon Sep 17 00:00:00 2001 From: Kavindra Devi Palaraja <kavindra.palaraja@nokia.com> Date: Fri, 5 Jun 2009 17:57:47 +0200 Subject: [PATCH] Doc - more of part 4, including a screenshot and lots of docs RevBy: TrustMe --- doc/addressbook-sdk.qdoc | 29 +++ .../addressbook-sdk/part3/addressbook.h | 2 - .../addressbook-sdk/part4/addressbook.cpp | 10 +- .../addressbook-sdk/part4/addressbook.h | 12 +- .../addressbook-sdk/part4/addressbook.ui | 194 +++++++++--------- ...book-tutorial-part4-drop-in-gridlayout.png | Bin 0 -> 14518 bytes 6 files changed, 148 insertions(+), 99 deletions(-) create mode 100644 doc/images/addressbook-tutorial-part4-drop-in-gridlayout.png diff --git a/doc/addressbook-sdk.qdoc b/doc/addressbook-sdk.qdoc index 2ca6e9746d1..f7f40121632 100644 --- a/doc/addressbook-sdk.qdoc +++ b/doc/addressbook-sdk.qdoc @@ -575,6 +575,15 @@ \section1 Placing Widgets on the Form + To edit and remove contacts, we need two push buttons. Drag them and name + them accordingly. Their \c objectName properties should be \c editButton + and \c removeButton, respectively. The quickest way to place these two + buttons into our existing layout, is to simply drag and drop them. Use the + screenshot below as a guide: + + \image addressbook-tutorial-part4-drop-in-gridlayout.png + + \section1 The AddressBook Class We update the header file to contain the \c Mode enum: @@ -586,6 +595,26 @@ \snippet examples/addressbook-sdk/part4/addressbook.h slot definition + In order to switch between modes, we introduce the \c updateInterface() + function to control the enabling and disabling of all push buttons. We also + add two new push buttons, \c editButton and \c removeButton, for the edit + and remove functions mentioned earlier. + + \snippet examples/addressbook-sdk/part4/adressbook.h updateInterface + \dots + \snippet examples/addressbook-sdk/part4/addressbook.h members + + Lastly, we declare \c currentMode to keep track of the enum's current mode. + + \snippet examples/addressbook-sdk/part4/addressbook.h current mode + + Let's begin by implementing the mode-changing features of the address book + application. The \c editButton and \c removeButton are extracted and + disabled by default, as the address book starts up with zero contacts in + memory. + + + */ /*! diff --git a/doc/examples/addressbook-sdk/part3/addressbook.h b/doc/examples/addressbook-sdk/part3/addressbook.h index dd18d85512e..7d42d0c0531 100644 --- a/doc/examples/addressbook-sdk/part3/addressbook.h +++ b/doc/examples/addressbook-sdk/part3/addressbook.h @@ -1,4 +1,3 @@ -//! [class definition] #ifndef ADDRESSBOOK_H #define ADDRESSBOOK_H @@ -50,4 +49,3 @@ private: }; #endif // ADDRESSBOOK_H -//! [class definition] diff --git a/doc/examples/addressbook-sdk/part4/addressbook.cpp b/doc/examples/addressbook-sdk/part4/addressbook.cpp index e14c86f4260..7dda52ce0fc 100644 --- a/doc/examples/addressbook-sdk/part4/addressbook.cpp +++ b/doc/examples/addressbook-sdk/part4/addressbook.cpp @@ -31,7 +31,15 @@ AddressBook::AddressBook(QWidget *parent) previousButton = new QPushButton; previousButton = ui->previousButton; - nextButton->setEnabled(false); + previousButton->setEnabled(false); + + editButton = new QPushButton; + editButton = ui->editButton; + editButton->setEnabled(false); + + removeButton = new QPushButton; + removeButton = ui->removeButton; + removeButton->setEnabled(false); connect(addButton, SIGNAL(clicked()), this, SLOT(addContact())); diff --git a/doc/examples/addressbook-sdk/part4/addressbook.h b/doc/examples/addressbook-sdk/part4/addressbook.h index 7bc76f45f73..467932c2640 100644 --- a/doc/examples/addressbook-sdk/part4/addressbook.h +++ b/doc/examples/addressbook-sdk/part4/addressbook.h @@ -1,4 +1,3 @@ -//! [class definition] #ifndef ADDRESSBOOK_H #define ADDRESSBOOK_H @@ -39,20 +38,27 @@ public slots: private: Ui::AddressBook *ui; +//! [updateInterface] + void updateInterface(Mode mode); +//! [updateInterface] QPushButton *addButton; QPushButton *submitButton; QPushButton *cancelButton; +//! [members] + QPushButton *editButton; + QPushButton *removeButton; //! [members] QPushButton *nextButton; QPushButton *previousButton; -//! [members] QLineEdit *nameLine; QTextEdit *addressText; QMap<QString, QString> contacts; QString oldName; QString oldAddress; +//! [current mode] + Mode currentMode; +//! [current mode] }; #endif // ADDRESSBOOK_H -//! [class definition] diff --git a/doc/examples/addressbook-sdk/part4/addressbook.ui b/doc/examples/addressbook-sdk/part4/addressbook.ui index ee9bbe4d65b..44b4940ac98 100644 --- a/doc/examples/addressbook-sdk/part4/addressbook.ui +++ b/doc/examples/addressbook-sdk/part4/addressbook.ui @@ -6,104 +6,112 @@ <rect> <x>0</x> <y>0</y> - <width>600</width> - <height>400</height> + <width>472</width> + <height>294</height> </rect> </property> <property name="windowTitle"> <string>AddressBook</string> </property> - <widget class="QWidget" name="layoutWidget"> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>413</width> - <height>260</height> - </rect> - </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="nameLabel"> - <property name="text"> - <string>Name:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="nameLine"/> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="addressLabel"> - <property name="text"> - <string>Address:</string> - </property> - <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QTextEdit" name="addressText"/> - </item> - <item row="1" column="2"> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QPushButton" name="addButton"> - <property name="text"> - <string>Add</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="submitButton"> - <property name="text"> - <string>Submit</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="cancelButton"> - <property name="text"> - <string>Cancel</string> - </property> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - <item row="2" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QPushButton" name="nextButton"> - <property name="text"> - <string>Previous</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="previousButton"> - <property name="text"> - <string>Next</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="nameLabel"> + <property name="text"> + <string>Name:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="nameLine"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="addressLabel"> + <property name="text"> + <string>Address:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QTextEdit" name="addressText"/> + </item> + <item row="1" column="2"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QPushButton" name="addButton"> + <property name="text"> + <string>Add</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="submitButton"> + <property name="text"> + <string>Submit</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="cancelButton"> + <property name="text"> + <string>Cancel</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="editButton"> + <property name="text"> + <string>Edit</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="removeButton"> + <property name="text"> + <string>Remove</string> + </property> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="2" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QPushButton" name="nextButton"> + <property name="text"> + <string>Previous</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="previousButton"> + <property name="text"> + <string>Next</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + </layout> </widget> <layoutdefault spacing="6" margin="11"/> <resources/> diff --git a/doc/images/addressbook-tutorial-part4-drop-in-gridlayout.png b/doc/images/addressbook-tutorial-part4-drop-in-gridlayout.png new file mode 100644 index 0000000000000000000000000000000000000000..1969294ba14f383a75360ab0b2ecf5e4a365dca9 GIT binary patch literal 14518 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 literal 0 HcmV?d00001 -- GitLab