aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-08-19 09:47:35 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-08-19 09:47:35 +0200
commitd2628d9d7015e4b75007471d150acedecaa0c6c1 (patch)
tree00ab012c7ae190d5a64788ee945ca006e3759e41
parentb6a6a6387e279c431d520243345530fa19bd96c5 (diff)
parent566afc2d2e4156712ffec081715f12307cf46628 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: tests/auto/quick/qquickgridview/qquickgridview.pro tests/auto/quick/qquickitem/qquickitem.pro Change-Id: Ic54cafbdda1ac22757d2ee65dcc63a1b167c7556
-rw-r--r--dist/changes-5.1.144
-rw-r--r--dist/changes-5.1.225
-rw-r--r--examples/quick/dialogs/systemdialogs/ColorDialogs.qml5
-rw-r--r--examples/quick/dialogs/systemdialogs/FileDialogs.qml5
-rw-r--r--examples/quick/shared/Button.qml7
-rw-r--r--examples/quick/shared/TabSet.qml5
-rw-r--r--examples/quick/tutorials/gettingStartedQml/core/Button.qml54
-rw-r--r--examples/quick/tutorials/gettingStartedQml/core/EditMenu.qml39
-rw-r--r--examples/quick/tutorials/gettingStartedQml/core/FileDialog.qml61
-rw-r--r--examples/quick/tutorials/gettingStartedQml/core/FileMenu.qml128
-rw-r--r--examples/quick/tutorials/gettingStartedQml/core/MenuBar.qml68
-rw-r--r--examples/quick/tutorials/gettingStartedQml/core/TextArea.qml36
-rw-r--r--examples/quick/tutorials/gettingStartedQml/core/qmldir7
-rw-r--r--examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp7
-rw-r--r--examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.h8
-rw-r--r--examples/quick/tutorials/gettingStartedQml/filedialog/directory.cpp77
-rw-r--r--examples/quick/tutorials/gettingStartedQml/filedialog/directory.h27
-rw-r--r--examples/quick/tutorials/gettingStartedQml/filedialog/file.cpp2
-rw-r--r--examples/quick/tutorials/gettingStartedQml/filedialog/filedialog.pro27
-rw-r--r--examples/quick/tutorials/gettingStartedQml/filedialog/qmldir3
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part0/Button.qml55
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/Button.qml97
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/EditMenu.qml76
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/FileMenu.qml91
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/SimpleButton.qml73
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_button.pngbin1670 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_editmenu.pngbin6177 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_filemenu.pngbin6062 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_simplebutton.pngbin1055 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part2/Button.qml99
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part2/EditMenu.qml77
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part2/FileMenu.qml92
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part2/MenuBar.qml141
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part2/pics/qml-texteditor2_menubar.pngbin6079 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject14
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/Button.qml99
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/EditMenu.qml77
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/FileMenu.qml92
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/MenuBar.qml141
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/TextArea.qml80
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/TextEditor.qml68
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/images/arrow.pngbin583 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/pics/qml-texteditor3_texteditor.pngbin59345 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject14
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/Button.qml109
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/EditMenu.qml81
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/FileMenu.qml96
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/MenuBar.qml147
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml59
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/TextArea.qml80
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/TextEditor.qml146
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/images/arrow.pngbin583 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/pics/qml-texteditor4_texteditor.pngbin63629 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject14
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/TextEditor.qml127
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/core/Button.qml109
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml110
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml171
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml233
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml146
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml86
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/core/qmldir11
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp54
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h57
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp219
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h108
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp56
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.h67
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro17
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir1
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/images/arrow.pngbin583 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_editmenu.pngbin65123 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_filemenu.pngbin21367 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_newfile.pngbin76693 -> 0 bytes
-rw-r--r--examples/quick/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject14
-rw-r--r--examples/quick/tutorials/gettingStartedQml/texteditor.qml57
-rw-r--r--examples/quick/tutorials/gettingStartedQml/texteditor.qmlproject (renamed from examples/quick/tutorials/gettingStartedQml/parts/part1/qml-texteditor.qmlproject)6
-rw-r--r--src/imports/dialogs/qml/Button.qml6
-rw-r--r--src/imports/dialogs/qquickabstractcolordialog.cpp5
-rw-r--r--src/qml/qml/qqmllist.cpp5
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp2
-rw-r--r--src/quick/items/context2d/qquickcontext2dtexture.cpp2
-rw-r--r--src/quick/items/qquickflickable.cpp6
-rw-r--r--src/quick/items/qquickitem.cpp4
-rw-r--r--src/quick/items/qquickitemview.cpp2
-rw-r--r--src/quick/items/qquickwindow.cpp17
-rw-r--r--tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp4
-rw-r--r--tests/auto/quick/qquickflickable/tst_qquickflickable.cpp69
-rw-r--r--tests/auto/quick/qquickgridview/qquickgridview.pro4
-rw-r--r--tests/auto/quick/qquickitem/qquickitem.pro3
-rw-r--r--tests/auto/quick/qquicklistview/tst_qquicklistview.cpp5
-rw-r--r--tests/auto/quick/qquickmousearea/qquickmousearea.pro2
-rw-r--r--tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp13
-rw-r--r--tests/auto/quick/qquicktextedit/qquicktextedit.pro1
-rw-r--r--tests/auto/quick/qquickwindow/data/hoverCrash.qml36
-rw-r--r--tests/auto/quick/qquickwindow/tst_qquickwindow.cpp33
-rw-r--r--tests/auto/quick/touchmouse/tst_touchmouse.cpp3
97 files changed, 587 insertions, 4037 deletions
diff --git a/dist/changes-5.1.1 b/dist/changes-5.1.1
new file mode 100644
index 0000000000..be59ba9e79
--- /dev/null
+++ b/dist/changes-5.1.1
@@ -0,0 +1,44 @@
+Qt 5.1.1 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.1.0.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+ http://qt-project.org/doc/qt-5.1/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+ http://bugreports.qt-project.org/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+
+****************************************************************************
+* General *
+****************************************************************************
+
+General Improvements
+--------------------
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+ - [QTBUG-32621][QTBUG-32572][QTBUG-32545] Multiple fixes for the new
+ QtQuick.Dialogs ColorDialog.
+ - [QTBUG-30908] XmlHttpRequest: Requests which receive a redirect now use
+ GET as per spec.
+ - [QTBUG-32332] QtQuick.ListView: Snap immediately once snapMode changes.
+ - [QTBUG-31647] QtQuick.Text: Maintain vertical position when height
+ changes.
+
+****************************************************************************
+* Platform Specific Changes *
+****************************************************************************
+
+Qt for Embedded
+--------------
+
+ - [QTBUG-30908] Fix SceneGraph text rendering on certain OpenGL ES drivers
diff --git a/dist/changes-5.1.2 b/dist/changes-5.1.2
new file mode 100644
index 0000000000..2ea62a4f6b
--- /dev/null
+++ b/dist/changes-5.1.2
@@ -0,0 +1,25 @@
+Qt 5.1.2 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.1.0 and 5.1.1.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+ http://qt-project.org/doc/qt-5.1/
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+ http://bugreports.qt-project.org/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* Important Behavior Changes *
+****************************************************************************
+
+ - QTBUG-32838: Setting the model property of ListView, GridView or PathView to
+ an empty model will now correctly reset currentIndex to -1. In prior versions
+ currentIndex was set to 0 regardless of the actual number of rows in the model
+ when the model property was changed after the view's initialization.
+
diff --git a/examples/quick/dialogs/systemdialogs/ColorDialogs.qml b/examples/quick/dialogs/systemdialogs/ColorDialogs.qml
index cd74dd6766..0cb42a01aa 100644
--- a/examples/quick/dialogs/systemdialogs/ColorDialogs.qml
+++ b/examples/quick/dialogs/systemdialogs/ColorDialogs.qml
@@ -115,15 +115,16 @@ Rectangle {
right: parent.right
bottom: parent.bottom
}
- height: 50
+ height: buttonRow.height * 1.2
color: Qt.darker(palette.window, 1.1)
border.color: Qt.darker(palette.window, 1.3)
Row {
+ id: buttonRow
spacing: 6
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 12
- height: parent.height - 6
+ height: implicitHeight
width: parent.width
Button {
text: "Open"
diff --git a/examples/quick/dialogs/systemdialogs/FileDialogs.qml b/examples/quick/dialogs/systemdialogs/FileDialogs.qml
index e521988f5d..508466da0c 100644
--- a/examples/quick/dialogs/systemdialogs/FileDialogs.qml
+++ b/examples/quick/dialogs/systemdialogs/FileDialogs.qml
@@ -147,15 +147,16 @@ Rectangle {
right: parent.right
bottom: parent.bottom
}
- height: 50
+ height: buttonRow.height * 1.2
color: Qt.darker(palette.window, 1.1)
border.color: Qt.darker(palette.window, 1.3)
Row {
+ id: buttonRow
spacing: 6
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 12
- height: parent.height - 6
+ height: implicitHeight
width: parent.width
Button {
text: "Open"
diff --git a/examples/quick/shared/Button.qml b/examples/quick/shared/Button.qml
index 551f7d6e04..468f945934 100644
--- a/examples/quick/shared/Button.qml
+++ b/examples/quick/shared/Button.qml
@@ -39,6 +39,7 @@
****************************************************************************/
import QtQuick 2.1
+import QtQuick.Window 2.1
Item {
id: container
@@ -48,8 +49,8 @@ Item {
signal clicked
property alias containsMouse: mouseArea.containsMouse
property alias pressed: mouseArea.pressed
- implicitHeight: buttonLabel.implicitHeight * 1.2
- implicitWidth: buttonLabel.implicitWidth * 1.2
+ implicitHeight: Math.max(Screen.logicalPixelDensity * 7, buttonLabel.implicitHeight * 1.2)
+ implicitWidth: Math.max(Screen.logicalPixelDensity * 11, buttonLabel.implicitWidth * 1.3)
height: implicitHeight
width: implicitWidth
@@ -64,7 +65,7 @@ Item {
GradientStop { position: 1.0; color: Qt.darker(palette.button, 1.3) }
}
antialiasing: true
- radius: height / 4
+ radius: height / 6
border.color: Qt.darker(palette.button, 1.5)
border.width: 1
}
diff --git a/examples/quick/shared/TabSet.qml b/examples/quick/shared/TabSet.qml
index 10263a70ac..86050b6073 100644
--- a/examples/quick/shared/TabSet.qml
+++ b/examples/quick/shared/TabSet.qml
@@ -39,6 +39,7 @@
****************************************************************************/
import QtQuick 2.0
+import QtQuick.Window 2.1
Item {
id: tabWidget
@@ -65,7 +66,8 @@ Item {
Repeater {
model: stack.children.length
delegate: Rectangle {
- width: tabWidget.width / stack.children.length; height: 36
+ width: tabWidget.width / stack.children.length
+ height: Math.max(Screen.logicalPixelDensity * 11, label.implicitHeight * 1.2)
Rectangle {
width: parent.width; height: 1
@@ -79,6 +81,7 @@ Item {
visible: tabWidget.current == index
}
Text {
+ id: label
horizontalAlignment: Qt.AlignHCenter; verticalAlignment: Qt.AlignVCenter
anchors.fill: parent
text: stack.children[index].title
diff --git a/examples/quick/tutorials/gettingStartedQml/core/Button.qml b/examples/quick/tutorials/gettingStartedQml/core/Button.qml
index 43383021c9..35a0a618a9 100644
--- a/examples/quick/tutorials/gettingStartedQml/core/Button.qml
+++ b/examples/quick/tutorials/gettingStartedQml/core/Button.qml
@@ -38,71 +38,71 @@
**
****************************************************************************/
-
import QtQuick 2.0
Rectangle {
- //identifier of the item
+ // Identifier of the item
id: button
- //these properties act as constants, useable outside this QML file
+ // These properties act as constants, useable outside this QML file
property int buttonHeight: 75
property int buttonWidth: 150
- //attaches to the Text element's text content
+ // Attaches to the Text element's text content
property string label
property color textColor: buttonLabel.color
- //the color highlight when the mouse hovers on the rectangle
+ // The color highlight when the mouse hovers on the rectangle
property color onHoverColor: "lightsteelblue"
property color borderColor: "transparent"
- //buttonColor is set to the button's main color
+ // buttonColor is set to the button's main color
property color buttonColor: "lightblue"
property real labelSize: 14
-
- //set appearance properties
+ // Set appearance properties
radius: 6
antialiasing: true
- border { width: 2; color: borderColor }
- width: buttonWidth; height: buttonHeight
+ border.width: 2
+ border.color: borderColor
+ width: buttonWidth
+ height: buttonHeight
Text {
id: buttonLabel
anchors.centerIn: parent
- text: label //bind the text to the parent's text
+ text: label // Bind the text to the parent's text
color: "#DCDCCC"
font.pointSize: labelSize
}
- //buttonClick() is callable and a signal handler, onButtonClick is automatically created
+ // buttonClick() is callable and a signal handler,
+ // onButtonClick is automatically created
signal buttonClick()
- //define the clickable area to be the whole rectangle
- MouseArea {
+ // Define the clickable area to be the whole rectangle
+ MouseArea {
id: buttonMouseArea
- anchors.fill: parent //stretch the area to the parent's dimension
+ anchors.fill: parent // Stretch the area to the parent's dimension
onClicked: buttonClick()
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
+ // If true, then onEntered and onExited called if mouse hovers in the mouse area
+ // If false, a button must be clicked to detect the mouse hover
hoverEnabled: true
- //display a border if the mouse hovers on the button mouse area
+ // Display a border if the mouse hovers on the button mouse area
onEntered: parent.border.color = onHoverColor
- //remove the border if the mouse exits the button mouse area
+ //Remove the border if the mouse exits the button mouse area
onExited: parent.border.color = borderColor
}
- //change the color of the button when pressed
+ // Change the color of the button when pressed
color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
- //animate the color whenever the color property changes
- Behavior on color { ColorAnimation{ duration: 55 } }
-
- //scale the button when pressed
- scale: buttonMouseArea.pressed ? 1.1 : 1.00
- //Animate the scale property change
- Behavior on scale { NumberAnimation{ duration: 55 } }
+ // Animate the color whenever the color property changes
+ Behavior on color { ColorAnimation { duration: 55 } }
+ // Scale the button when pressed
+ scale: buttonMouseArea.pressed ? 1.1 : 1.0
+ // Animate the scale property change
+ Behavior on scale { NumberAnimation { duration: 55 } }
}
diff --git a/examples/quick/tutorials/gettingStartedQml/core/EditMenu.qml b/examples/quick/tutorials/gettingStartedQml/core/EditMenu.qml
index d2e52dfad6..8bab04d6d6 100644
--- a/examples/quick/tutorials/gettingStartedQml/core/EditMenu.qml
+++ b/examples/quick/tutorials/gettingStartedQml/core/EditMenu.qml
@@ -38,66 +38,73 @@
**
****************************************************************************/
-
import QtQuick 2.0
Rectangle {
id: editMenu
- height: 480; width:1000
+ width: 1000; height: 480
color: "powderblue"
property color buttonBorderColor: "#7A8182"
property color buttonFillColor: "#61BDCACD"
property string menuName:"Edit"
+
gradient: Gradient {
GradientStop { position: 0.0; color: "#6A7570" }
GradientStop { position: 1.0; color: Qt.darker("#6A7570") }
}
Rectangle {
- id:actionContainer
- color:"transparent"
+ id: actionContainer
+ color: "transparent"
anchors.centerIn: parent
- width: parent.width; height: parent.height / 5
+ width: parent.width
+ height: parent.height / 5
+
Row {
anchors.centerIn: parent
- spacing: parent.width/9
+ spacing: parent.width / 9
Button {
id: loadButton
buttonColor: buttonFillColor
label: "Copy"
labelSize: 16
borderColor: buttonBorderColor
- height: actionContainer.height; width: actionContainer.width/6
+ height: actionContainer.height
+ width: actionContainer.width / 6
onButtonClick: textArea.copy()
gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+ GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor, 1.25) }
+ GradientStop { position: 0.67; color: Qt.darker(buttonFillColor, 1.3) }
}
}
+
Button {
id: saveButton
- height: actionContainer.height; width: actionContainer.width/6
+ height: actionContainer.height
+ width: actionContainer.width / 6
buttonColor: buttonFillColor
label: "Paste"
borderColor: buttonBorderColor
labelSize: 16
onButtonClick: textArea.paste()
gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+ GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor, 1.25) }
+ GradientStop { position: 0.67; color: Qt.darker(buttonFillColor, 1.3) }
}
}
+
Button {
id: exitButton
label: "Select All"
- height: actionContainer.height; width: actionContainer.width/6
+ height: actionContainer.height
+ width: actionContainer.width/6
labelSize: 16
buttonColor: buttonFillColor
- borderColor:buttonBorderColor
+ borderColor: buttonBorderColor
onButtonClick: textArea.selectAll()
gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
+ GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor, 1.25) }
+ GradientStop { position: 0.67; color: Qt.darker(buttonFillColor, 1.3) }
}
}
}
diff --git a/examples/quick/tutorials/gettingStartedQml/core/FileDialog.qml b/examples/quick/tutorials/gettingStartedQml/core/FileDialog.qml
index dc3ad09c9c..2744dcff79 100644
--- a/examples/quick/tutorials/gettingStartedQml/core/FileDialog.qml
+++ b/examples/quick/tutorials/gettingStartedQml/core/FileDialog.qml
@@ -37,17 +37,17 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-
import QtQuick 2.0
Rectangle {
- id:dialog
- height: 200 * partition; width: 200
+ id: dialog
+ width: 200
+ height: 200 * partition
color: "transparent"
signal selectChanged()
signal notifyRefresh()
- onNotifyRefresh:dirView.model = directory.files
+ onNotifyRefresh: dirView.model = directory.files
property string selectedFile
property int selectedIndex: 0
@@ -56,15 +56,17 @@ Rectangle {
id: dirBox
radius: 10
antialiasing: true
- anchors.centerIn:parent
- height: parent.height -15; width: parent.width -30
+ anchors.centerIn: parent
+ height: parent.height -15
+ width: parent.width - 30
Rectangle {
- id:header
- height: parent.height*0.1; width: parent.width
- radius:3
+ id: header
+ height: parent.height * 0.1
+ width: parent.width
+ radius: 3
antialiasing: true
- z:1
+ z: 1
gradient: Gradient {
GradientStop { position: 0.0; color: "#8C8F8C" }
GradientStop { position: 0.17; color: "#6A6D6A" }
@@ -72,32 +74,39 @@ Rectangle {
GradientStop { position: 1.0; color: "#0e1B20" }
}
Text {
- height: header.height; anchors.centerIn: header
- text: "files:"
+ height: header.height
+ anchors.centerIn: header
+ text: "files:"
color: "lightblue"
font.weight: Font.Light
font.italic: true
}
}
+
GridView {
- id:dirView
- width:parent.width; height:parent.height*.9
+ id: dirView
+ width: parent.width
+ height: parent.height * 0.9
anchors.top: header.bottom
- cellWidth: 100; cellHeight: 75
+ cellWidth: 100
+ cellHeight: 75
model: directory.files
delegate: dirDelegate
clip: true
highlightMoveDuration: 40
}
+
Component {
id: dirDelegate
+
Rectangle {
- id:file
+ id: file
color: "transparent"
- width: GridView.view.cellWidth; height: GridView.view.cellHeight
+ width: dirView.cellWidth
+ height: dirView.cellHeight
Text {
- id:fileName
+ id: fileName
width: parent.width
anchors.centerIn: parent
text: name
@@ -107,14 +116,17 @@ Rectangle {
elide: Text.ElideMiddle
horizontalAlignment: Text.AlignHCenter
}
+
Rectangle {
id: selection
- width: parent.width; height: parent.height
+ width: parent.width
+ height: parent.height
anchors.centerIn: parent
radius: 10
antialiasing: true
scale: dirView.currentIndex == index ? 1 : 0.5
opacity: dirView.currentIndex == index ? 1 : 0
+
Text {
id: overlay
width: parent.width
@@ -126,18 +138,20 @@ Rectangle {
elide: Text.ElideMiddle
horizontalAlignment: Text.AlignHCenter
}
+
Behavior on opacity { NumberAnimation{ duration: 45 } }
Behavior on scale { NumberAnimation{ duration: 45 } }
gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue",1.25) }
- GradientStop { position: 0.67; color: Qt.darker("lightsteelblue",1.3) }
+ GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue", 1.25) }
+ GradientStop { position: 0.67; color: Qt.darker("lightsteelblue", 1.30) }
}
border.color: "lightsteelblue"
border.width: 1
}
+
MouseArea {
- id:fileMouseArea
- anchors.fill:parent
+ id: fileMouseArea
+ anchors.fill: parent
hoverEnabled: true
onClicked: {
@@ -156,6 +170,7 @@ Rectangle {
}
}
}
+
gradient: Gradient {
GradientStop { position: 0.0; color: "#A5333333" }
GradientStop { position: 1.0; color: "#03333333" }
diff --git a/examples/quick/tutorials/gettingStartedQml/core/FileMenu.qml b/examples/quick/tutorials/gettingStartedQml/core/FileMenu.qml
index 9808aa74b5..c8667a0cc5 100644
--- a/examples/quick/tutorials/gettingStartedQml/core/FileMenu.qml
+++ b/examples/quick/tutorials/gettingStartedQml/core/FileMenu.qml
@@ -39,55 +39,58 @@
****************************************************************************/
import QtQuick 2.0
-import "../filedialog" 1.0
+import FileDialog 1.0
Rectangle {
id: fileMenu
- height: 480; width:1000
+ height: 480
+ width: 1000
property color buttonBorderColor: "#7F8487"
property color buttonFillColor: "#8FBDCACD"
- property string fileContent:directory.fileContent
+ property string fileContent: directory.fileContent
- //the menuName is accessible from outside this QML file
+ // menuName is accessible from outside this QML file
property string menuName: "File"
- //used to divide the screen into parts.
- property real partition: 1/3
+ // Used to divide the screen into parts
+ property real partition: 1 / 3
- color: "#6C646A"
+ color: "#6C646A"
gradient: Gradient {
- GradientStop { position: 0.0; color: "#6C646A" }
- GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") }
+ GradientStop { position: 0.0; color: "#6C646A" }
+ GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") }
}
Directory {
- id:directory
+ id: directory
filename: textInput.text
- onDirectoryChanged:fileDialog.notifyRefresh()
+ onDirectoryChanged: fileDialog.notifyRefresh()
}
Rectangle {
- id:actionContainer
+ id: actionContainer
- //make this rectangle invisible
- color:"transparent"
+ // Make this rectangle invisible
+ color: "transparent"
anchors.left: parent.left
- //the height is a good proportion that creates more space at the top of
- //the column of buttons
- width: fileMenu.width * partition; height: fileMenu.height
+ // The height is a good proportion that creates more space at the
+ // top of the column of buttons
+ width: fileMenu.width * partition
+ height: fileMenu.height
Column {
anchors.centerIn: parent
- spacing: parent.height/32
+ spacing: parent.height / 32
+
Button {
id: saveButton
label: "Save"
borderColor: buttonBorderColor
buttonColor: buttonFillColor
- width: actionContainer.width/ 1.3
- height:actionContainer.height / 8
- labelSize:24
+ width: actionContainer.width / 1.3
+ height: actionContainer.height / 8
+ labelSize: 24
onButtonClick: {
directory.fileContent = textArea.textContent
directory.filename = textInput.text
@@ -98,15 +101,16 @@ Rectangle {
GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
}
}
+
Button {
id: loadButton
- width: actionContainer.width/ 1.3
- height:actionContainer.height/ 8
+ width: actionContainer.width / 1.3
+ height: actionContainer.height / 8
buttonColor: buttonFillColor
borderColor: buttonBorderColor
label: "Load"
- labelSize:24
- onButtonClick:{
+ labelSize: 24
+ onButtonClick: {
directory.filename = textInput.text
directory.loadFile()
textArea.textContent = directory.fileContent
@@ -118,13 +122,13 @@ Rectangle {
}
Button {
id: newButton
- width: actionContainer.width/ 1.3
- height: actionContainer.height/ 8
+ width: actionContainer.width / 1.3
+ height: actionContainer.height / 8
buttonColor: buttonFillColor
borderColor: buttonBorderColor
label: "New"
labelSize: 24
- onButtonClick:{
+ onButtonClick: {
textArea.textContent = ""
textInput.text = ""
}
@@ -132,9 +136,8 @@ Rectangle {
GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
}
-
}
- Rectangle {
+ Rectangle{
id: space
width: actionContainer.width/ 1.3
height: actionContainer.height / 16
@@ -142,8 +145,8 @@ Rectangle {
}
Button {
id: exitButton
- width: actionContainer.width/ 1.3
- height: actionContainer.height/ 8
+ width: actionContainer.width / 1.3
+ height: actionContainer.height / 8
label: "Exit"
labelSize: 24
buttonColor: buttonFillColor
@@ -156,75 +159,84 @@ Rectangle {
}
}
}
+
Rectangle {
- id:dialogContainer
+ id: dialogContainer
- width: 2*fileMenu.width * partition; height: fileMenu.height
- anchors.right:parent.right
+ width: 2 * fileMenu.width * partition
+ height: fileMenu.height
+ anchors.right: parent.right
color: "transparent"
Column {
anchors.centerIn: parent
- spacing: parent.height /640
+ spacing: parent.height / 640
FileDialog {
- id:fileDialog
- height: 2*dialogContainer.height * partition
+ id: fileDialog
+ height: 2 * dialogContainer.height * partition
width: dialogContainer.width
onSelectChanged: textInput.text = selectedFile
}
Rectangle {
- id:lowerPartition
- height: dialogContainer.height * partition; width: dialogContainer.width
+ id: lowerPartition
+ height: dialogContainer.height * partition
+ width: dialogContainer.width
color: "transparent"
Rectangle {
id: nameField
- gradient: Gradient {
+
+ gradient: Gradient{
GradientStop { position: 0.0; color: "#806F6F6F" }
GradientStop { position: 1.0; color: "#136F6F6F" }
}
+
radius: 10
- anchors { centerIn:parent; leftMargin: 15; rightMargin: 15; topMargin: 15 }
- height: parent.height-15
- width: parent.width -20
- border { color: "#4A4A4A"; width:1 }
+ anchors { centerIn: parent; leftMargin: 15; rightMargin: 15; topMargin: 15 }
+ height: parent.height - 15
+ width: parent.width - 20
+ border { color:"#4A4A4A"; width: 1 }
TextInput {
id: textInput
- z:2
+ z: 2
anchors { bottom: parent.bottom; topMargin: 10; horizontalCenter: parent.horizontalCenter }
width: parent.width - 10
- height: parent.height -10
+ height: parent.height - 10
font.pointSize: 40
color: "lightsteelblue"
focus: true
}
+
Text {
id: textInstruction
anchors.centerIn: parent
- text: "Select file name and press save or load"
- font {pointSize: 11; weight: Font.Light; italic: true}
+ text: "Select file name and press Save or Load"
+ font { pointSize: 11; weight: Font.Light; italic: true }
color: "lightblue"
z: 2
opacity: (textInput.text == "") ? 1 : 0
}
+
Text {
- id:fieldLabel
+ id: fieldLabel
anchors { top: parent.top; left: parent.left }
text: " file name: "
font { pointSize: 11; weight: Font.Light; italic: true }
color: "lightblue"
- z:2
+ z: 2
}
+
MouseArea {
- anchors.centerIn:parent
- width: nameField.width; height: nameField.height
- onClicked: {
- textInput.text = ""
- textInput.focus = true
- textInput.forceFocus()
- }
+ anchors.centerIn: parent
+ width: nameField.width
+ height: nameField.height
+ onClicked: {
+ textInput.text = ""
+ textInput.focus = true
+ textInput.forceFocus()
+ }
}
}
}
diff --git a/examples/quick/tutorials/gettingStartedQml/core/MenuBar.qml b/examples/quick/tutorials/gettingStartedQml/core/MenuBar.qml
index b53fc1b45a..f77e76a6d6 100644
--- a/examples/quick/tutorials/gettingStartedQml/core/MenuBar.qml
+++ b/examples/quick/tutorials/gettingStartedQml/core/MenuBar.qml
@@ -43,20 +43,21 @@ import QtQml.Models 2.1
Rectangle {
id: menuBar
- width: 1000; height:300
- color:"transparent"
+ width: 1000; height: 300
+ color: "transparent"
property color fileColor: "plum"
property color editColor: "powderblue"
- property real partition: 1/10
+ property real partition: 1 / 10
Column {
anchors.fill: parent
- //container for the header and the buttons
z: 1
+
+ // Container for the header and the buttons
Rectangle {
id: labelList
- height:menuBar.height*partition
+ height: menuBar.height * partition
width: menuBar.width
color: "beige"
gradient: Gradient {
@@ -65,43 +66,50 @@ Rectangle {
GradientStop { position: 0.98;color: "#3F3F3F" }
GradientStop { position: 1.0; color: "#0e1B20" }
}
+
Text {
height: parent.height
- anchors { right: labelRow.left ; verticalCenter: parent.bottom }
- text: "menu: "
+ anchors { right: labelRow.left; verticalCenter: parent.bottom }
+ text: "menu: "
color: "lightblue"
font { weight: Font.Light; italic: true }
}
- //row displays its children in a vertical row
+
+ // Row displays its children in a vertical row
Row {
id: labelRow
anchors.centerIn: parent
- spacing:40
+ spacing: 40
+
Button {
id: fileButton
- height: 20; width: 50
+ width: 50; height: 20
label: "File"
- buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5)
- scale: menuListView.currentIndex == 0? 1.25: 1
- labelSize: menuListView.currentIndex == 0? 16:12
+ buttonColor: menuListView.currentIndex == 0 ? fileColor : Qt.darker(fileColor, 1.5)
+ scale: menuListView.currentIndex == 0 ? 1.25 : 1
+ labelSize: menuListView.currentIndex == 0 ? 16 : 12
radius: 1
- //on a button click, change the list's currently selected item to FileMenu
+
+ // On a button click, change the list's currently selected item to FileMenu
onButtonClick: menuListView.currentIndex = 0
+
gradient: Gradient {
GradientStop { position: 0.0; color: fileColor }
GradientStop { position: 1.0; color: "#136F6F6F" }
}
}
+
Button {
id: editButton
- height: 20; width: 50
- buttonColor : menuListView.currentIndex == 1? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9)
- scale: menuListView.currentIndex == 1? 1.25: 1
+ width: 50; height: 20
+ buttonColor : menuListView.currentIndex == 1 ? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9)
+ scale: menuListView.currentIndex == 1 ? 1.25 : 1
label: "Edit"
radius: 1
- labelSize: menuListView.currentIndex == 1? 16:12
+ labelSize: menuListView.currentIndex == 1 ? 16 : 12
+
//on a button click, change the list's currently selected item to EditMenu
- onButtonClick: menuListView.currentIndex = 1
+ onButtonClick: menuListView.currentIndex = 1
gradient: Gradient {
GradientStop { position: 0.0; color: editColor }
GradientStop { position: 1.0; color: "#136F6F6F" }
@@ -110,36 +118,40 @@ Rectangle {
}
}
- //list view will display a model according to a delegate
+ // A ListView will display a model according to a delegate
ListView {
id: menuListView
- width:menuBar.width; height: 9*menuBar.height*partition
+ width: menuBar.width
+ height: 9 * menuBar.height * partition
- //the model contains the data
+ // The model contains the data
model: menuListModel
//control the movement of the menu switching
snapMode: ListView.SnapOneItem
orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
+ boundsBehavior: Flickable.StopAtBounds
flickDeceleration: 5000
highlightFollowsCurrentItem: true
- highlightMoveDuration:240
+ highlightMoveDuration: 240
highlightRangeMode: ListView.StrictlyEnforceRange
}
}
- //a list of visual items already have delegates handling their display
+
+ // A list of visual items that already have delegates handling their display
ObjectModel {
id: menuListModel
FileMenu {
- id:fileMenu
- width: menuListView.width; height: menuListView.height
+ id: fileMenu
+ width: menuListView.width
+ height: menuListView.height
color: fileColor
}
EditMenu {
color: editColor
- width: menuListView.width; height: menuListView.height
+ width: menuListView.width
+ height: menuListView.height
}
}
}
diff --git a/examples/quick/tutorials/gettingStartedQml/core/TextArea.qml b/examples/quick/tutorials/gettingStartedQml/core/TextArea.qml
index c9294ca5d5..dd6b89547f 100644
--- a/examples/quick/tutorials/gettingStartedQml/core/TextArea.qml
+++ b/examples/quick/tutorials/gettingStartedQml/core/TextArea.qml
@@ -41,45 +41,49 @@
import QtQuick 2.0
Rectangle {
- id:textArea
+ id: textArea
function paste() { textEdit.paste() }
function copy() { textEdit.copy() }
function selectAll() { textEdit.selectAll() }
- width :400; height:400
+ width: 400; height: 400
property color fontColor: "white"
property alias textContent: textEdit.text
+
Flickable {
id: flickArea
- width: parent.width; height: parent.height
- anchors.fill:parent
+ width: parent.width
+ height: parent.height
+ anchors.fill: parent
boundsBehavior: Flickable.StopAtBounds
flickableDirection: Flickable.HorizontalFlick
interactive: true
- //Will move the text Edit area to make the area visible when
- //scrolled with keyboard strokes
+
+ // Move the content coordinates to make the text area
+ // visible when scrolled with keyboard strokes
function ensureVisible(r) {
if (contentX >= r.x)
- contentX = r.x;
- else if (contentX+width <= r.x+r.width)
- contentX = r.x+r.width-width;
+ contentX = r.x;
+ else if (contentX + width <= r.x + r.width)
+ contentX = r.x + r.width - width;
if (contentY >= r.y)
- contentY = r.y;
- else if (contentY+height <= r.y+r.height)
- contentY = r.y+r.height-height;
+ contentY = r.y;
+ else if (contentY + height <= r.y + r.height)
+ contentY = r.y + r.height - height;
}
TextEdit {
id: textEdit
- anchors.fill:parent
- width:parent.width; height:parent.height
- color:fontColor
+ anchors.fill: parent
+ width: parent.width
+ height: parent.height
+ color: fontColor
focus: true
wrapMode: TextEdit.Wrap
- font.pointSize:10
+ font.pointSize: 10
onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle)
selectByMouse: true
}
diff --git a/examples/quick/tutorials/gettingStartedQml/core/qmldir b/examples/quick/tutorials/gettingStartedQml/core/qmldir
deleted file mode 100644
index da1f373433..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/core/qmldir
+++ /dev/null
@@ -1,7 +0,0 @@
-Button ./Button.qml
-FileDialog ./FileDialog.qml
-TextArea ./TextArea.qml
-TextEditor ./TextEditor.qml
-EditMenu ./EditMenu.qml
-MenuBar ./MenuBar.qml
-FileMenu ./FileMenu.qml
diff --git a/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp b/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp
index 7076f2c19c..b1ba601df3 100644
--- a/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp
+++ b/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp
@@ -41,11 +41,12 @@
#include "dialogPlugin.h"
#include "directory.h"
#include "file.h"
-#include <QtQml/qqml.h>
+#include <QtQml>
void DialogPlugin::registerTypes(const char *uri)
{
- //register the class Directory into QML as a "Directory" element version 1.0
+ // Register the class Directory into QML as a "Directory" type version 1.0
+ // @uri FileDialog
qmlRegisterType<Directory>(uri, 1, 0, "Directory");
- qmlRegisterType<File>(uri,1,0,"File");
+ qmlRegisterType<File>(uri, 1, 0, "File");
}
diff --git a/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.h b/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.h
index 5c4e5c971d..f23391f1df 100644
--- a/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.h
+++ b/examples/quick/tutorials/gettingStartedQml/filedialog/dialogPlugin.h
@@ -46,11 +46,11 @@
class DialogPlugin : public QQmlExtensionPlugin
{
Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+ Q_PLUGIN_METADATA(IID "org.qt-project.QmlExtensionPlugin.FileDialog")
+ public:
+ //registerTypes is inherited from QQmlExtensionPlugin
+ void registerTypes(const char *uri);
-public:
- // registerTypes is inherited from QQmlExtensionPlugin
- void registerTypes(const char *uri);
};
#endif
diff --git a/examples/quick/tutorials/gettingStartedQml/filedialog/directory.cpp b/examples/quick/tutorials/gettingStartedQml/filedialog/directory.cpp
index 0d4b551787..9535b97dd9 100644
--- a/examples/quick/tutorials/gettingStartedQml/filedialog/directory.cpp
+++ b/examples/quick/tutorials/gettingStartedQml/filedialog/directory.cpp
@@ -42,27 +42,28 @@
#include <QDebug>
/*
-Directory constructor
+ Directory constructor
-Initialize the saves directory and creates the file list
+ Initialize the saves directory and creates the file list
*/
Directory::Directory(QObject *parent) : QObject(parent)
{
m_dir.cd(QDir::currentPath());
- // go to the saved directory. if not found, create save directory
+ // Go to the saved directory. if not found, create it
m_saveDir = "saves";
if (m_dir.cd(m_saveDir) == 0) {
m_dir.mkdir(m_saveDir);
m_dir.cd(m_saveDir);
}
- m_filterList << "*.txt";
+ m_filterList << "*.txt";
+
refresh();
}
/*
-Directory::filesNumber
-Return the number of Files
+ Directory::filesCount
+ Returns the number of files
*/
int Directory::filesCount() const
{
@@ -70,25 +71,25 @@ int Directory::filesCount() const
}
/*
-Function called to append data onto list property
+ Function to append data into list property
*/
void appendFiles(QQmlListProperty<File> *property, File *file)
{
- Q_UNUSED(property);
- Q_UNUSED(file);
- //Do nothing. can't add to a directory using this method
+ Q_UNUSED(property)
+ Q_UNUSED(file)
+ // Do nothing. can't add to a directory using this method
}
/*
-Function called to retrieve file in the list using an index
+ Function called to retrieve file in the list using an index
*/
-File *fileAt(QQmlListProperty<File> *property, int index)
+File* fileAt(QQmlListProperty<File> *property, int index)
{
return static_cast< QList<File *> *>(property->data)->at(index);
}
/*
-Returns the number of files in the list
+ Returns the number of files in the list
*/
int filesSize(QQmlListProperty<File> *property)
{
@@ -96,7 +97,7 @@ int filesSize(QQmlListProperty<File> *property)
}
/*
-Function called to empty the list property contents
+ Function called to empty the list property contents
*/
void clearFilesPtr(QQmlListProperty<File> *property)
{
@@ -104,7 +105,7 @@ void clearFilesPtr(QQmlListProperty<File> *property)
}
/*
-Returns the list of files as a QQmlListProperty.
+ Returns the list of files as a QQmlListProperty.
*/
QQmlListProperty<File> Directory::files()
{
@@ -113,7 +114,7 @@ QQmlListProperty<File> Directory::files()
}
/*
-Return the name of the currently selected file
+ Return the name of the currently selected file.
*/
QString Directory::filename() const
{
@@ -121,7 +122,7 @@ QString Directory::filename() const
}
/*
-Return the file's content as a string.
+ Return the file's content as a string.
*/
QString Directory::fileContent() const
{
@@ -129,7 +130,7 @@ QString Directory::fileContent() const
}
/*
-Set the file name of the current file
+ Set the file name of the current file.
*/
void Directory::setFilename(const QString &str)
{
@@ -140,7 +141,7 @@ void Directory::setFilename(const QString &str)
}
/*
-Set the content of the file as a string
+ Set the content of the file as a string.
*/
void Directory::setFileContent(const QString &str)
{
@@ -151,32 +152,35 @@ void Directory::setFileContent(const QString &str)
}
/*
-Called from QML to save the file using the filename and file content.
-Saving makes sure that the file has a .txt extension.
+ Called from QML to save the file using the filename and content.
+ Makes sure that the file has a .txt extension.
*/
void Directory::saveFile()
{
- if (currentFile.name().isEmpty()) {
- qWarning()<< "Empty filename. no save";
+ if (currentFile.name().size() == 0) {
+ qWarning() << "Cannot save file, empty filename.";
return;
}
+
QString extendedName = currentFile.name();
if (!currentFile.name().endsWith(".txt")) {
extendedName.append(".txt");
}
+
QFile file(m_dir.filePath(extendedName));
if (file.open(QFile::WriteOnly | QFile::Truncate)) {
QTextStream outStream(&file);
outStream << m_fileContent;
}
+
file.close();
refresh();
emit directoryChanged();
}
/*
-Load the contents of a file.
-Only loads files with a .txt extension
+ Load the contents of a file.
+ Only loads files with a .txt extension
*/
void Directory::loadFile()
{
@@ -186,30 +190,35 @@ void Directory::loadFile()
extendedName.append(".txt");
}
- QFile file(m_dir.filePath(extendedName));
- if (file.open(QFile::ReadOnly)) {
+ QFile file( m_dir.filePath(extendedName));
+ if (file.open(QFile::ReadOnly )) {
QTextStream inStream(&file);
- m_fileContent = inStream.readAll();
+ QString line;
+
+ do {
+ line = inStream.read(75);
+ m_fileContent.append(line);
+ } while (!line .isNull());
}
file.close();
}
/*
-Reloads the content of the files list. This is to ensure that the newly
-created files are added onto the list.
+ Reloads the content of the files list. This is to ensure
+ that the newly created files are added onto the list.
*/
void Directory::refresh()
{
- m_dirFiles = m_dir.entryList(m_filterList,QDir::Files,QDir::Name);
+ m_dirFiles = m_dir.entryList(m_filterList, QDir::Files, QDir::Name);
m_fileList.clear();
- File *file;
- for (int i = 0; i < m_dirFiles.size(); ++i) {
+ File * file;
+ for (int i = 0; i < m_dirFiles.size(); i ++) {
file = new File();
if (m_dirFiles.at(i).endsWith(".txt")) {
QString name = m_dirFiles.at(i);
- file->setName(name.remove(".txt",Qt::CaseSensitive));
+ file->setName(name.remove(".txt", Qt::CaseSensitive));
} else {
file->setName(m_dirFiles.at(i));
}
diff --git a/examples/quick/tutorials/gettingStartedQml/filedialog/directory.h b/examples/quick/tutorials/gettingStartedQml/filedialog/directory.h
index 2cdfab0e43..de170f28b0 100644
--- a/examples/quick/tutorials/gettingStartedQml/filedialog/directory.h
+++ b/examples/quick/tutorials/gettingStartedQml/filedialog/directory.h
@@ -44,41 +44,40 @@
#include "file.h"
#include <QDir>
-#include <QObject>
-#include <QQmlListProperty>
#include <QStringList>
#include <QTextStream>
+#include <QQmlListProperty>
+#include <QObject>
-class Directory : public QObject
-{
+class Directory : public QObject {
Q_OBJECT
- // number of files in the directory
+ // Number of files in the directory
Q_PROPERTY(int filesCount READ filesCount)
- // list property containing file names as QString
+ // List property containing file names as QString
Q_PROPERTY(QQmlListProperty<File> files READ files CONSTANT)
- // file name of the text file to read/write
+ // File name of the text file to read/write
Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged)
- // text content of the file
+ // Text content of the file
Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged)
public:
Directory(QObject *parent = 0);
- // properties' read functions
+ // Properties' read functions
int filesCount() const;
QString filename() const;
QString fileContent() const;
QQmlListProperty<File> files();
- // properties' write functions
+ // Properties' write functions
void setFilename(const QString &str);
void setFileContent(const QString &str);
- // accessible from QML
+ // Accessible from QML
Q_INVOKABLE void saveFile();
Q_INVOKABLE void loadFile();
@@ -94,13 +93,13 @@ private:
QString m_saveDir;
QStringList m_filterList;
- //contains the file data in QString format
+ // Contains the file data in QString format
QString m_fileContent;
- //Registered to QML in a plugin. Accessible from QML as a property of Directory
+ // Registered to QML in a plugin. Accessible from QML as a property of Directory
QList<File *> m_fileList;
- //refresh content of the directory
+ // Refresh content of the directory
void refresh();
};
diff --git a/examples/quick/tutorials/gettingStartedQml/filedialog/file.cpp b/examples/quick/tutorials/gettingStartedQml/filedialog/file.cpp
index 983c24975b..e2cdab003a 100644
--- a/examples/quick/tutorials/gettingStartedQml/filedialog/file.cpp
+++ b/examples/quick/tutorials/gettingStartedQml/filedialog/file.cpp
@@ -38,7 +38,6 @@
**
****************************************************************************/
-
#include "file.h"
File::File(QObject *parent) : QObject(parent)
@@ -57,4 +56,3 @@ void File::setName(const QString &str)
emit nameChanged();
}
}
-
diff --git a/examples/quick/tutorials/gettingStartedQml/filedialog/filedialog.pro b/examples/quick/tutorials/gettingStartedQml/filedialog/filedialog.pro
index da06975e3b..0886f37b1f 100644
--- a/examples/quick/tutorials/gettingStartedQml/filedialog/filedialog.pro
+++ b/examples/quick/tutorials/gettingStartedQml/filedialog/filedialog.pro
@@ -2,21 +2,32 @@ TEMPLATE = lib
CONFIG += plugin
QT += qml
-DESTDIR += ../plugins
+DESTDIR += ../imports/FileDialog
OBJECTS_DIR = tmp
MOC_DIR = tmp
-TARGET = FileDialog
+TARGET = filedialogplugin
-HEADERS += directory.h \
+HEADERS += \
+ directory.h \
file.h \
dialogPlugin.h
-SOURCES += directory.cpp \
+SOURCES += \
+ directory.cpp \
file.cpp \
dialogPlugin.cpp
-target.path = $$[QT_INSTALL_EXAMPLES]/quick/tutorials/gettingStartedQml/filedialog
-qml.files = qmldir
-qml.path = $$[QT_INSTALL_EXAMPLES]/quick/tutorials/gettingStartedQml/filedialog
-INSTALLS += target qml
+OTHER_FILES += qmldir
+
+copyfile = $$PWD/qmldir
+copydest = $$DESTDIR
+
+# On Windows, use backslashes as directory separators
+win32: {
+ copyfile ~= s,/,\\,g
+ copydest ~= s,/,\\,g
+}
+
+# Copy the qmldir file to the same folder as the plugin binary
+QMAKE_POST_LINK += $$QMAKE_COPY $$quote($$copyfile) $$quote($$copydest) $$escape_expand(\\n\\t)
diff --git a/examples/quick/tutorials/gettingStartedQml/filedialog/qmldir b/examples/quick/tutorials/gettingStartedQml/filedialog/qmldir
index 4a8d13d026..fbcd5f7fd3 100644
--- a/examples/quick/tutorials/gettingStartedQml/filedialog/qmldir
+++ b/examples/quick/tutorials/gettingStartedQml/filedialog/qmldir
@@ -1 +1,2 @@
-plugin FileDialog ../plugins
+module FileDialog
+plugin filedialogplugin
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part0/Button.qml b/examples/quick/tutorials/gettingStartedQml/parts/part0/Button.qml
deleted file mode 100644
index 336ebc4f58..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part0/Button.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [document]
-import QtQuick 2.0
-
-Rectangle {
- id: simplebutton
- color: "grey"
- width: 150; height: 75
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: "button label"
- }
-}
-//! [document]
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/Button.qml b/examples/quick/tutorials/gettingStartedQml/parts/part1/Button.qml
deleted file mode 100644
index 3f362c6066..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/Button.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
-
- //identifier of the item
- id: button
-
- property string label: "button label"
-
- //these properties act as constants, useable outside this QML file
- property int buttonHeight: 75
- property int buttonWidth: 150
-
- //the color highlight when the mouse hovers on the rectangle
- property color onHoverColor: "gold"
- property color borderColor: "white"
-
- //buttonColor is set to the button's main color
- property color buttonColor: "lightblue"
-
- //set appearance properties
- radius: 10
- antialiasing: true
- border{color: "white"; width: 3}
- width: buttonWidth; height: buttonHeight
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: label
- }
-
- //buttonClick() is callable and a signal handler, onButtonClick is automatically created
- signal buttonClick()
- onButtonClick: {
- console.log(buttonLabel.text + " clicked" )
- }
-
- //define the clickable area to be the whole rectangle
- MouseArea{
- id: buttonMouseArea
- anchors.fill: parent //stretch the area to the parent's dimension
- onClicked: buttonClick()
-
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
- hoverEnabled: true
-
- //display a border if the mouse hovers on the button mouse area
- onEntered: parent.border.color = onHoverColor
- //remove the border if the mouse exits the button mouse area
- onExited: parent.border.color = borderColor
- }
-
- //change the color of the button when pressed
- color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/EditMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part1/EditMenu.qml
deleted file mode 100644
index 76a13be022..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/EditMenu.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: editMenu
- height: 480; width:1000
- color: "powderblue"
- property string menuName:"Edit"
-
- Rectangle{
- id:actionContainer
- color:"transparent"
- anchors.centerIn: parent
-
- width: parent.width; height: parent.height / 5
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Cut"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Paste"
- }
- Button{
- id: exitButton
- label: "Select All"
- buttonColor: "darkgrey"
- }
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/FileMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part1/FileMenu.qml
deleted file mode 100644
index 61124eaefc..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/FileMenu.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: fileMenu
-
- //the menuName is accessible from outside this QML file
- property string menuName: "File"
-
- //generous amount of screen space that will allow the buttons to fit
- height: 480; width:1000
-
- color: "#6C646A"
-
- //a sub-rectangle allows the flexibility of setting the row area
- Rectangle{
- id:actionContainer
-
- //make this rectangle invisible
- color:"transparent"
- anchors.centerIn: parent
-
- //the height is a good proportion that creates more space at the top of the row of buttons
- width: parent.width; height: parent.height / 5
-
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Load"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Save"
- }
- Button{
- id: exitButton
- label: "Exit"
- buttonColor: "darkgrey"
-
- //exit the application if the exitButton is clicked
- onButtonClick:{
- Qt.quit()
- }
- }
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/SimpleButton.qml b/examples/quick/tutorials/gettingStartedQml/parts/part1/SimpleButton.qml
deleted file mode 100644
index 2cf7f52da5..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/SimpleButton.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
-
- //identifier of the item
- id: simplebutton
-
- //the rectangle's fill color
- color: "grey"
-
- //dimensions of the button
- width: 150; height: 75
-
- //A text element contains functionalities for creating texts
- Text {
- id: buttonLabel
-
- //center the text inside the parent
- anchors.centerIn: parent
-
- //text property binds to the label displayed on the button
- text: "button label"
- }
-
- //define the clickable area to be the whole rectangle
- MouseArea {
- id: buttonMouseArea
- anchors.fill: parent //anchor all sides of the mouse area to the rectangle's anchors
-
- //onClicked handles valid mouse button clicks
- onClicked: console.log(buttonLabel.text + " clicked" )
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_button.png b/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_button.png
deleted file mode 100644
index aab64bcf39..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_button.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_editmenu.png b/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_editmenu.png
deleted file mode 100644
index d3ff66f2fd..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_editmenu.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_filemenu.png b/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_filemenu.png
deleted file mode 100644
index f2e2b0d990..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_filemenu.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_simplebutton.png b/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_simplebutton.png
deleted file mode 100644
index 21ce50929b..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_simplebutton.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part2/Button.qml b/examples/quick/tutorials/gettingStartedQml/parts/part2/Button.qml
deleted file mode 100644
index b17bc38960..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part2/Button.qml
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
-
- //identifier of the item
- id: button
-
- property string label: "button label"
-
- //these properties act as constants, useable outside this QML file
- property int buttonHeight: 75
- property int buttonWidth: 150
-
- //the color highlight when the mouse hovers on the rectangle
- property color onHoverColor: "gold"
- property color borderColor: "white"
-
- //buttonColor is set to the button's main color
- property color buttonColor: "lightblue"
-
- //set appearance properties
- radius:10
- antialiasing: true
- border{color: "white"; width: 3}
- width: buttonWidth; height: buttonHeight
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: label
- }
-
- //buttonClick() is callable and a signal handler, onButtonClick is automatically created
- signal buttonClick()
- onButtonClick: {
- console.log(buttonLabel.text + " clicked" )
- }
-
- //define the clickable area to be the whole rectangle
- MouseArea{
- id: buttonMouseArea
- anchors.fill: parent //stretch the area to the parent's dimension
- onClicked: buttonClick()
-
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
- hoverEnabled: true
-
- //display a border if the mouse hovers on the button mouse area
- onEntered: parent.border.color = onHoverColor
- //remove the border if the mouse exits the button mouse area
- onExited: parent.border.color = borderColor
-
- }
-
- //change the color of the button when pressed
- color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part2/EditMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part2/EditMenu.qml
deleted file mode 100644
index 83877a7392..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part2/EditMenu.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: editMenu
- height: 480; width:1000
- color: "powderblue"
- property string menuName:"Edit"
-
- Rectangle{
- id:actionContainer
- color:"transparent"
- anchors.centerIn: parent
-
- width: parent.width; height: parent.height / 5
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Cut"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Paste"
- }
- Button{
- id: exitButton
- label: "Select All"
- buttonColor: "darkgrey"
- }
- }
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part2/FileMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part2/FileMenu.qml
deleted file mode 100644
index e96abda829..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part2/FileMenu.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: fileMenu
-
- //the menuName is accessible from outside this QML file
- property string menuName: "File"
-
- //generous amount of screen space that will allow the buttons to fit
- height: 480; width:1000
-
- color: "#6C646A"
-
- //a sub-rectangle allows the flexibility of setting the row area
- Rectangle{
- id:actionContainer
-
- //make this rectangle invisible
- color:"transparent"
- anchors.centerIn: parent
-
- //the height is a good proportion that creates more space at the top of the row of buttons
- width: parent.width; height: parent.height / 5
-
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Load"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Save"
- }
- Button{
- id: exitButton
- label: "Exit"
- buttonColor: "darkgrey"
-
- //exit the application if the exitButton is clicked
- onButtonClick:{
- Qt.quit()
- }
- }
- }
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part2/MenuBar.qml b/examples/quick/tutorials/gettingStartedQml/parts/part2/MenuBar.qml
deleted file mode 100644
index 63b2a1c190..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part2/MenuBar.qml
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQml.Models 2.1
-
-Rectangle {
- id: menuBar
- width: 1000
- height:300
-
- property color fileColor: "thistle"
- property color editColor: "powderblue"
-
- //container for the header and the buttons
- Rectangle{
-
- id: labelList
- height:parent.height/10
- width: parent.width
- color: "steelblue"
-
- //default z is 0, items with higher z values are shown on top of items with lower z values
- z: 1
-
- //row displays its children in a vertical row
- Row{
- anchors.centerIn: parent
- spacing:40
- Button{
- height: 20
- width: 50
- label: "File"
- id: fileButton
- buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5)
- scale: menuListView.currentIndex == 0? 1.25: 1
- radius: 1
-
- //on a button click, change the list's currently selected item to FileMenu
- onButtonClick: {
- menuListView.currentIndex = 0
- }
- }
- Button{
- height: 20
- width: 50
- id: editButton
- buttonColor : menuListView.currentIndex == 1? editColor : Qt.darker(editColor, 1.5)
- scale: menuListView.currentIndex == 1? 1.25: 1
- label: "Edit"
- radius: 1
-
- //on a button click, change the list's currently selected item to EditMenu
- onButtonClick: {
- menuListView.currentIndex = 1
- }
-
-
- }
-
-
- }
- }
-
- //a list of visual items already have delegates handling their display
- ObjectModel{
- id: menuListModel
-
- FileMenu{
- width: menuListView.width
- height: menuBar.height
- color: fileColor
- }
- EditMenu{
- color: editColor
- width: menuListView.width
- height: menuBar.height
-
- }
- }
-
- //list view will display a model according to a delegate
- ListView{
- id: menuListView
- anchors.fill:parent
- anchors.bottom: parent.bottom
- width:parent.width
- height: parent.height
-
- //the model contains the data
- model: menuListModel
-
- //control the movement of the menu switching
- snapMode: ListView.SnapOneItem
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickDeceleration: 5000
- highlightFollowsCurrentItem: true
- highlightMoveDuration:240
- highlightRangeMode: ListView.StrictlyEnforceRange
- }
-
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part2/pics/qml-texteditor2_menubar.png b/examples/quick/tutorials/gettingStartedQml/parts/part2/pics/qml-texteditor2_menubar.png
deleted file mode 100644
index da959a3468..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part2/pics/qml-texteditor2_menubar.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject b/examples/quick/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject
deleted file mode 100644
index 2bb4016996..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject
+++ /dev/null
@@ -1,14 +0,0 @@
-import QmlProject 1.0
-
-Project {
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/Button.qml b/examples/quick/tutorials/gettingStartedQml/parts/part3/Button.qml
deleted file mode 100644
index b17bc38960..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/Button.qml
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
-
- //identifier of the item
- id: button
-
- property string label: "button label"
-
- //these properties act as constants, useable outside this QML file
- property int buttonHeight: 75
- property int buttonWidth: 150
-
- //the color highlight when the mouse hovers on the rectangle
- property color onHoverColor: "gold"
- property color borderColor: "white"
-
- //buttonColor is set to the button's main color
- property color buttonColor: "lightblue"
-
- //set appearance properties
- radius:10
- antialiasing: true
- border{color: "white"; width: 3}
- width: buttonWidth; height: buttonHeight
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: label
- }
-
- //buttonClick() is callable and a signal handler, onButtonClick is automatically created
- signal buttonClick()
- onButtonClick: {
- console.log(buttonLabel.text + " clicked" )
- }
-
- //define the clickable area to be the whole rectangle
- MouseArea{
- id: buttonMouseArea
- anchors.fill: parent //stretch the area to the parent's dimension
- onClicked: buttonClick()
-
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
- hoverEnabled: true
-
- //display a border if the mouse hovers on the button mouse area
- onEntered: parent.border.color = onHoverColor
- //remove the border if the mouse exits the button mouse area
- onExited: parent.border.color = borderColor
-
- }
-
- //change the color of the button when pressed
- color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/EditMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part3/EditMenu.qml
deleted file mode 100644
index 83877a7392..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/EditMenu.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: editMenu
- height: 480; width:1000
- color: "powderblue"
- property string menuName:"Edit"
-
- Rectangle{
- id:actionContainer
- color:"transparent"
- anchors.centerIn: parent
-
- width: parent.width; height: parent.height / 5
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Cut"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Paste"
- }
- Button{
- id: exitButton
- label: "Select All"
- buttonColor: "darkgrey"
- }
- }
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/FileMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part3/FileMenu.qml
deleted file mode 100644
index e96abda829..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/FileMenu.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: fileMenu
-
- //the menuName is accessible from outside this QML file
- property string menuName: "File"
-
- //generous amount of screen space that will allow the buttons to fit
- height: 480; width:1000
-
- color: "#6C646A"
-
- //a sub-rectangle allows the flexibility of setting the row area
- Rectangle{
- id:actionContainer
-
- //make this rectangle invisible
- color:"transparent"
- anchors.centerIn: parent
-
- //the height is a good proportion that creates more space at the top of the row of buttons
- width: parent.width; height: parent.height / 5
-
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Load"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Save"
- }
- Button{
- id: exitButton
- label: "Exit"
- buttonColor: "darkgrey"
-
- //exit the application if the exitButton is clicked
- onButtonClick:{
- Qt.quit()
- }
- }
- }
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/MenuBar.qml b/examples/quick/tutorials/gettingStartedQml/parts/part3/MenuBar.qml
deleted file mode 100644
index 63b2a1c190..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/MenuBar.qml
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQml.Models 2.1
-
-Rectangle {
- id: menuBar
- width: 1000
- height:300
-
- property color fileColor: "thistle"
- property color editColor: "powderblue"
-
- //container for the header and the buttons
- Rectangle{
-
- id: labelList
- height:parent.height/10
- width: parent.width
- color: "steelblue"
-
- //default z is 0, items with higher z values are shown on top of items with lower z values
- z: 1
-
- //row displays its children in a vertical row
- Row{
- anchors.centerIn: parent
- spacing:40
- Button{
- height: 20
- width: 50
- label: "File"
- id: fileButton
- buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5)
- scale: menuListView.currentIndex == 0? 1.25: 1
- radius: 1
-
- //on a button click, change the list's currently selected item to FileMenu
- onButtonClick: {
- menuListView.currentIndex = 0
- }
- }
- Button{
- height: 20
- width: 50
- id: editButton
- buttonColor : menuListView.currentIndex == 1? editColor : Qt.darker(editColor, 1.5)
- scale: menuListView.currentIndex == 1? 1.25: 1
- label: "Edit"
- radius: 1
-
- //on a button click, change the list's currently selected item to EditMenu
- onButtonClick: {
- menuListView.currentIndex = 1
- }
-
-
- }
-
-
- }
- }
-
- //a list of visual items already have delegates handling their display
- ObjectModel{
- id: menuListModel
-
- FileMenu{
- width: menuListView.width
- height: menuBar.height
- color: fileColor
- }
- EditMenu{
- color: editColor
- width: menuListView.width
- height: menuBar.height
-
- }
- }
-
- //list view will display a model according to a delegate
- ListView{
- id: menuListView
- anchors.fill:parent
- anchors.bottom: parent.bottom
- width:parent.width
- height: parent.height
-
- //the model contains the data
- model: menuListModel
-
- //control the movement of the menu switching
- snapMode: ListView.SnapOneItem
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickDeceleration: 5000
- highlightFollowsCurrentItem: true
- highlightMoveDuration:240
- highlightRangeMode: ListView.StrictlyEnforceRange
- }
-
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/TextArea.qml b/examples/quick/tutorials/gettingStartedQml/parts/part3/TextArea.qml
deleted file mode 100644
index 6f860597e6..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/TextArea.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id:textArea
-
- width :400
- height:400
- color: "white"
-
- Flickable{
- id: flickArea
-
- width: parent.width
- height: parent.height
- anchors.fill:parent
-
- function ensureVisible(r){
- if (contentX >= r.x)
- contentX = r.x;
- else if (contentX+width <= r.x+r.width)
- contentX = r.x+r.width-width;
- if (contentY >= r.y)
- contentY = r.y;
- else if (contentY+height <= r.y+r.height)
- contentY = r.y+r.height-height;
- }
-
- TextEdit{
- id: textEditor
- anchors.fill:parent
- width:parent.width; height:parent.height
- color:"midnightblue"
- focus: true
-
- wrapMode: TextEdit.Wrap
-
- onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle)
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/TextEditor.qml b/examples/quick/tutorials/gettingStartedQml/parts/part3/TextEditor.qml
deleted file mode 100644
index 86695075ff..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/TextEditor.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
-
- id: screen
- width: 1000; height: 1000
- border.color:"black"
- //the screen is partitioned into the MenuBar and TextArea. 1/3 of the screen is assigned to the MenuBar
- property int partition: height/3
-
- MenuBar{
- id:menuBar
- height: partition
- width:parent.width
- z: 1
- }
-
-
- TextArea{
- id:textArea
- anchors.bottom:parent.bottom
- y: partition
- color: "azure"
- height: partition*2
- width:parent.width
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/images/arrow.png b/examples/quick/tutorials/gettingStartedQml/parts/part3/images/arrow.png
deleted file mode 100644
index 14978c2e56..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/images/arrow.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/pics/qml-texteditor3_texteditor.png b/examples/quick/tutorials/gettingStartedQml/parts/part3/pics/qml-texteditor3_texteditor.png
deleted file mode 100644
index d0623b5a79..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/pics/qml-texteditor3_texteditor.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject b/examples/quick/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject
deleted file mode 100644
index 2bb4016996..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject
+++ /dev/null
@@ -1,14 +0,0 @@
-import QmlProject 1.0
-
-Project {
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/Button.qml b/examples/quick/tutorials/gettingStartedQml/parts/part4/Button.qml
deleted file mode 100644
index 7ccfb6e7c8..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/Button.qml
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
-
- //identifier of the item
- id: button
-
- //these properties act as constants, useable outside this QML file
- property int buttonHeight: 75
- property int buttonWidth: 150
-
- //attaches to the Text element's text content
- property string label
- property color textColor: buttonLabel.color
-
- //the color highlight when the mouse hovers on the rectangle
- property color onHoverColor: "gold"
- property color borderColor: "white"
-
- //buttonColor is set to the button's main color
- property color buttonColor: "lightblue"
-
- //set appearance properties
- radius:10
- antialiasing: true
- border.color: "white"
- border.width: 3
- width: buttonWidth; height: buttonHeight
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: label //"button label" //bind the text to the parent's text
- }
-
- //buttonClick() is callable and a signal handler, onButtonClick is automatically created
- signal buttonClick()
- onButtonClick: {
- console.log(buttonLabel.text + " clicked" )
- }
-
- //define the clickable area to be the whole rectangle
- MouseArea{
- id: buttonMouseArea
- anchors.fill: parent //stretch the area to the parent's dimension
- onClicked: buttonClick()
-
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
- hoverEnabled: true
-
- //display a border if the mouse hovers on the button mouse area
- onEntered: parent.border.color = onHoverColor
- //remove the border if the mouse exits the button mouse area
- onExited: parent.border.color = borderColor
-
- }
-
- //change the color of the button when pressed
- color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
- //animate the color whenever the color property changes
- Behavior on color { ColorAnimation{ duration: 55} }
-
- //scale the button when pressed
- scale: buttonMouseArea.pressed ? 1.1 : 1.00
- //Animate the scale property change
- Behavior on scale { NumberAnimation{ duration: 55} }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/EditMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part4/EditMenu.qml
deleted file mode 100644
index 60331fb290..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/EditMenu.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: editMenu
- height: 480; width:1000
- color: "powderblue"
- property string menuName:"Edit"
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#6A6F70" }
- GradientStop { position: 1.0; color: Qt.darker("#6A6D67") }
- }
-
- Rectangle{
- id:actionContainer
- color:"transparent"
- anchors.centerIn: parent
-
- width: parent.width; height: parent.height / 5
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Cut"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Paste"
- }
- Button{
- id: exitButton
- label: "Select All"
- buttonColor: "darkgrey"
- }
- }
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/FileMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part4/FileMenu.qml
deleted file mode 100644
index b759dc18f3..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/FileMenu.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: fileMenu
-
- //the menuName is accessible from outside this QML file
- property string menuName: "File"
-
- //generous amount of screen space that will allow the buttons to fit
- height: 480; width:1000
-
- color: "#6C646A"
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#6C646A" }
- GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") }
- }
-
- //a sub-rectangle allows the flexibility of setting the row area
- Rectangle{
- id:actionContainer
-
- //make this rectangle invisible
- color:"transparent"
- anchors.centerIn: parent
-
- //the height is a good proportion that creates more space at the top of the row of buttons
- width: parent.width; height: parent.height / 5
-
- Row{
- anchors.centerIn: parent
- spacing: parent.width/6
- Button{
- id: loadButton
- buttonColor: "lightgrey"
- label: "Load"
- }
-
- Button{
- buttonColor: "grey"
- id: saveButton
- label: "Save"
- }
- Button{
- id: exitButton
- label: "Exit"
- buttonColor: "darkgrey"
-
- //exit the application if the exitButton is clicked
- onButtonClick:{
- Qt.quit()
- }
- }
- }
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/MenuBar.qml b/examples/quick/tutorials/gettingStartedQml/parts/part4/MenuBar.qml
deleted file mode 100644
index 7bb1d2d30e..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/MenuBar.qml
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQml.Models 2.1
-
-Rectangle {
- id: menuBar
- width: 1000
- height:300
-
- property color fileColor: "plum"
- property color editColor: "powderblue"
-
- //container for the header and the buttons
- Rectangle{
-
- id: labelList
- height:parent.height/10
- width: parent.width
- color: "beige"
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.98;color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#0e1B20" }
- }
-
- //default z is 0, items with higher z values are shown on top of items with lower z values
- z: 1
-
- //row displays its children in a vertical row
- Row{
- anchors.centerIn: parent
- spacing:40
- Button{
- height: 20
- width: 50
- label: "File"
- id: fileButton
- buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5)
- scale: menuListView.currentIndex == 0? 1.25: 1
- radius: 1
-
- //on a button click, change the list's currently selected item to FileMenu
- onButtonClick: {
- menuListView.currentIndex = 0
- }
- }
- Button{
- height: 20
- width: 50
- id: editButton
- buttonColor : menuListView.currentIndex == 1? editColor : Qt.darker(editColor, 1.5)
- scale: menuListView.currentIndex == 1? 1.25: 1
- label: "Edit"
- radius: 1
-
- //on a button click, change the list's currently selected item to EditMenu
- onButtonClick: {
- menuListView.currentIndex = 1
- }
-
-
- }
-
-
- }
- }
-
- //a list of visual items already have delegates handling their display
- ObjectModel{
- id: menuListModel
-
- FileMenu{
- width: menuListView.width
- height: menuBar.height
- color: fileColor
- }
- EditMenu{
- color: editColor
- width: menuListView.width
- height: menuBar.height
-
- }
- }
-
- //list view will display a model according to a delegate
- ListView{
- id: menuListView
- anchors.fill:parent
- anchors.bottom: parent.bottom
- width:parent.width
- height: parent.height
-
- //the model contains the data
- model: menuListModel
-
- //control the movement of the menu switching
- snapMode: ListView.SnapOneItem
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickDeceleration: 5000
- highlightFollowsCurrentItem: true
- highlightMoveDuration:240
- highlightRangeMode: ListView.StrictlyEnforceRange
- }
-
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml b/examples/quick/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml
deleted file mode 100644
index ddaf557ccc..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: simplebutton
- color: "grey"
- width: 150; height: 75
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: "button label"
- }
-
- MouseArea{
- id: buttonMouseArea
- anchors.fill: parent
- onClicked: console.log(buttonLabel.text + " clicked" )
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/TextArea.qml b/examples/quick/tutorials/gettingStartedQml/parts/part4/TextArea.qml
deleted file mode 100644
index de08c421ce..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/TextArea.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id:textArea
-
- width :400
- height:400
- property color fontColor: "white"
-
- Flickable{
- id: flickArea
-
- width: parent.width
- height: parent.height
- anchors.fill:parent
-
- function ensureVisible(r){
- if (contentX >= r.x)
- contentX = r.x;
- else if (contentX+width <= r.x+r.width)
- contentX = r.x+r.width-width;
- if (contentY >= r.y)
- contentY = r.y;
- else if (contentY+height <= r.y+r.height)
- contentY = r.y+r.height-height;
- }
-
- TextEdit{
- id: textEditor
- anchors.fill:parent
- width:parent.width; height:parent.height
- color:fontColor
- focus: true
-
- wrapMode: TextEdit.Wrap
-
- onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle)
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/TextEditor.qml b/examples/quick/tutorials/gettingStartedQml/parts/part4/TextEditor.qml
deleted file mode 100644
index dea6b72ebf..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/TextEditor.qml
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: screen
- width: 1000; height: 1000
- property int partition: height/3
- state: "DRAWER_CLOSED"
-
-
- //Item 1: MenuBar on the top portion of the screen
- MenuBar{
- id:menuBar
- height: partition
- //anchors.top:parent.top
- width:parent.width
- z:1
- }
-
-
- //Item 2: The editable text area
- TextArea{
- id:textArea
- y:drawer.height
- border.color: Qt.darker(color, 1.4)
- border.width: 2
- color: "#3F3F3F"
- fontColor: "#DCDCCC"
- height: partition*2
- width:parent.width
- }
-
- //Item 3: The drawer handle
- Rectangle{
- id:drawer
- height:15
- width: parent.width
- border.color : "#6A6D6A"
- border.width: 1
-
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.77; color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#6A6D6A" }
- }
-
- Image{
- id: arrowIcon
- source: "images/arrow.png"
- anchors.horizontalCenter: parent.horizontalCenter
-
- Behavior{NumberAnimation{property: "rotation";easing.type: Easing.OutExpo }}
- }
-
- MouseArea{
- id: drawerMouseArea
- anchors.fill:parent
- onClicked:{
- if (screen.state == "DRAWER_CLOSED"){
- screen.state = "DRAWER_OPEN"
- console.log("drawer OPEN")
- }
- else if (screen.state == "DRAWER_OPEN"){
- screen.state = "DRAWER_CLOSED"
- console.log("drawer closed")
- }
- }
-
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
- hoverEnabled: true
-
- //display a border if the mouse hovers on the button mouse area
- onEntered: parent.border.color = Qt.lighter("#6A6D6A")
- //remove the border if the mouse exits the button mouse area
- onExited: parent.border.color = "#6A6D6A"
- }
-
- }
- states:[
- State{
- name: "DRAWER_OPEN"
- PropertyChanges { target: menuBar; y:0}
- PropertyChanges { target: textArea; y: partition + drawer.height}
- PropertyChanges { target: drawer; y: partition}
- PropertyChanges { target: arrowIcon; rotation: 180}
- },
- State{
- name: "DRAWER_CLOSED"
- PropertyChanges { target: menuBar; y:-partition}
- PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height}
- PropertyChanges { target: drawer; y: 0}
- PropertyChanges { target: arrowIcon; rotation: 0}
- }
-
- ]
- transitions: [
- Transition{
- to: "*"
- NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo }
- NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutExpo }
- NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutExpo }
- }
-
- ]
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/images/arrow.png b/examples/quick/tutorials/gettingStartedQml/parts/part4/images/arrow.png
deleted file mode 100644
index 14978c2e56..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/images/arrow.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/pics/qml-texteditor4_texteditor.png b/examples/quick/tutorials/gettingStartedQml/parts/part4/pics/qml-texteditor4_texteditor.png
deleted file mode 100644
index a195fb87c3..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/pics/qml-texteditor4_texteditor.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject b/examples/quick/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject
deleted file mode 100644
index 2bb4016996..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject
+++ /dev/null
@@ -1,14 +0,0 @@
-import QmlProject 1.0
-
-Project {
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/TextEditor.qml b/examples/quick/tutorials/gettingStartedQml/parts/part5/TextEditor.qml
deleted file mode 100644
index 77e272f623..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/TextEditor.qml
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "core"
-
-Rectangle {
- id: screen
- width: 1000; height: 1000
- property int partition: height/3
- state: "DRAWER_CLOSED"
-
- //Item 1: MenuBar on the top portion of the screen
- MenuBar{
- id:menuBar
- height: screen.partition; width: screen.width
- z:1
- }
- //Item 2: The editable text area
- TextArea{
- id:textArea
- y:drawer.height
- color: "#3F3F3F"
- fontColor: "#DCDCCC"
- height: partition*2; width:parent.width
- }
- //Item 3: The drawer handle
- Rectangle{
- id:drawer
- height:15; width: parent.width
- border.color : "#6A6D6A"
- border.width: 1
- z:1
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.77; color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#6A6D6A" }
- }
- Image{
- id: arrowIcon
- source: "images/arrow.png"
- anchors.horizontalCenter: parent.horizontalCenter
-
- Behavior{NumberAnimation{property: "rotation";easing.type: Easing.OutExpo }}
- }
-
- MouseArea{
- id: drawerMouseArea
- anchors.fill:parent
- hoverEnabled: true
- onEntered: parent.border.color = Qt.lighter("#6A6D6A")
- onExited: parent.border.color = "#6A6D6A"
- onClicked:{
- if (screen.state == "DRAWER_CLOSED"){
- screen.state = "DRAWER_OPEN"
- }
- else if (screen.state == "DRAWER_OPEN"){
- screen.state = "DRAWER_CLOSED"
- }
- }
- }
- }
-
- states:[
- State{
- name: "DRAWER_OPEN"
- PropertyChanges { target: menuBar; y: 0}
- PropertyChanges { target: textArea; y: partition + drawer.height}
- PropertyChanges { target: drawer; y: partition}
- PropertyChanges { target: arrowIcon; rotation: 180}
- },
- State{
- name: "DRAWER_CLOSED"
- PropertyChanges { target: menuBar; y:-height; }
- PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height}
- PropertyChanges { target: drawer; y: 0}
- PropertyChanges { target: arrowIcon; rotation: 0}
- }
- ]
-
- transitions: [
- Transition{
- to: "*"
- NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo }
- NumberAnimation { target: menuBar; properties: "y"; duration: 100;easing.type: Easing.OutExpo }
- NumberAnimation { target: drawer; properties: "y"; duration: 100;easing.type: Easing.OutExpo }
- }
- ]
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/Button.qml b/examples/quick/tutorials/gettingStartedQml/parts/part5/core/Button.qml
deleted file mode 100644
index efa5225e98..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/Button.qml
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
-
- //identifier of the item
- id: button
-
- //these properties act as constants, useable outside this QML file
- property int buttonHeight: 75
- property int buttonWidth: 150
-
- //attaches to the Text element's text content
- property string label
- property color textColor: buttonLabel.color
-
- //the color highlight when the mouse hovers on the rectangle
- property color onHoverColor: "lightsteelblue"
- property color borderColor: "transparent"
-
- //buttonColor is set to the button's main color
- property color buttonColor: "lightblue"
-
- property real labelSize: 14
- //set appearance properties
- radius:6
- antialiasing: true
- border.width: 2
- border.color: borderColor
- width: buttonWidth; height: buttonHeight
-
- Text{
- id: buttonLabel
- anchors.centerIn: parent
- text: label //bind the text to the parent's text
- color: "#DCDCCC"
- font.pointSize: labelSize
- }
-
- //buttonClick() is callable and a signal handler, onButtonClick is automatically created
- signal buttonClick()
-
- //define the clickable area to be the whole rectangle
- MouseArea{
- id: buttonMouseArea
- anchors.fill: parent //stretch the area to the parent's dimension
- onClicked: buttonClick()
-
- //if true, then onEntered and onExited called if mouse hovers in the mouse area
- //if false, a button must be clicked to detect the mouse hover
- hoverEnabled: true
-
- //display a border if the mouse hovers on the button mouse area
- onEntered: parent.border.color = onHoverColor
- //remove the border if the mouse exits the button mouse area
- onExited: parent.border.color = borderColor
-
- }
-
- //change the color of the button when pressed
- color: buttonMouseArea.pressed ? Qt.darker(buttonColor, 1.5) : buttonColor
- //animate the color whenever the color property changes
- Behavior on color { ColorAnimation{ duration: 55} }
-
- //scale the button when pressed
- scale: buttonMouseArea.pressed ? 1.1 : 1.00
- //Animate the scale property change
- Behavior on scale { NumberAnimation{ duration: 55} }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml
deleted file mode 100644
index d273950e9f..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id: editMenu
- height: 480; width:1000
- color: "powderblue"
- property color buttonBorderColor: "#7A8182"
- property color buttonFillColor: "#61BDCACD"
- property string menuName:"Edit"
-
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#6A7570" }
- GradientStop { position: 1.0; color: Qt.darker("#6A7570") }
- }
-
- Rectangle{
- id:actionContainer
- color:"transparent"
- anchors.centerIn: parent
- width: parent.width; height: parent.height / 5
- Row{
- anchors.centerIn: parent
- spacing: parent.width/9
- Button{
- id: loadButton
- buttonColor: buttonFillColor
- label: "Copy"
- labelSize:16
- borderColor:buttonBorderColor
- height: actionContainer.height
- width: actionContainer.width/6
- onButtonClick:textArea.copy()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
-
- Button{
- id: saveButton
- height: actionContainer.height
- width: actionContainer.width/6
- buttonColor: buttonFillColor
- label: "Paste"
- borderColor:buttonBorderColor
- labelSize:16
- onButtonClick:textArea.paste()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- Button{
- id: exitButton
- label: "Select All"
- height: actionContainer.height
- width: actionContainer.width/6
- labelSize:16
- buttonColor: buttonFillColor
- borderColor:buttonBorderColor
- onButtonClick:textArea.selectAll()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- }
- }
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml b/examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml
deleted file mode 100644
index 54b34dc084..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml
+++ /dev/null
@@ -1,171 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id:dialog
- height: 200 * partition; width: 200
- color: "transparent"
-
- signal selectChanged()
- signal notifyRefresh()
- onNotifyRefresh:dirView.model = directory.files
-
- property string selectedFile
- property int selectedIndex: 0
-
- Rectangle{
- id: dirBox
- radius: 10
- antialiasing: true
- anchors.centerIn:parent
- height: parent.height -15; width: parent.width -30
-
- Rectangle{
- id:header
- height:parent.height*0.1
- width: parent.width
- radius:3
- antialiasing: true
- z:1
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.98;color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#0e1B20" }
- }
- Text{
- height: header.height
- anchors.centerIn: header
- text: "files:"
- color: "lightblue"
- font.weight: Font.Light
- font.italic: true
- }
- }
- GridView{
- id:dirView
- width:parent.width
- height:parent.height*.9
- anchors.top: header.bottom
- cellWidth: 100
- cellHeight: 75
-// highlight: Rectangle { width:cellWidth; height: cellHeight; color: "lightsteelblue" ;radius: 13}
- model: directory.files
- delegate: dirDelegate
- clip: true
- highlightMoveDuration:40
- }
-
- Component{
- id:dirDelegate
-
- Rectangle{
- id:file
- color: "transparent"
- width: GridView.view.cellWidth; height: GridView.view.cellHeight
-
- Text{
- id:fileName
- width: parent.width
- anchors.centerIn:parent
- text: name
- color: "#BDCACD"
- font.weight: GridView.view.currentIndex == index ? Font.DemiBold : Font.Normal
- font.pointSize: GridView.view.currentIndex == index ? 12 : 10
- elide: Text.ElideMiddle
- horizontalAlignment: Text.AlignHCenter
- }
- Rectangle{
- id:selection
- width:parent.width; height:parent.height
- anchors.centerIn: parent
- radius: 10
- antialiasing: true
- scale: GridView.view.currentIndex == index ? 1 : 0.5
- opacity: GridView.view.currentIndex == index ? 1 : 0
- Text{
- id:overlay
- width: parent.width
- anchors.centerIn:parent
- text: name
- color: "#696167"
- font.weight: Font.DemiBold
- font.pointSize: 12
- elide: Text.ElideMiddle
- horizontalAlignment: Text.AlignHCenter
- }
- Behavior on opacity{ NumberAnimation{ duration: 45} }
- Behavior on scale { NumberAnimation{ duration: 45} }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter("lightsteelblue",1.25) }
- GradientStop { position: 0.67; color: Qt.darker("lightsteelblue",1.3) }
- }
- border.color:"lightsteelblue"
- border.width:1
- }
- MouseArea{
- id:fileMouseArea
- anchors.fill:parent
- hoverEnabled: true
-
- onClicked:{
- GridView.view.currentIndex = index
- selectedFile = directory.files[index].name
- selectChanged()
- }
- onEntered:{
- fileName.color = "lightsteelblue"
- fileName.font.weight = Font.DemiBold
- }
- onExited: {
- fileName.font.weight = Font.Normal
- fileName.color = "#BDCACD"
- }
- }
- }
- }
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#A5333333" }
- GradientStop { position: 1.0; color: "#03333333" }
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml b/examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml
deleted file mode 100644
index d912dc055f..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml
+++ /dev/null
@@ -1,233 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import "../filedialog" 1.0
-
-Rectangle {
- id: fileMenu
- height: 480; width:1000
- property color buttonBorderColor: "#7F8487"
- property color buttonFillColor: "#8FBDCACD"
- property string fileContent:directory.fileContent
-
- //the menuName is accessible from outside this QML file
- property string menuName: "File"
-
- //used to divide the screen into parts.
- property real partition: 1/3
-
- color: "#6C646A"
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#6C646A" }
- GradientStop { position: 1.0; color: Qt.darker("#6A6D6A") }
- }
-
- Directory{
- id:directory
- filename: textInput.text
- onDirectoryChanged:fileDialog.notifyRefresh()
- }
-
- Rectangle{
- id:actionContainer
-
- //make this rectangle invisible
- color:"transparent"
- anchors.left: parent.left
-
- //the height is a good proportion that creates more space at the top of the column of buttons
- width: fileMenu.width * partition; height: fileMenu.height
-
- Column{
- anchors.centerIn: parent
- spacing: parent.height/32
- Button{
- id: saveButton
- label: "Save"
- borderColor: buttonBorderColor
- buttonColor: buttonFillColor
- width: actionContainer.width/ 1.3
- height:actionContainer.height / 8
- labelSize:24
- onButtonClick:{
- directory.fileContent = textArea.textContent
- directory.filename = textInput.text
- directory.saveFile()
- }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
-
- }
- Button{
- id: loadButton
- width: actionContainer.width/ 1.3
- height:actionContainer.height/ 8
- buttonColor: buttonFillColor
- borderColor: buttonBorderColor
- label: "Load"
- labelSize:24
- onButtonClick:{
- directory.filename = textInput.text
- directory.loadFile()
- textArea.textContent = directory.fileContent
- }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- Button{
- id: newButton
- width: actionContainer.width/ 1.3
- height:actionContainer.height/ 8
- buttonColor: buttonFillColor
- borderColor: buttonBorderColor
- label: "New"
- labelSize:24
- onButtonClick:{
- textArea.textContent = ""
- textInput.text = ""
- }
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
-
- }
- Rectangle{
- id: space
- width: actionContainer.width/ 1.3
- height:actionContainer.height / 16
- color:"transparent"
- }
- Button{
- id: exitButton
- width: actionContainer.width/ 1.3
- height:actionContainer.height/ 8
- label: "Exit"
- labelSize:24
- buttonColor: buttonFillColor
- borderColor: buttonBorderColor
- onButtonClick:Qt.quit()
- gradient: Gradient {
- GradientStop { position: 0.0; color: Qt.lighter(buttonFillColor,1.25) }
- GradientStop { position: 0.67; color: Qt.darker(buttonFillColor,1.3) }
- }
- }
- }
- }
-
- Rectangle{
- id:dialogContainer
-
- width: 2*fileMenu.width * partition; height: fileMenu.height
- anchors.right:parent.right
- color:"transparent"
-
- Column {
- anchors.centerIn: parent
- spacing: parent.height /640
- FileDialog{
- id:fileDialog
- height: 2*dialogContainer.height * partition; width: dialogContainer.width
- onSelectChanged: textInput.text = selectedFile
- }
-
- Rectangle{
- id:lowerPartition
- height: dialogContainer.height * partition; width: dialogContainer.width
- color: "transparent"
-
- Rectangle{
- id: nameField
- gradient: Gradient{
- GradientStop { position: 0.0; color: "#806F6F6F" }
- GradientStop { position: 1.0; color: "#136F6F6F" }
- }
-
- radius: 10
- anchors {centerIn:parent; leftMargin: 15; rightMargin: 15; topMargin: 15}
- height: parent.height-15; width: parent.width -20
- border {color:"#4A4A4A"; width:1}
-
- TextInput{
- id: textInput
- z:2
- anchors {bottom: parent.bottom; topMargin: 10; horizontalCenter:parent.horizontalCenter}
- width: parent.width - 10
- height: parent.height -10
- font.pointSize: 40
- color:"lightsteelblue"
- focus:true
- }
- Text{
- id: textInstruction
- anchors.centerIn:parent
- text: "Select file name and press save or load"
- font {pointSize: 11; weight:Font.Light; italic: true}
- color: "lightblue"
- z:2
- opacity: (textInput.text == "") ? 1: 0
- }
- Text{
- id:fieldLabel
- anchors {top: parent.top; left: parent.left}
- text: " file name: "
- font {pointSize: 11; weight: Font.Light; italic: true}
- color: "lightblue"
- z:2
- }
- MouseArea{
- anchors.centerIn:parent
- width: nameField.width; height: nameField.height
- onClicked:{
- textInput.text = ""
- textInput.focus = true
- textInput.forceFocus()
- }
- }
- }
- }
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml b/examples/quick/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml
deleted file mode 100644
index 3600be7868..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-import QtQml.Models 2.1
-
-Rectangle {
- id: menuBar
- width: 1000; height:300
- color:"transparent"
- property color fileColor: "plum"
- property color editColor: "powderblue"
-
- property real partition: 1/10
-
- Column{
- anchors.fill: parent
- //container for the header and the buttons
- z: 1
- Rectangle{
- id: labelList
- height:menuBar.height*partition
- width: menuBar.width
- color: "beige"
- gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.98;color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#0e1B20" }
- }
- Text{
- height: parent.height
- anchors {right: labelRow.left ; verticalCenter: parent.bottom}
- text: "menu: "
- color: "lightblue"
- font {weight: Font.Light; italic: true}
- }
-
- //row displays its children in a vertical row
- Row{
- id: labelRow
- anchors.centerIn: parent
- spacing:40
- Button{
- id: fileButton
- height: 20; width: 50
- label: "File"
- buttonColor : menuListView.currentIndex == 0? fileColor : Qt.darker(fileColor, 1.5)
- scale: menuListView.currentIndex == 0? 1.25: 1
- labelSize: menuListView.currentIndex == 0? 16:12
- radius: 1
- //on a button click, change the list's currently selected item to FileMenu
- onButtonClick: menuListView.currentIndex = 0
- gradient: Gradient{
- GradientStop { position: 0.0; color: fileColor }
- GradientStop { position: 1.0; color: "#136F6F6F" }
- }
- }
- Button{
- id: editButton
- height: 20; width: 50
- buttonColor : menuListView.currentIndex == 1? Qt.darker(editColor, 1.5) : Qt.darker(editColor, 1.9)
- scale: menuListView.currentIndex == 1? 1.25: 1
- label: "Edit"
- radius: 1
- labelSize: menuListView.currentIndex == 1? 16:12
- //on a button click, change the list's currently selected item to EditMenu
- onButtonClick: menuListView.currentIndex = 1
- gradient: Gradient{
- GradientStop { position: 0.0; color: editColor }
- GradientStop { position: 1.0; color: "#136F6F6F" }
- }
- }
- }
- }
-
- //list view will display a model according to a delegate
- ListView{
- id: menuListView
- width:menuBar.width; height: 9*menuBar.height*partition
-
- //the model contains the data
- model: menuListModel
-
- //control the movement of the menu switching
- snapMode: ListView.SnapOneItem
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickDeceleration: 5000
- highlightFollowsCurrentItem: true
- highlightMoveDuration:240
- highlightRangeMode: ListView.StrictlyEnforceRange
- }
- }
- //a list of visual items already have delegates handling their display
- ObjectModel{
- id: menuListModel
-
- FileMenu{
- id:fileMenu
- width: menuListView.width; height: menuListView.height
- color: fileColor
- }
- EditMenu{
- color: editColor
- width: menuListView.width; height: menuListView.height
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml b/examples/quick/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml
deleted file mode 100644
index e31c652469..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-Rectangle {
- id:textArea
-
- function paste(){ textEdit.paste()}
- function copy() { textEdit.copy() }
- function selectAll() { textEdit.selectAll() }
-
- width :400; height:400
-
- property color fontColor: "white"
- property alias textContent: textEdit.text
- Flickable{
- id: flickArea
- width: parent.width; height: parent.height
- anchors.fill:parent
-
- boundsBehavior: Flickable.StopAtBounds
- flickableDirection: Flickable.HorizontalFlick
- interactive: true
- //Will move the text Edit area to make the area visible when scrolled with keyboard strokes
- function ensureVisible(r){
- if (contentX >= r.x)
- contentX = r.x;
- else if (contentX+width <= r.x+r.width)
- contentX = r.x+r.width-width;
- if (contentY >= r.y)
- contentY = r.y;
- else if (contentY+height <= r.y+r.height)
- contentY = r.y+r.height-height;
- }
-
- TextEdit{
- id: textEdit
- anchors.fill:parent
- width:parent.width; height:parent.height
- color:fontColor
- focus: true
- wrapMode: TextEdit.Wrap
- font.pointSize:10
- onCursorRectangleChanged: flickArea.ensureVisible(cursorRectangle)
- selectByMouse: true
- }
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/qmldir b/examples/quick/tutorials/gettingStartedQml/parts/part5/core/qmldir
deleted file mode 100644
index b8b0c7c431..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/core/qmldir
+++ /dev/null
@@ -1,11 +0,0 @@
-
-Button ./Button.qml
-FileDialog ./FileDialog.qml
-TextArea ./TextArea.qml
-TextEditor ./TextEditor.qml
-EditMenu ./EditMenu.qml
-MenuBar ./MenuBar.qml
-
-
-
-
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp
deleted file mode 100644
index 9da7a4a540..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "dialogPlugin.h"
-#include "directory.h"
-#include "file.h"
-#include <QtQml/qqml.h>
-
-void DialogPlugin::registerTypes(const char *uri){
-
- //register the class Directory into QML as a "Directory" element version 1.0
- qmlRegisterType<Directory>(uri, 1, 0, "Directory");
- qmlRegisterType<File>(uri,1,0,"File");
-
- //qRegisterMetaType<QQmlListProperty<QString> > ("QQmlListProperty<QString>");
-
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h
deleted file mode 100644
index 58248ffcac..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DIALOGPLUGIN_H
-#define DIALOGPLUGIN_H
-
-#include <QtQml/QQmlExtensionPlugin>
-
-class DialogPlugin : public QQmlExtensionPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID "org.qt-project.QmlExtensionPlugin.FileDialog")
- public:
- //registerTypes is inherited from QQmlExtensionPlugin
- void registerTypes(const char *uri);
-
-};
-
-#endif
-
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp
deleted file mode 100644
index 7fdee99841..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp
+++ /dev/null
@@ -1,219 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "directory.h"
-#include <QDebug>
-
-/*
-Directory constructor
-
-Initialize the saves directory and creates the file list
-*/
-Directory::Directory(QObject *parent) : QObject(parent)
-{
-
-
- m_dir.cd( QDir::currentPath());
-
- //go to the saved directory. if not found, create save directory
- m_saveDir = "saves";
- if (m_dir.cd(m_saveDir) == 0){
- m_dir.mkdir(m_saveDir);
- m_dir.cd(m_saveDir);
- }
- m_filterList << "*.txt";
-
- refresh();
-}
-
-/*
-Directory::filesNumber
-Return the number of Files
-*/
-int Directory:: filesCount() const{
- return m_fileList.size();
-}
-
-/*
-Function called to append data onto list property
-*/
-void appendFiles(QQmlListProperty<File> * property, File * file){
- //Do nothing. can't add to a directory using this method
-}
-
-/*
-Function called to retrieve file in the list using an index
-*/
-File* fileAt(QQmlListProperty<File> * property, int index){
- return static_cast< QList<File *> *>(property->data)->at(index);
-}
-
-/*
-Returns the number of files in the list
-*/
-int filesSize(QQmlListProperty<File> * property){
- return static_cast< QList<File *> *>(property->data)->size();
-}
-
-/*
-Function called to empty the list property contents
-*/
-void clearFilesPtr(QQmlListProperty<File> *property){
- return static_cast< QList<File *> *>(property->data)->clear();
-}
-
-/*
-Returns the list of files as a QQmlListProperty.
-*/
-QQmlListProperty<File> Directory::files(){
-
- refresh();
-// return QQmlListProperty<QString>(this,m_filePtrList); //not recommended in the docs
- return QQmlListProperty<File>( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr );
-}
-
-/*
-Return te name of the currently selected file
-*/
-QString Directory::filename() const{
- return currentFile.name();
-}
-
-/*
-Return the file's content as a string.
-*/
-QString Directory::fileContent() const{
- return m_fileContent;
-}
-
-/*
-Set the file name of the current file
-*/
-void Directory::setFilename(const QString &str){
- if(str != currentFile.name()){
- currentFile.setName(str);
- emit filenameChanged();
- }
-}
-
-/*
-Set the content of the file as a string
-*/
-void Directory::setFileContent(const QString &str){
- if(str != m_fileContent){
- m_fileContent = str;
- emit fileContentChanged();
- }
-}
-
-/*
-Called from QML to save the file using the filename and file content.
-Saving makes sure that the file has a .txt extension.
-*/
-void Directory::saveFile(){
-
- if(currentFile.name().size() == 0){
- qWarning()<< "Empty filename. no save";
- return;
- }
-
- QString extendedName = currentFile.name();
- if(!currentFile.name().endsWith(".txt")){
- extendedName.append(".txt");
- }
-
- QFile file( m_dir.filePath(extendedName) );
- if (file.open(QFile::WriteOnly | QFile::Truncate)){
- QTextStream outStream(&file);
- outStream << m_fileContent;
- }
- file.close();
- refresh();
- emit directoryChanged();
-}
-
-/*
-Load the contents of a file.
-Only loads files with a .txt extension
-*/
-void Directory::loadFile(){
-
- m_fileContent.clear();
- QString extendedName = currentFile.name();
- if(!currentFile.name().endsWith(".txt")){
- extendedName.append(".txt");
- }
-
- QFile file( m_dir.filePath(extendedName) );
- if (file.open(QFile::ReadOnly )){
- QTextStream inStream(&file);
-
- QString line;
- do{
- line = inStream.read(75);
- m_fileContent.append(line);
- }while (!line .isNull());
- }
- file.close();
-}
-
-/*
-Reloads the content of the files list. This is to ensure that the newly
-created files are added onto the list.
-*/
-void Directory::refresh(){
- m_dirFiles = m_dir.entryList(m_filterList,QDir::Files,QDir::Name);
- m_fileList.clear();
-
- File * file;
- for(int i = 0; i < m_dirFiles.size() ; i ++){
-
- file = new File();
-
- if(m_dirFiles.at(i).endsWith(".txt")){
- QString name = m_dirFiles.at(i);
- file->setName( name.remove(".txt",Qt::CaseSensitive));
- }
- else{
- file->setName(m_dirFiles.at(i));
- }
- m_fileList.append(file);
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h
deleted file mode 100644
index ddac6313e3..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DIRECTORY_H
-#define DIRECTORY_H
-
-#include "file.h"
-
-#include <QDir>
-#include <QStringList>
-#include <QTextStream>
-#include <QQmlListProperty>
-#include <QObject>
-
-class Directory : public QObject{
-
- Q_OBJECT
-
- //number of files in the directory
- Q_PROPERTY(int filesCount READ filesCount)
-
- //list property containing file names as QString
- Q_PROPERTY(QQmlListProperty<File> files READ files CONSTANT )
-
- //file name of the text file to read/write
- Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged)
-
- //text content of the file
- Q_PROPERTY(QString fileContent READ fileContent WRITE setFileContent NOTIFY fileContentChanged)
-
- public:
- Directory(QObject *parent = 0);
-
- //properties' read functions
- int filesCount() const;
- QString filename() const;
- QString fileContent() const;
- QQmlListProperty<File> files();
-
- //properties' write functions
- void setFilename(const QString &str);
- void setFileContent(const QString &str);
-
- //accessible from QML
- Q_INVOKABLE void saveFile();
- Q_INVOKABLE void loadFile();
-
- signals:
- void directoryChanged();
- void filenameChanged();
- void fileContentChanged();
-
- private:
- QDir m_dir;
- QStringList m_dirFiles;
- File currentFile;
- QString m_saveDir;
- QStringList m_filterList;
-
- //contains the file data in QString format
- QString m_fileContent;
-
- //Registered to QML in a plugin. Accessible from QML as a property of Directory
- QList<File *> m_fileList;
-
- //refresh content of the directory
- void refresh();
-};
-
-
-#endif
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp
deleted file mode 100644
index 502ce9f7a7..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "file.h"
-
-File::File(QObject *parent) : QObject(parent)
-{
- m_name = "";
-}
-
-QString File::name() const{
- return m_name;
-}
-void File::setName(const QString &str){
- if(str != m_name){
- m_name = str;
- emit nameChanged();
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.h b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.h
deleted file mode 100644
index bb49d4a3d8..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/file.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtQml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
-** of its contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef FILE_H
-#define FILE_H
-
-
-#include <QString>
-#include <QObject>
-
-class File : public QObject{
-
- Q_OBJECT
-
- Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
-
- public:
- File(QObject *parent = 0);
-
- QString name() const;
- void setName(const QString &str);
-
- signals:
- void nameChanged();
-
- private:
- QString m_name;
-};
-
-#endif
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro
deleted file mode 100644
index b3659d2b58..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-QT += qml
-
-DESTDIR += ../plugins
-OBJECTS_DIR = tmp
-MOC_DIR = tmp
-
-TARGET = FileDialog
-
-HEADERS += directory.h \
- file.h \
- dialogPlugin.h
-
-SOURCES += directory.cpp \
- file.cpp \
- dialogPlugin.cpp
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir b/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir
deleted file mode 100644
index 4a8d13d026..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-plugin FileDialog ../plugins
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/images/arrow.png b/examples/quick/tutorials/gettingStartedQml/parts/part5/images/arrow.png
deleted file mode 100644
index 14978c2e56..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/images/arrow.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_editmenu.png b/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_editmenu.png
deleted file mode 100644
index 27feed5e82..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_editmenu.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_filemenu.png b/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_filemenu.png
deleted file mode 100644
index 4d8f9f22b2..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_filemenu.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_newfile.png b/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_newfile.png
deleted file mode 100644
index 680acfe839..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_newfile.png
+++ /dev/null
Binary files differ
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject b/examples/quick/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject
deleted file mode 100644
index 2bb4016996..0000000000
--- a/examples/quick/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject
+++ /dev/null
@@ -1,14 +0,0 @@
-import QmlProject 1.0
-
-Project {
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
-}
diff --git a/examples/quick/tutorials/gettingStartedQml/texteditor.qml b/examples/quick/tutorials/gettingStartedQml/texteditor.qml
index 6f62301413..1850476b53 100644
--- a/examples/quick/tutorials/gettingStartedQml/texteditor.qml
+++ b/examples/quick/tutorials/gettingStartedQml/texteditor.qml
@@ -44,14 +44,14 @@ import "core"
Rectangle {
id: screen
width: 1000; height: 1000
- property int partition: height/3
- border { width: 1; color: "#DCDCCC"}
+ property int partition: height / 3
state: "DRAWER_CLOSED"
- //Item 1: MenuBar on the top portion of the screen
+ // Item 1: MenuBar on the top portion of the screen
MenuBar {
- id:menuBar
- height: screen.partition; width: screen.width
+ id: menuBar
+ height: screen.partition
+ width: screen.width
z: 1
}
@@ -61,26 +61,31 @@ Rectangle {
y: drawer.height
color: "#3F3F3F"
fontColor: "#DCDCCC"
- height: partition*2; width:parent.width
+ height: partition * 2
+ width: parent.width
}
- //Item 3: The drawer handle
+ // Item 3: The drawer handle
Rectangle {
id: drawer
- height: 15; width: parent.width
- border { color : "#6A6D6A"; width: 1 }
+ height:15; width: parent.width
+ border.color : "#6A6D6A"
+ border.width: 1
z: 1
+
gradient: Gradient {
- GradientStop { position: 0.0; color: "#8C8F8C" }
- GradientStop { position: 0.17; color: "#6A6D6A" }
- GradientStop { position: 0.77; color: "#3F3F3F" }
- GradientStop { position: 1.0; color: "#6A6D6A" }
- }
+ GradientStop { position: 0.0; color: "#8C8F8C" }
+ GradientStop { position: 0.17; color: "#6A6D6A" }
+ GradientStop { position: 0.77; color: "#3F3F3F" }
+ GradientStop { position: 1.0; color: "#6A6D6A" }
+ }
+
Image {
id: arrowIcon
source: "images/arrow.png"
anchors.horizontalCenter: parent.horizontalCenter
- Behavior{ NumberAnimation { property: "rotation"; easing.type: Easing.OutExpo } }
+
+ Behavior { NumberAnimation { property: "rotation"; easing.type: Easing.OutExpo } }
}
MouseArea {
@@ -88,30 +93,28 @@ Rectangle {
anchors.fill: parent
hoverEnabled: true
onEntered: parent.border.color = Qt.lighter("#6A6D6A")
- onExited: parent.border.color = "#6A6D6A"
+ onExited: parent.border.color = "#6A6D6A"
onClicked: {
- if (screen.state == "DRAWER_CLOSED") {
+ if (screen.state == "DRAWER_CLOSED")
screen.state = "DRAWER_OPEN"
- }
- else if (screen.state == "DRAWER_OPEN"){
+ else if (screen.state == "DRAWER_OPEN")
screen.state = "DRAWER_CLOSED"
- }
}
}
}
//! [states]
- states:[
+ states: [
State {
name: "DRAWER_OPEN"
- PropertyChanges { target: menuBar; y: 0}
- PropertyChanges { target: textArea; y: partition + drawer.height}
- PropertyChanges { target: drawer; y: partition}
- PropertyChanges { target: arrowIcon; rotation: 180}
+ PropertyChanges { target: menuBar; y: 0 }
+ PropertyChanges { target: textArea; y: partition + drawer.height }
+ PropertyChanges { target: drawer; y: partition }
+ PropertyChanges { target: arrowIcon; rotation: 180 }
},
State {
name: "DRAWER_CLOSED"
- PropertyChanges { target: menuBar; y:-height; }
+ PropertyChanges { target: menuBar; y: -height; }
PropertyChanges { target: textArea; y: drawer.height; height: screen.height - drawer.height }
PropertyChanges { target: drawer; y: 0 }
PropertyChanges { target: arrowIcon; rotation: 0 }
@@ -123,7 +126,7 @@ Rectangle {
transitions: [
Transition {
to: "*"
- NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type:Easing.OutExpo }
+ NumberAnimation { target: textArea; properties: "y, height"; duration: 100; easing.type: Easing.OutExpo }
NumberAnimation { target: menuBar; properties: "y"; duration: 100; easing.type: Easing.OutExpo }
NumberAnimation { target: drawer; properties: "y"; duration: 100; easing.type: Easing.OutExpo }
}
diff --git a/examples/quick/tutorials/gettingStartedQml/parts/part1/qml-texteditor.qmlproject b/examples/quick/tutorials/gettingStartedQml/texteditor.qmlproject
index 2bb4016996..72bdcdea73 100644
--- a/examples/quick/tutorials/gettingStartedQml/parts/part1/qml-texteditor.qmlproject
+++ b/examples/quick/tutorials/gettingStartedQml/texteditor.qmlproject
@@ -1,14 +1,20 @@
import QmlProject 1.0
Project {
+ mainFile: "texteditor.qml"
+
/* Include .qml, .js, and image files from current directory and subdirectories */
QmlFiles {
directory: "."
}
+
JavaScriptFiles {
directory: "."
}
+
ImageFiles {
directory: "."
}
+
+ importPaths: ["./imports"]
}
diff --git a/src/imports/dialogs/qml/Button.qml b/src/imports/dialogs/qml/Button.qml
index 4a0ec12cd3..26cc23a5be 100644
--- a/src/imports/dialogs/qml/Button.qml
+++ b/src/imports/dialogs/qml/Button.qml
@@ -49,8 +49,8 @@ Item {
signal clicked
property alias containsMouse: mouseArea.containsMouse
property alias pressed: mouseArea.pressed
- implicitHeight: buttonLabel.implicitHeight * 1.2
- implicitWidth: Math.max(Screen.logicalPixelDensity * 10, buttonLabel.implicitWidth * 1.2)
+ implicitHeight: Math.max(Screen.logicalPixelDensity * 7, buttonLabel.implicitHeight * 1.2)
+ implicitWidth: Math.max(Screen.logicalPixelDensity * 11, buttonLabel.implicitWidth * 1.3)
height: implicitHeight
width: implicitWidth
@@ -65,7 +65,7 @@ Item {
GradientStop { position: 1.0; color: Qt.darker(palette.button, 1.3) }
}
antialiasing: true
- radius: height / 4
+ radius: height / 6
border.color: Qt.darker(palette.button, 1.5)
border.width: 1
}
diff --git a/src/imports/dialogs/qquickabstractcolordialog.cpp b/src/imports/dialogs/qquickabstractcolordialog.cpp
index 7cfd7ea692..d565352af6 100644
--- a/src/imports/dialogs/qquickabstractcolordialog.cpp
+++ b/src/imports/dialogs/qquickabstractcolordialog.cpp
@@ -66,6 +66,8 @@ void QQuickAbstractColorDialog::setVisible(bool v)
{
if (helper() && v) {
m_dlgHelper->setOptions(m_options);
+ // Due to the fact that QColorDialogOptions doesn't have currentColor...
+ m_dlgHelper->setCurrentColor(m_color);
}
QQuickAbstractDialog::setVisible(v);
}
@@ -100,6 +102,9 @@ void QQuickAbstractColorDialog::setTitle(const QString &t)
void QQuickAbstractColorDialog::setColor(QColor arg)
{
+ if (m_dlgHelper)
+ m_dlgHelper->setCurrentColor(arg);
+ // m_options->setCustomColor or setStandardColor don't make sense here
if (m_color != arg) {
m_color = arg;
emit colorChanged();
diff --git a/src/qml/qml/qqmllist.cpp b/src/qml/qml/qqmllist.cpp
index 91c9bc2416..d172c9a185 100644
--- a/src/qml/qml/qqmllist.cpp
+++ b/src/qml/qml/qqmllist.cpp
@@ -409,8 +409,9 @@ Construct a QQmlListProperty from a set of operation functions. An opaque \a da
may be passed which can be accessed from within the operation functions. The list property
remains valid while \a object exists.
-You can pass a null pointer, but than the list will be not designable or changeable by the debugger.
-So provide all function, except it is not possible.
+Null pointers can be passed for any function. If any null pointers are passed in, the list
+will be neither designable nor alterable by the debugger. It is recommended to provide valid
+pointers for all functions.
*/
/*!
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index 55fb8b7fc5..c1df858310 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -601,7 +601,7 @@ void QQuickCanvasItem::geometryChanged(const QRectF &newGeometry, const QRectF &
emit canvasWindowChanged();
}
- if (d->available)
+ if (d->available && newSize != oldGeometry.size())
requestPaint();
}
diff --git a/src/quick/items/context2d/qquickcontext2dtexture.cpp b/src/quick/items/context2d/qquickcontext2dtexture.cpp
index 84ab5bb8fb..adba4b3059 100644
--- a/src/quick/items/context2d/qquickcontext2dtexture.cpp
+++ b/src/quick/items/context2d/qquickcontext2dtexture.cpp
@@ -585,8 +585,8 @@ QQuickCanvasItem::RenderTarget QQuickContext2DImageTexture::renderTarget() const
void QQuickContext2DImageTexture::bind()
{
+ imageTexture()->setFiltering(filtering());
imageTexture()->bind();
- updateBindOptions();
}
bool QQuickContext2DImageTexture::updateTexture()
diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp
index f77c427ccf..9a97b1efc2 100644
--- a/src/quick/items/qquickflickable.cpp
+++ b/src/quick/items/qquickflickable.cpp
@@ -983,6 +983,7 @@ void QQuickFlickablePrivate::handleMousePressEvent(QMouseEvent *event)
q->setKeepMouseGrab(stealMouse);
clearDelayedPress();
pressed = true;
+
if (hData.transitionToBounds)
hData.transitionToBounds->stopTransition();
if (vData.transitionToBounds)
@@ -2096,7 +2097,8 @@ bool QQuickFlickable::sendMouseEvent(QQuickItem *item, QMouseEvent *event)
d->lastPosTime = -1;
returnToBounds();
}
- if (event->type() == QEvent::MouseButtonRelease) {
+ if (event->type() == QEvent::MouseButtonRelease || (grabber && grabber->keepMouseGrab() && !grabberDisabled)) {
+ // mouse released, or another item has claimed the grab
d->lastPosTime = -1;
d->clearDelayedPress();
d->stealMouse = false;
@@ -2109,7 +2111,7 @@ bool QQuickFlickable::sendMouseEvent(QQuickItem *item, QMouseEvent *event)
bool QQuickFlickable::childMouseEventFilter(QQuickItem *i, QEvent *e)
{
Q_D(QQuickFlickable);
- if (!isVisible() || !isEnabled())
+ if (!isVisible() || !isEnabled() || !isInteractive())
return QQuickItem::childMouseEventFilter(i, e);
switch (e->type()) {
case QEvent::MouseButtonPress:
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index ce23b99e8c..a7c7416b5f 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -2568,8 +2568,10 @@ void QQuickItemPrivate::derefWindow()
if (c->mouseGrabberItem == q)
c->mouseGrabberItem = 0;
#ifndef QT_NO_CURSOR
- if (c->cursorItem == q)
+ if (c->cursorItem == q) {
c->cursorItem = 0;
+ window->unsetCursor();
+ }
#endif
c->hoverItems.removeAll(q);
if (itemNodeInstance)
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index f8f622a1b9..e19e780438 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -326,7 +326,7 @@ void QQuickItemView::setModel(const QVariant &model)
d->updateSectionCriteria();
d->refill();
d->currentIndex = -1;
- setCurrentIndex(0);
+ setCurrentIndex(d->model->count() > 0 ? 0 : -1);
d->updateViewport();
if (d->transitioner && d->transitioner->populateTransition) {
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index c785405231..d209cb57c5 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -484,7 +484,7 @@ bool QQuickWindowPrivate::translateTouchToMouse(QQuickItem *item, QTouchEvent *e
item->grabMouse();
item->grabTouchPoints(QVector<int>() << touchMouseId);
- q->sendEvent(item, mousePress.data());
+ QQuickItemPrivate::get(item)->deliverMouseEvent(mousePress.data());
event->setAccepted(mousePress->isAccepted());
if (!mousePress->isAccepted()) {
touchMouseId = -1;
@@ -497,7 +497,7 @@ bool QQuickWindowPrivate::translateTouchToMouse(QQuickItem *item, QTouchEvent *e
if (mousePress->isAccepted() && checkIfDoubleClicked(event->timestamp())) {
QScopedPointer<QMouseEvent> mouseDoubleClick(touchToMouseEvent(QEvent::MouseButtonDblClick, p, event, item));
- q->sendEvent(item, mouseDoubleClick.data());
+ QQuickItemPrivate::get(item)->deliverMouseEvent(mouseDoubleClick.data());
event->setAccepted(mouseDoubleClick->isAccepted());
if (mouseDoubleClick->isAccepted()) {
return true;
@@ -518,7 +518,7 @@ bool QQuickWindowPrivate::translateTouchToMouse(QQuickItem *item, QTouchEvent *e
if (p.state() & Qt::TouchPointMoved) {
if (mouseGrabberItem) {
QScopedPointer<QMouseEvent> me(touchToMouseEvent(QEvent::MouseMove, p, event, mouseGrabberItem));
- q->sendEvent(mouseGrabberItem, me.data());
+ QQuickItemPrivate::get(item)->deliverMouseEvent(me.data());
event->setAccepted(me->isAccepted());
if (me->isAccepted()) {
itemForTouchPointId[p.id()] = mouseGrabberItem; // N.B. the mouseGrabberItem may be different after returning from sendEvent()
@@ -548,7 +548,7 @@ bool QQuickWindowPrivate::translateTouchToMouse(QQuickItem *item, QTouchEvent *e
touchMouseId = -1;
if (mouseGrabberItem) {
QScopedPointer<QMouseEvent> me(touchToMouseEvent(QEvent::MouseButtonRelease, p, event, mouseGrabberItem));
- q->sendEvent(mouseGrabberItem, me.data());
+ QQuickItemPrivate::get(item)->deliverMouseEvent(me.data());
if (mouseGrabberItem) // might have ungrabbed due to event
mouseGrabberItem->ungrabMouse();
return me->isAccepted();
@@ -1414,6 +1414,7 @@ void QQuickWindow::mouseMoveEvent(QMouseEvent *event)
bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &scenePos, const QPointF &lastScenePos,
Qt::KeyboardModifiers modifiers, bool &accepted)
{
+ Q_Q(QQuickWindow);
QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
if (itemPrivate->flags & QQuickItem::ItemClipsChildrenToShape) {
@@ -1463,7 +1464,13 @@ bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &sce
for (int i = startIdx; i >= 0; i--) {
QQuickItem *itemToHover = itemsToHover[i];
- if (QQuickItemPrivate::get(itemToHover)->hoverEnabled) {
+ QQuickItemPrivate *itemToHoverPrivate = QQuickItemPrivate::get(itemToHover);
+ // The item may be about to be deleted or reparented to another window
+ // due to another hover event delivered in this function. If that is the
+ // case, sending a hover event here will cause a crash or other bad
+ // behavior when the leave event is generated. Checking
+ // itemToHoverPrivate->window here prevents that case.
+ if (itemToHoverPrivate->window == q && itemToHoverPrivate->hoverEnabled) {
hoverItems.prepend(itemToHover);
sendHoverEvent(QEvent::HoverEnter, itemToHover, scenePos, lastScenePos, modifiers, accepted);
}
diff --git a/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp b/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp
index f4a7bcdb48..ab8ff0e1a4 100644
--- a/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp
+++ b/tests/auto/qml/qqmlmoduleplugin/tst_qqmlmoduleplugin.cpp
@@ -207,6 +207,10 @@ void tst_qqmlmoduleplugin::incorrectPluginCase()
QString expectedError = QLatin1String("module \"com.nokia.WrongCase\" plugin \"PluGin\" not found");
#endif
+#ifdef Q_OS_MACX
+ if (QSysInfo::MacintoshVersion == QSysInfo::MV_10_8)
+ QEXPECT_FAIL("", "See QTBUG-32652", Continue);
+#endif
QCOMPARE(errors.at(0).description(), expectedError);
}
diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
index a8055b3467..dd9fa47d81 100644
--- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
+++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
@@ -94,9 +94,10 @@ private slots:
void flickTwiceUsingTouches();
void nestedStopAtBounds();
void nestedStopAtBounds_data();
+ void nestedMouseAreaUsingTouch();
private:
- void flickWithTouch(QWindow *window, QTouchDevice *touchDevice);
+ void flickWithTouch(QWindow *window, QTouchDevice *touchDevice, const QPoint &from, const QPoint &to);
QQmlEngine engine;
};
@@ -1268,13 +1269,13 @@ void tst_qquickflickable::flickTwiceUsingTouches()
QVERIFY(flickable != 0);
QCOMPARE(flickable->contentY(), 0.0f);
- flickWithTouch(window, touchDevice);
+ flickWithTouch(window, touchDevice, QPoint(100, 400), QPoint(100, 240));
qreal contentYAfterFirstFlick = flickable->contentY();
qDebug() << "contentYAfterFirstFlick " << contentYAfterFirstFlick;
QVERIFY(contentYAfterFirstFlick > 50.0f);
- flickWithTouch(window, touchDevice);
+ flickWithTouch(window, touchDevice, QPoint(100, 400), QPoint(100, 240));
// In the original bug, that second flick would cause Flickable to halt immediately
qreal contentYAfterSecondFlick = flickable->contentY();
@@ -1284,34 +1285,19 @@ void tst_qquickflickable::flickTwiceUsingTouches()
delete window;
}
-void tst_qquickflickable::flickWithTouch(QWindow *window, QTouchDevice *touchDevice)
+void tst_qquickflickable::flickWithTouch(QWindow *window, QTouchDevice *touchDevice, const QPoint &from, const QPoint &to)
{
QTest::touchEvent(window, touchDevice)
- .press(0, QPoint(100, 400), window);
- QTest::qWait(1);
- QTest::touchEvent(window, touchDevice)
- .move(0, QPoint(100, 380), window);
- QTest::qWait(1);
- QTest::touchEvent(window, touchDevice)
- .move(0, QPoint(100, 360), window);
- QTest::qWait(1);
- QTest::touchEvent(window, touchDevice)
- .move(0, QPoint(100, 340), window);
- QTest::qWait(1);
- QTest::touchEvent(window, touchDevice)
- .move(0, QPoint(100, 320), window);
- QTest::qWait(1);
- QTest::touchEvent(window, touchDevice)
- .move(0, QPoint(100, 300), window);
- QTest::qWait(1);
- QTest::touchEvent(window, touchDevice)
- .move(0, QPoint(100, 280), window);
- QTest::qWait(1);
- QTest::touchEvent(window, touchDevice)
- .move(0, QPoint(100, 260), window);
+ .press(0, from, window);
QTest::qWait(1);
+ QPoint diff = to - from;
+ for (int i = 1; i <= 8; ++i) {
+ QTest::touchEvent(window, touchDevice)
+ .move(0, from + i*diff/8, window);
+ QTest::qWait(1);
+ }
QTest::touchEvent(window, touchDevice)
- .release(0, QPoint(100, 240), window);
+ .release(0, to, window);
QTest::qWait(1);
}
@@ -1384,6 +1370,35 @@ void tst_qquickflickable::nestedStopAtBounds()
QTRY_VERIFY(!outer->isMoving());
}
+void tst_qquickflickable::nestedMouseAreaUsingTouch()
+{
+ QTouchDevice *touchDevice = new QTouchDevice;
+ touchDevice->setName("Fake Touchscreen");
+ touchDevice->setType(QTouchDevice::TouchScreen);
+ touchDevice->setCapabilities(QTouchDevice::Position);
+ QWindowSystemInterface::registerTouchDevice(touchDevice);
+
+ QQuickView *window = new QQuickView;
+ window->setSource(testFileUrl("nestedmousearea.qml"));
+ window->show();
+ QVERIFY(window->rootObject() != 0);
+
+ QQuickFlickable *flickable = qobject_cast<QQuickFlickable*>(window->rootObject());
+ QVERIFY(flickable != 0);
+
+ QCOMPARE(flickable->contentY(), 50.0f);
+ flickWithTouch(window, touchDevice, QPoint(100, 300), QPoint(100, 200));
+
+ // flickable should not have moved
+ QCOMPARE(flickable->contentY(), 50.0);
+
+ // draggable item should have moved up
+ QQuickItem *nested = window->rootObject()->findChild<QQuickItem*>("nested");
+ QVERIFY(nested->y() < 100.0);
+
+ delete window;
+}
+
QTEST_MAIN(tst_qquickflickable)
#include "tst_qquickflickable.moc"
diff --git a/tests/auto/quick/qquickgridview/qquickgridview.pro b/tests/auto/quick/qquickgridview/qquickgridview.pro
index 3a4155256f..40b43fa2c0 100644
--- a/tests/auto/quick/qquickgridview/qquickgridview.pro
+++ b/tests/auto/quick/qquickgridview/qquickgridview.pro
@@ -11,4 +11,8 @@ include (../shared/util.pri)
TESTDATA = data/*
QT += core-private gui-private qml-private quick-private testlib
+
+win32:CONFIG += insignificant_test # QTBUG-33017
+macx:CONFIG += insignificant_test # QTBUG-33017
+
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/quick/qquickitem/qquickitem.pro b/tests/auto/quick/qquickitem/qquickitem.pro
index 81e2e3adef..9bcba5de33 100644
--- a/tests/auto/quick/qquickitem/qquickitem.pro
+++ b/tests/auto/quick/qquickitem/qquickitem.pro
@@ -9,4 +9,7 @@ macx:CONFIG -= app_bundle
TESTDATA = data/*
QT += core-private gui-private qml-private quick-private testlib
+
+win32:CONFIG += insignificant_test # QTBUG-32664
+
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
index 2268f0754c..cd8cc53b40 100644
--- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
+++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
@@ -2605,6 +2605,11 @@ void tst_QQuickListView::currentIndex()
listview->setContentY(200);
QTRY_VERIFY(!delegateVisible(listview->currentItem()));
+ // empty model should reset currentIndex to -1
+ QaimModel emptyModel;
+ ctxt->setContextProperty("testModel", &emptyModel);
+ QCOMPARE(listview->currentIndex(), -1);
+
delete window;
}
diff --git a/tests/auto/quick/qquickmousearea/qquickmousearea.pro b/tests/auto/quick/qquickmousearea/qquickmousearea.pro
index dd7b434898..e9b06fd1df 100644
--- a/tests/auto/quick/qquickmousearea/qquickmousearea.pro
+++ b/tests/auto/quick/qquickmousearea/qquickmousearea.pro
@@ -10,5 +10,7 @@ include (../../shared/util.pri)
TESTDATA = data/*
+win32:CONFIG += insignificant_test # QTBUG-33006
+
QT += core-private gui-private qml-private quick-private network testlib
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
index a582c62701..f92612e411 100644
--- a/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
+++ b/tests/auto/quick/qquickmousearea/tst_qquickmousearea.cpp
@@ -1198,18 +1198,15 @@ void tst_QQuickMouseArea::transformedMouseArea()
foreach (const QPoint &point, points) {
// check hover
QTest::mouseMove(window, point);
- QTest::qWait(10);
- QCOMPARE(mouseArea->property("containsMouse").toBool(), insideTarget);
+ QTRY_COMPARE(mouseArea->property("containsMouse").toBool(), insideTarget);
// check mouse press
QTest::mousePress(window, Qt::LeftButton, 0, point);
- QTest::qWait(10);
- QCOMPARE(mouseArea->property("pressed").toBool(), insideTarget);
+ QTRY_COMPARE(mouseArea->property("pressed").toBool(), insideTarget);
// check mouse release
QTest::mouseRelease(window, Qt::LeftButton, 0, point);
- QTest::qWait(10);
- QCOMPARE(mouseArea->property("pressed").toBool(), false);
+ QTRY_COMPARE(mouseArea->property("pressed").toBool(), false);
}
delete window;
@@ -1514,8 +1511,8 @@ void tst_QQuickMouseArea::nestedStopAtBounds()
QTest::mouseMove(&view, position);
axis += invert ? -threshold : threshold;
QTest::mouseMove(&view, position);
- QCOMPARE(outer->drag()->active(), false);
- QCOMPARE(inner->drag()->active(), true);
+ QTRY_COMPARE(outer->drag()->active(), false);
+ QTRY_COMPARE(inner->drag()->active(), true);
QTest::mouseRelease(&view, Qt::LeftButton, 0, position);
}
diff --git a/tests/auto/quick/qquicktextedit/qquicktextedit.pro b/tests/auto/quick/qquicktextedit/qquicktextedit.pro
index 814291ac35..2386d713a7 100644
--- a/tests/auto/quick/qquicktextedit/qquicktextedit.pro
+++ b/tests/auto/quick/qquicktextedit/qquicktextedit.pro
@@ -16,3 +16,4 @@ QT += core-private gui-private qml-private quick-private network-private testli
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
mac:CONFIG += insignificant_test # QTBUG-27740
+win32:CONFIG += insignificant_test # QTBUG-32540
diff --git a/tests/auto/quick/qquickwindow/data/hoverCrash.qml b/tests/auto/quick/qquickwindow/data/hoverCrash.qml
new file mode 100644
index 0000000000..936d9e4f43
--- /dev/null
+++ b/tests/auto/quick/qquickwindow/data/hoverCrash.qml
@@ -0,0 +1,36 @@
+import QtQuick 2.0
+import QtQuick.Window 2.0 as Window
+
+Window.Window {
+ width: 200
+ height: 200
+ color: "#00FF00"
+ Column {
+ Rectangle {
+ objectName: 'item1'
+ color: 'red'
+ width: 100
+ height: 100
+ MouseArea {
+ id: area
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+ }
+
+ Loader {
+ objectName: 'item2'
+ width: 100
+ height: 100
+ active: area.containsMouse
+ sourceComponent: Rectangle {
+ color: 'blue'
+
+ MouseArea {
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+ }
+ }
+ }
+}
diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
index fbbc77c31c..17999ed588 100644
--- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
+++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
@@ -328,6 +328,8 @@ private slots:
void blockClosing();
+ void crashWhenHoverItemDeleted();
+
#ifndef QT_NO_CURSOR
void cursor();
#endif
@@ -1292,23 +1294,23 @@ void tst_qquickwindow::cursor()
QTest::mouseRelease(&window, Qt::LeftButton, 0, QPoint(100, 100));
// Remove the cursor item from the scene. Theoretically this should make parentItem the
- // cursorItem, but given the situation will correct itself after the next mouse move it's
- // probably better left as is to avoid unnecessary work during tear down.
+ // cursorItem, but given the situation will correct itself after the next mouse move it
+ // simply unsets the window cursor for now.
childItem.setParentItem(0);
- QCOMPARE(window.cursor().shape(), Qt::WaitCursor);
+ QCOMPARE(window.cursor().shape(), Qt::ArrowCursor);
parentItem.setCursor(Qt::SizeAllCursor);
QCOMPARE(parentItem.cursor().shape(), Qt::SizeAllCursor);
- QCOMPARE(window.cursor().shape(), Qt::WaitCursor);
+ QCOMPARE(window.cursor().shape(), Qt::ArrowCursor);
// Changing the cursor of an un-parented item doesn't affect the window's cursor.
childItem.setCursor(Qt::ClosedHandCursor);
QCOMPARE(childItem.cursor().shape(), Qt::ClosedHandCursor);
- QCOMPARE(window.cursor().shape(), Qt::WaitCursor);
+ QCOMPARE(window.cursor().shape(), Qt::ArrowCursor);
childItem.unsetCursor();
QCOMPARE(childItem.cursor().shape(), Qt::ArrowCursor);
- QCOMPARE(window.cursor().shape(), Qt::WaitCursor);
+ QCOMPARE(window.cursor().shape(), Qt::ArrowCursor);
QTest::mouseRelease(&window, Qt::LeftButton, 0, QPoint(100, 101));
QCOMPARE(window.cursor().shape(), Qt::SizeAllCursor);
@@ -1487,6 +1489,25 @@ void tst_qquickwindow::blockClosing()
QTRY_VERIFY(!window->isVisible());
}
+void tst_qquickwindow::crashWhenHoverItemDeleted()
+{
+ // QTBUG-32771
+ QQmlEngine engine;
+ QQmlComponent component(&engine);
+ component.loadUrl(testFileUrl("hoverCrash.qml"));
+ QQuickWindow* window = qobject_cast<QQuickWindow *>(component.create());
+ QVERIFY(window);
+ window->show();
+ QTest::qWaitForWindowExposed(window);
+
+ // Simulate a move from the first rectangle to the second. Crash will happen in here
+ // Moving instantaneously from (0, 99) to (0, 102) does not cause the crash
+ for (int i = 99; i < 102; ++i)
+ {
+ QTest::mouseMove(window, QPoint(0, i));
+ }
+}
+
QTEST_MAIN(tst_qquickwindow)
#include "tst_qquickwindow.moc"
diff --git a/tests/auto/quick/touchmouse/tst_touchmouse.cpp b/tests/auto/quick/touchmouse/tst_touchmouse.cpp
index 4779942406..6cf0aa4749 100644
--- a/tests/auto/quick/touchmouse/tst_touchmouse.cpp
+++ b/tests/auto/quick/touchmouse/tst_touchmouse.cpp
@@ -867,6 +867,9 @@ void tst_TouchMouse::mouseOnFlickableOnPinch()
QGuiApplication::processEvents();
//QVERIFY(flickable->isMovingHorizontally());
+
+ // Wait for flick to end
+ QTRY_VERIFY(!flickable->isMoving());
qDebug() << "Pos: " << rect->position();
// pinch