aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2012-10-22 13:44:21 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-09 13:33:19 +0100
commitfdcde738e585ea0e9912215901e36590ebba7fdf (patch)
tree951d7e27b9449cf906368ecf43265cf866f2a1f2
parente35c6a788a887d7a85a836041e7d8e9a5ee48c46 (diff)
Examples and fixes for QML Window properties
Setting Window.color in QML takes effect immediately. It was only possible to set the property at startup. Examples demonstrate new Window property features. Change-Id: Ic5b43d0d84371f3fe5c42223ccc98e6de27aed10 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
-rw-r--r--examples/window/window/standalone.qml55
-rw-r--r--examples/window/window/twowindows.qml38
-rw-r--r--src/quick/items/qquickwindow.cpp1
-rw-r--r--tools/qmlscene/main.cpp3
4 files changed, 80 insertions, 17 deletions
diff --git a/examples/window/window/standalone.qml b/examples/window/window/standalone.qml
index 079694cc10..a06db633a7 100644
--- a/examples/window/window/standalone.qml
+++ b/examples/window/window/standalone.qml
@@ -44,13 +44,29 @@ import QtQuick.Window 2.0
Item {
width: 320
height: 240
+ // It's not possible to set an Item's windowTitle. If you want to modify
+ // window properties, you need to explicitly create a Window.
Text {
+ id: text1
anchors.centerIn: parent
text: "First Window"
}
Rectangle {
border.color: "black"
- color: childWindow.visible ? "green" : "yellow"
+ radius: 4
+ anchors.top: text1.bottom
+ anchors.horizontalCenter: text1.horizontalCenter
+ width: 100
+ height: 30
+ TextInput {
+ id: ti1
+ focus: true // but the modal popup will prevent input while it is open
+ anchors.centerIn: parent
+ }
+ }
+ Rectangle {
+ border.color: "black"
+ color: childWindow.visible ? "goldenrod" : "beige"
radius: height / 4
anchors.bottom: parent.bottom
anchors.right: parent.right
@@ -72,16 +88,39 @@ Item {
id: childWindow
width: 320
height: 240
- x: 320
- y: 240
- color: "green"
+ x: 220
+ y: 120
+ color: "beige"
+ title: "Second Window"
+ modality: Qt.ApplicationModal
+ flags: Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint
Text {
+ id: text2
anchors.centerIn: parent
- text: "Second Window"
+ text: "Modal Frameless Stay-on-Top Window"
}
- MouseArea{
- anchors.fill: parent
- onClicked: Qt.quit()
+ Text {
+ anchors.top: parent.top
+ anchors.right: parent.right
+ anchors.margins: 10
+ text: "X"
+ MouseArea{
+ anchors.fill: parent
+ onClicked: childWindow.visible = false
+ }
+ }
+ Rectangle {
+ border.color: "black"
+ radius: 4
+ anchors.top: text2.bottom
+ anchors.horizontalCenter: text2.horizontalCenter
+ width: 100
+ height: 30
+ TextInput {
+ id: ti2
+ focus: true
+ anchors.centerIn: parent
+ }
}
}
}
diff --git a/examples/window/window/twowindows.qml b/examples/window/window/twowindows.qml
index b6e0f8a0ba..345598cf12 100644
--- a/examples/window/window/twowindows.qml
+++ b/examples/window/window/twowindows.qml
@@ -43,27 +43,47 @@ import QtQuick.Window 2.0
QtObject {
property var win1: Window {
- width: 640
- height: 480
+ width: 320
+ height: 240
x: 0
y: 0
visible: true
color: "#ccffff"
+ title: "First Window"
Text {
anchors.centerIn: parent
text: "First Window"
+ Text {
+ id: statusText
+ anchors.top: parent.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: win2.visible = !win2.visible
}
}
property var win2: Window {
- width: 640
- height: 480
- x: 640
- y: 480
+ width: 320
+ height: 240
+ x: 220
+ y: 120
visible: true
color: "green"
- Text {
- anchors.centerIn: parent
- text: "Second Window"
+ title: "Second Window: " + color
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 10
+ Text {
+ anchors.centerIn: parent
+ text: "Second Window"
+ }
+ MouseArea {
+ anchors.fill: parent
+ onClicked: win2.color = "#ffffcc"
+ }
}
+ onVisibleChanged: statusText.text = "second window is " + (visible ? "visible" : "invisible")
}
}
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index 890474a415..b341c6b7df 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -2776,6 +2776,7 @@ void QQuickWindow::setColor(const QColor &color)
d->clearColor = color;
emit colorChanged(color);
+ d->dirtyItem(contentItem());
}
QColor QQuickWindow::color() const
diff --git a/tools/qmlscene/main.cpp b/tools/qmlscene/main.cpp
index 55925a0523..d41ade4a98 100644
--- a/tools/qmlscene/main.cpp
+++ b/tools/qmlscene/main.cpp
@@ -476,6 +476,9 @@ int main(int argc, char ** argv)
if (contentItem) {
qxView = new QQuickView(&engine, NULL);
window = qxView;
+ // Set window default properties; the qml can still override them
+ QString oname = contentItem->objectName();
+ window->setTitle(oname.isEmpty() ? QString::fromLatin1("qmlscene") : QString::fromLatin1("qmlscene: ") + oname);
window->setFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
if (options.resizeViewToRootItem)
qxView->setResizeMode(QQuickView::SizeViewToRootObject);