src/hbwidgets/devicedialogs/hbdevicemessagebox.cpp
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
--- a/src/hbwidgets/devicedialogs/hbdevicemessagebox.cpp	Mon Oct 04 17:49:30 2010 +0300
+++ b/src/hbwidgets/devicedialogs/hbdevicemessagebox.cpp	Mon Oct 18 18:23:13 2010 +0300
@@ -49,10 +49,9 @@
 HbDeviceMessageBoxPrivate::~HbDeviceMessageBoxPrivate()
 {
     TRACE_ENTRY
-    // information/warning dialogs may be left at server when client is deleted. If there are no connected
+    // Dialogs may be left at server when client is deleted. If there are no connected
     // signals, device dialog widget is not deleted but runs at server and is closed by a timeout.
-    if (mProperties[Type].mValue.toInt() != HbMessageBox::MessageTypeQuestion &&
-        q_ptr->receivers(SIGNAL(aboutToClose())) <= 0) {
+    if (q_ptr->receivers(SIGNAL(aboutToClose())) <= 0) {
         mDeviceDialog->disconnect(q_ptr, SLOT(aboutToClose()));
         mDeviceDialog->disconnect(this, SLOT(triggerAction(QVariantMap)));
         if (mUpdateTimerId != 0) {
@@ -365,7 +364,7 @@
         {HbPopup::NoTimeout,0},
         {HbPopup::ConfirmationNoteTimeout,1500},
         {HbPopup::StandardTimeout,3000},
-        {HbPopup::ContextMenuTimeout,6000},
+        {HbPopup::ContextMenuTimeout,6000}
     };
     int count = sizeof(timeoutValues) / sizeof(timeoutValues[0]);
     if (timeout < 0 || timeout >= count) {
@@ -407,14 +406,13 @@
     @stable
     @hbwidgets
     \class HbDeviceMessageBox
-    \brief HbDeviceMessageBox displays a message box on top of any running applications.
+    \brief HbDeviceMessageBox displays a message box on top all applications.
 
-    HbDeviceMessageBox is a device dialog version of HbMessageBox. It displays a message box
-    with text, icon or animation and optional accept and reject buttons. It is not a widget.
-    The message box is displayed by a device dialog service which HbDeviceMessageBox is a
-    client of.
+    HbDeviceMessageBox is a device-dialog version of HbMessageBox. It is a modal
+    dialog and displayed on top all applications by a device-dialog service.
+    HbDeviceMessageBox is a client of the service.
 
-    Device dialogs are shown on top of any running applications and are always modal by nature.
+    For content it provides text, icon or animation and optional accept and reject buttons.
 
     A device message box is lauched by a show(). A new message box is lauched every time show()
     is called. aboutToClose() signal is emitted when the box has closed. There is also syncronous
@@ -441,6 +439,10 @@
     be updated. Information and warning convenience methods return immediately. Question waits for
     a message box to close and is not compatible with gestures.
 
+    If none of HbDeviceMessageBox signals have been connected to, the object can be deleted after
+    show() has been called and device-dialog service takes care showing the message box. If any
+    signals are connected, message box is closed when HbDeviceMessageBox object goes out of scope.  
+
     Four types of message boxes are predefined. The type determines a set of default properties that
     are set on construction. Below is a table listing types and their default properties.
 
@@ -453,12 +455,18 @@
         <tr><td>Question</td><td>Question icon</td><td>"Yes" and "No" buttons</td><td>No timeout</td><td>Button press</td><td>Question sound</td></tr>
     </table>
 
-    In place of an icon, message box may conatain an animation. Supported icon animation formats are:
+    In place of an icon, message box may contain an animation. Supported icon animation formats are:
     - GIF (.gif)
     - MNG (.mng)
     - Frame animations (.axml)
 
-    Sample code:
+    \section _platform_spec Platform-specific implementation notes for HbDeviceNotificationDialog
+
+    \subsection _nonsymbian Non-Symbian
+    Device dialog service is implemented only for the Symbian platform. On other platforms device 
+    message boxes are displayed on client's main window.
+
+    \section _code_samples Sample code
 
     \code
     // Ask from user whether to continue operation or not.
@@ -527,7 +535,7 @@
     msg->show();
     \endcode
 
-    \sa HbMessageBox, HbDialog, HbDeviceDialog
+    \sa HbMessageBox, HbDialog, HbDeviceDialog, CHbDeviceMessageBoxSymbian
 */
 
 /*!
@@ -555,9 +563,10 @@
 */
 
 /*!
-    Constructor.
+    Constructs HbDeviceMessageBox.
+
     \param type Type of the message box.
-    \param parent An optional parameter.
+    \param parent Parent pointer or 0.
 */
 HbDeviceMessageBox::HbDeviceMessageBox(HbMessageBox::MessageBoxType type, QObject *parent) :
     QObject(parent), d_ptr(new HbDeviceMessageBoxPrivate)
@@ -570,10 +579,11 @@
 }
 
 /*!
-    Constructor.
+    Constructs HbDeviceMessageBox.
+
     \param text Message box text.
     \param type Type of the message box.
-    \param parent An optional parameter.
+    \param parent Parent pointer or 0.
 */
 HbDeviceMessageBox::HbDeviceMessageBox(const QString &text, HbMessageBox::MessageBoxType type,
     QObject *parent) : QObject(parent), d_ptr(new HbDeviceMessageBoxPrivate)
@@ -587,7 +597,9 @@
 }
 
 /*!
-    Destructs the class.
+    Destructs HbDeviceMessageBox. The message box launched by show() is closed if aboutToClose()
+    signal is connected to by an application. Otherwise the box is left executing
+    and should close itself by a timeout.
 */
 HbDeviceMessageBox::~HbDeviceMessageBox()
 {
@@ -597,7 +609,8 @@
 }
 
 /*!
-    Shows a message box and returns immediately without waiting for it to close. Closing of the
+    Shows a message box and returns immediately without waiting for it to close. A new message box
+    is launched each time show() is called. Closing of the
     message box is indicated by aboutToClose() signal. Button presses are indicated by
     QAction::triggered() signals. The message box can be updated while showing by property
     setters.
@@ -702,7 +715,7 @@
 
     \param type Message box type.
 
-    \sa setMessageBoxType()
+    \sa messageBoxType(), show()
 */
 void HbDeviceMessageBox::setMessageBoxType(HbMessageBox::MessageBoxType type)
 {
@@ -733,7 +746,7 @@
     eg. HbMessageBox::Yes | HbMessageBox::No. Button flags are scanned starting from lsb.
     First button found goes to accept position and so forth.
 
-    \sa standardButtons()
+    \sa standardButtons(), show(), update()
 */
 void HbDeviceMessageBox::setStandardButtons(HbMessageBox::StandardButtons buttons)
 {
@@ -887,7 +900,7 @@
     \param action Action or null. Ownership does not transfer.
     \param role Selects an action.
 
-    \sa action()
+    \sa action(), show(), update()
 */
 void HbDeviceMessageBox::setAction(QAction *action, ActionRole role)
 {
@@ -906,7 +919,7 @@
 
     \param text Message box text.
 
-    \sa text(), HbMessageBox::setText()
+    \sa text(), show(), update(), HbMessageBox::setText()
 */
 void HbDeviceMessageBox::setText(const QString &text)
 {
@@ -931,7 +944,7 @@
     \param aIconName Icon name. Icon can be from Hb resources or themes. Or can be a file in
     a file system.
 
-    \sa IconName()
+    \sa IconName(), show(), update()
 */
 void HbDeviceMessageBox::setIconName(const QString &iconName)
 {
@@ -955,7 +968,7 @@
 
     \param visible Enables icon visibility.
 
-    \sa iconVisible()
+    \sa iconVisible(), show(), update()
 */
 void HbDeviceMessageBox::setIconVisible(bool visible)
 {
@@ -979,7 +992,7 @@
 
     \param timeout Timeout in milliseconds. 0 denotes no timeout (infinite).
 
-    \sa timeout() setTimeout(HbPopup::DefaultTimeout)
+    \sa timeout(), setTimeout(HbPopup::DefaultTimeout), show(), update()
 */
 void HbDeviceMessageBox::setTimeout(int timeout)
 {
@@ -994,7 +1007,7 @@
 
     \param timeout Timeout as an enumerated constant.
 
-    \sa enum HbPopup::DefaultTimeout timeout() setTimeout(int)
+    \sa enum HbPopup::DefaultTimeout, timeout(), setTimeout(int), show(), update()
 */
 void HbDeviceMessageBox::setTimeout(HbPopup::DefaultTimeout timeout)
 {
@@ -1020,7 +1033,7 @@
 
     \param dismissPolicy Dismiss policy.
 
-    \sa dismissPolicy()
+    \sa dismissPolicy(), show(), update()
 */
 void HbDeviceMessageBox::setDismissPolicy(HbPopup::DismissPolicy dismissPolicy)
 {
@@ -1053,7 +1066,7 @@
 
     \param animationDefinition Path and name of the animation definition file.
 
-    \sa setIcon(), animationDefinition(), HbIconAnimationManager::addDefinitionFile()
+    \sa setIcon(), animationDefinition(), HbIconAnimationManager::addDefinitionFile(), show(), update()
 */
 void HbDeviceMessageBox::setAnimationDefinition(QString &animationDefinition)
 {