Modal Dialog with Qt Components on Meego

From Qt Wiki
Revision as of 15:31, 19 March 2015 by AutoSpider (talk | contribs) (Mark Outdated: MeeGo/Harmattan no longer supported)
Jump to navigation Jump to search
IMPORTANT: The content of this page is outdated. Reason: The MeeGo/Harmattan platform is no longer supported. It has been replaced by Tizen.
If you have checked or updated this page and found the content to be suitable, please remove this notice.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

English Български

How to make a Modal Dialog with Qt Components on MeeGo

There is a QML Dialog element in Qt Quick Components in MeeGo 1.2 Harmattan API. But this dialog is not modal - i.e. it can be closed by pressing on any part of the dialog's window, not only on the buttons. Such behavior is not good in some cases - any accidental touch can close the dialog's window. There is no way through the API to make this dialog not respond on background clicks.

Surely we can make such a window ourselves without using Dialog element, but it is not a quick or proper way.

From the Dialog's source it can be discovered that a background click generates a privateClicked signal. Let's disable it by adding 2 lines into Dialog's creation:

 signal privateClicked
 onPrivateClicked: {}

and we get truly modal dialog.

Full example of page with dialog import QtQuick 1.1 import com.nokia.meego 1.0

Page {

QueryDialog {

id: quDialog
signal privateClicked
onPrivateClicked: {}
anchors.centerIn: parent
titleText: "Modal Dialog"
rejectButtonText: "Cancel"
onRejected: { console.log ("Rejected");}
}
Component.onCompleted: quDialog.open()

}