From 5b949572aa56c5bce087fb0c023af7c96c40f139 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 30 Nov 2011 16:44:05 +1000 Subject: [PATCH] Have tutorial built along with other examples Change-Id: I9f64659ca1621a5fea8e9013ecd264d971207d4d Reviewed-by: Michael Brasser --- examples/examples.pro | 2 +- .../tutorials/gettingStarted/gsQml/core/Button.qml | 108 --------- .../gettingStarted/gsQml/core/EditMenu.qml | 105 --------- .../gettingStarted/gsQml/core/FileDialog.qml | 163 -------------- .../gettingStarted/gsQml/core/FileMenu.qml | 233 -------------------- .../gettingStarted/gsQml/core/MenuBar.qml | 147 ------------ .../gettingStarted/gsQml/core/TextArea.qml | 87 -------- .../tutorials/gettingStarted/gsQml/core/qmldir | 7 - .../gsQml/filedialog/dialogPlugin.cpp | 54 ----- .../gettingStarted/gsQml/filedialog/dialogPlugin.h | 57 ----- .../gettingStarted/gsQml/filedialog/directory.cpp | 224 ------------------- .../gettingStarted/gsQml/filedialog/directory.h | 107 --------- .../gettingStarted/gsQml/filedialog/file.cpp | 58 ----- .../gettingStarted/gsQml/filedialog/file.h | 67 ------ .../gettingStarted/gsQml/filedialog/filedialog.pro | 17 -- .../gettingStarted/gsQml/filedialog/qmldir | 1 - .../gettingStarted/gsQml/images/arrow.png | Bin 583 -> 0 bytes .../gettingStarted/gsQml/parts/part0/Button.qml | 55 ----- .../gettingStarted/gsQml/parts/part1/Button.qml | 97 -------- .../gettingStarted/gsQml/parts/part1/EditMenu.qml | 76 ------- .../gettingStarted/gsQml/parts/part1/FileMenu.qml | 91 -------- .../gsQml/parts/part1/SimpleButton.qml | 73 ------ .../parts/part1/pics/qml-texteditor1_button.png | Bin 1670 -> 0 bytes .../parts/part1/pics/qml-texteditor1_editmenu.png | Bin 6177 -> 0 bytes .../parts/part1/pics/qml-texteditor1_filemenu.png | Bin 6062 -> 0 bytes .../part1/pics/qml-texteditor1_simplebutton.png | Bin 1055 -> 0 bytes .../gsQml/parts/part1/qml-texteditor.qmlproject | 16 -- .../gettingStarted/gsQml/parts/part2/Button.qml | 99 --------- .../gettingStarted/gsQml/parts/part2/EditMenu.qml | 77 ------- .../gettingStarted/gsQml/parts/part2/FileMenu.qml | 92 -------- .../gettingStarted/gsQml/parts/part2/MenuBar.qml | 140 ------------ .../parts/part2/pics/qml-texteditor2_menubar.png | Bin 6079 -> 0 bytes .../gsQml/parts/part2/qml-texteditor2.qmlproject | 16 -- .../gettingStarted/gsQml/parts/part3/Button.qml | 99 --------- .../gettingStarted/gsQml/parts/part3/EditMenu.qml | 77 ------- .../gettingStarted/gsQml/parts/part3/FileMenu.qml | 92 -------- .../gettingStarted/gsQml/parts/part3/MenuBar.qml | 140 ------------ .../gettingStarted/gsQml/parts/part3/TextArea.qml | 80 ------- .../gsQml/parts/part3/TextEditor.qml | 68 ------ .../gsQml/parts/part3/images/arrow.png | Bin 583 -> 0 bytes .../part3/pics/qml-texteditor3_texteditor.png | Bin 59345 -> 0 bytes .../gsQml/parts/part3/qml-texteditor3.qmlproject | 16 -- .../gettingStarted/gsQml/parts/part4/Button.qml | 109 --------- .../gettingStarted/gsQml/parts/part4/EditMenu.qml | 81 ------- .../gettingStarted/gsQml/parts/part4/FileMenu.qml | 96 -------- .../gettingStarted/gsQml/parts/part4/MenuBar.qml | 146 ------------ .../gsQml/parts/part4/SimpleButton.qml | 59 ----- .../gettingStarted/gsQml/parts/part4/TextArea.qml | 80 ------- .../gsQml/parts/part4/TextEditor.qml | 146 ------------ .../gsQml/parts/part4/images/arrow.png | Bin 583 -> 0 bytes .../part4/pics/qml-texteditor4_texteditor.png | Bin 63629 -> 0 bytes .../gsQml/parts/part4/qml-texteditor4.qmlproject | 16 -- .../gsQml/parts/part5/core/Button.qml | 109 --------- .../gsQml/parts/part5/core/EditMenu.qml | 110 --------- .../gsQml/parts/part5/core/FileDialog.qml | 170 -------------- .../gsQml/parts/part5/core/FileMenu.qml | 233 -------------------- .../gsQml/parts/part5/core/MenuBar.qml | 148 ------------- .../gsQml/parts/part5/core/TextArea.qml | 86 ------- .../gettingStarted/gsQml/parts/part5/core/qmldir | 11 - .../gsQml/parts/part5/filedialog/dialogPlugin.cpp | 57 ----- .../gsQml/parts/part5/filedialog/dialogPlugin.h | 57 ----- .../gsQml/parts/part5/filedialog/directory.cpp | 219 ------------------ .../gsQml/parts/part5/filedialog/directory.h | 108 --------- .../gsQml/parts/part5/filedialog/file.cpp | 56 ----- .../gsQml/parts/part5/filedialog/file.h | 67 ------ .../gsQml/parts/part5/filedialog/filedialog.pro | 17 -- .../gsQml/parts/part5/filedialog/qmldir | 1 - .../gsQml/parts/part5/images/arrow.png | Bin 583 -> 0 bytes .../parts/part5/pics/qml-texteditor5_editmenu.png | Bin 65123 -> 0 bytes .../parts/part5/pics/qml-texteditor5_filemenu.png | Bin 21367 -> 0 bytes .../parts/part5/pics/qml-texteditor5_newfile.png | Bin 76693 -> 0 bytes .../gsQml/parts/part5/qml-texteditor5.qmlproject | 18 -- .../gsQml/parts/part5/textEditor.qml | 127 ----------- .../gsQml/pics/qml-texteditor5_editmenu.png | Bin 65123 -> 0 bytes .../gsQml/pics/qml-texteditor5_filemenu.png | Bin 21367 -> 0 bytes .../gsQml/pics/qml-texteditor5_newfile.png | Bin 76693 -> 0 bytes .../tutorials/gettingStarted/gsQml/texteditor.pro | 4 - .../tutorials/gettingStarted/gsQml/texteditor.qml | 132 ----------- .../tutorials/gettingStartedQml/core/Button.qml | 108 +++++++++ .../tutorials/gettingStartedQml/core/EditMenu.qml | 105 +++++++++ .../gettingStartedQml/core/FileDialog.qml | 163 ++++++++++++++ .../tutorials/gettingStartedQml/core/FileMenu.qml | 233 ++++++++++++++++++++ .../tutorials/gettingStartedQml/core/MenuBar.qml | 147 ++++++++++++ .../tutorials/gettingStartedQml/core/TextArea.qml | 87 ++++++++ examples/tutorials/gettingStartedQml/core/qmldir | 7 + .../gettingStartedQml/filedialog/dialogPlugin.cpp | 54 +++++ .../gettingStartedQml/filedialog/dialogPlugin.h | 57 +++++ .../gettingStartedQml/filedialog/directory.cpp | 224 +++++++++++++++++++ .../gettingStartedQml/filedialog/directory.h | 107 +++++++++ .../gettingStartedQml/filedialog/file.cpp | 58 +++++ .../tutorials/gettingStartedQml/filedialog/file.h | 67 ++++++ .../gettingStartedQml/filedialog/filedialog.pro | 17 ++ .../tutorials/gettingStartedQml/filedialog/qmldir | 1 + .../gettingStartedQml/gettingStartedQml.pro | 4 + .../tutorials/gettingStartedQml/images/arrow.png | Bin 0 -> 583 bytes .../gettingStartedQml/parts/part0/Button.qml | 55 +++++ .../gettingStartedQml/parts/part1/Button.qml | 97 ++++++++ .../gettingStartedQml/parts/part1/EditMenu.qml | 76 +++++++ .../gettingStartedQml/parts/part1/FileMenu.qml | 91 ++++++++ .../gettingStartedQml/parts/part1/SimpleButton.qml | 73 ++++++ .../parts/part1/pics/qml-texteditor1_button.png | Bin 0 -> 1670 bytes .../parts/part1/pics/qml-texteditor1_editmenu.png | Bin 0 -> 6177 bytes .../parts/part1/pics/qml-texteditor1_filemenu.png | Bin 0 -> 6062 bytes .../part1/pics/qml-texteditor1_simplebutton.png | Bin 0 -> 1055 bytes .../parts/part1/qml-texteditor.qmlproject | 16 ++ .../gettingStartedQml/parts/part2/Button.qml | 99 +++++++++ .../gettingStartedQml/parts/part2/EditMenu.qml | 77 +++++++ .../gettingStartedQml/parts/part2/FileMenu.qml | 92 ++++++++ .../gettingStartedQml/parts/part2/MenuBar.qml | 140 ++++++++++++ .../parts/part2/pics/qml-texteditor2_menubar.png | Bin 0 -> 6079 bytes .../parts/part2/qml-texteditor2.qmlproject | 16 ++ .../gettingStartedQml/parts/part3/Button.qml | 99 +++++++++ .../gettingStartedQml/parts/part3/EditMenu.qml | 77 +++++++ .../gettingStartedQml/parts/part3/FileMenu.qml | 92 ++++++++ .../gettingStartedQml/parts/part3/MenuBar.qml | 140 ++++++++++++ .../gettingStartedQml/parts/part3/TextArea.qml | 80 +++++++ .../gettingStartedQml/parts/part3/TextEditor.qml | 68 ++++++ .../gettingStartedQml/parts/part3/images/arrow.png | Bin 0 -> 583 bytes .../part3/pics/qml-texteditor3_texteditor.png | Bin 0 -> 59345 bytes .../parts/part3/qml-texteditor3.qmlproject | 16 ++ .../gettingStartedQml/parts/part4/Button.qml | 109 +++++++++ .../gettingStartedQml/parts/part4/EditMenu.qml | 81 +++++++ .../gettingStartedQml/parts/part4/FileMenu.qml | 96 ++++++++ .../gettingStartedQml/parts/part4/MenuBar.qml | 146 ++++++++++++ .../gettingStartedQml/parts/part4/SimpleButton.qml | 59 +++++ .../gettingStartedQml/parts/part4/TextArea.qml | 80 +++++++ .../gettingStartedQml/parts/part4/TextEditor.qml | 146 ++++++++++++ .../gettingStartedQml/parts/part4/images/arrow.png | Bin 0 -> 583 bytes .../part4/pics/qml-texteditor4_texteditor.png | Bin 0 -> 63629 bytes .../parts/part4/qml-texteditor4.qmlproject | 16 ++ .../gettingStartedQml/parts/part5/TextEditor.qml | 127 +++++++++++ .../gettingStartedQml/parts/part5/core/Button.qml | 109 +++++++++ .../parts/part5/core/EditMenu.qml | 110 +++++++++ .../parts/part5/core/FileDialog.qml | 170 ++++++++++++++ .../parts/part5/core/FileMenu.qml | 233 ++++++++++++++++++++ .../gettingStartedQml/parts/part5/core/MenuBar.qml | 148 +++++++++++++ .../parts/part5/core/TextArea.qml | 86 +++++++ .../gettingStartedQml/parts/part5/core/qmldir | 11 + .../parts/part5/filedialog/dialogPlugin.cpp | 57 +++++ .../parts/part5/filedialog/dialogPlugin.h | 57 +++++ .../parts/part5/filedialog/directory.cpp | 219 ++++++++++++++++++ .../parts/part5/filedialog/directory.h | 108 +++++++++ .../parts/part5/filedialog/file.cpp | 56 +++++ .../parts/part5/filedialog/file.h | 67 ++++++ .../parts/part5/filedialog/filedialog.pro | 17 ++ .../parts/part5/filedialog/qmldir | 1 + .../gettingStartedQml/parts/part5/images/arrow.png | Bin 0 -> 583 bytes .../parts/part5/pics/qml-texteditor5_editmenu.png | Bin 0 -> 65123 bytes .../parts/part5/pics/qml-texteditor5_filemenu.png | Bin 0 -> 21367 bytes .../parts/part5/pics/qml-texteditor5_newfile.png | Bin 0 -> 76693 bytes .../parts/part5/qml-texteditor5.qmlproject | 18 ++ .../pics/qml-texteditor5_editmenu.png | Bin 0 -> 65123 bytes .../pics/qml-texteditor5_filemenu.png | Bin 0 -> 21367 bytes .../pics/qml-texteditor5_newfile.png | Bin 0 -> 76693 bytes .../tutorials/gettingStartedQml/texteditor.qml | 132 +++++++++++ examples/tutorials/tutorials.pro | 2 + 156 files changed, 5305 insertions(+), 5303 deletions(-) delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/TextArea.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/core/qmldir delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/filedialog.pro delete mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/qmldir delete mode 100644 examples/tutorials/gettingStarted/gsQml/images/arrow.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part0/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/EditMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/FileMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/SimpleButton.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_button.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_editmenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_filemenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_simplebutton.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/qml-texteditor.qmlproject delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/EditMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/FileMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/MenuBar.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/pics/qml-texteditor2_menubar.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/qml-texteditor2.qmlproject delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/EditMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/FileMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/MenuBar.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/TextArea.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/TextEditor.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/images/arrow.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/pics/qml-texteditor3_texteditor.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/qml-texteditor3.qmlproject delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/EditMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/FileMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/MenuBar.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/SimpleButton.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/TextArea.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/TextEditor.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/images/arrow.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/pics/qml-texteditor4_texteditor.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/qml-texteditor4.qmlproject delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/Button.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/EditMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileDialog.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileMenu.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/MenuBar.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/TextArea.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/qmldir delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.cpp delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.h delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/filedialog.pro delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/qmldir delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/images/arrow.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/pics/qml-texteditor5_editmenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/pics/qml-texteditor5_filemenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/pics/qml-texteditor5_newfile.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/qml-texteditor5.qmlproject delete mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/textEditor.qml delete mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png delete mode 100644 examples/tutorials/gettingStarted/gsQml/texteditor.pro delete mode 100644 examples/tutorials/gettingStarted/gsQml/texteditor.qml create mode 100644 examples/tutorials/gettingStartedQml/core/Button.qml create mode 100644 examples/tutorials/gettingStartedQml/core/EditMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/core/FileDialog.qml create mode 100644 examples/tutorials/gettingStartedQml/core/FileMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/core/MenuBar.qml create mode 100644 examples/tutorials/gettingStartedQml/core/TextArea.qml create mode 100644 examples/tutorials/gettingStartedQml/core/qmldir create mode 100644 examples/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp create mode 100644 examples/tutorials/gettingStartedQml/filedialog/dialogPlugin.h create mode 100644 examples/tutorials/gettingStartedQml/filedialog/directory.cpp create mode 100644 examples/tutorials/gettingStartedQml/filedialog/directory.h create mode 100644 examples/tutorials/gettingStartedQml/filedialog/file.cpp create mode 100644 examples/tutorials/gettingStartedQml/filedialog/file.h create mode 100644 examples/tutorials/gettingStartedQml/filedialog/filedialog.pro create mode 100644 examples/tutorials/gettingStartedQml/filedialog/qmldir create mode 100644 examples/tutorials/gettingStartedQml/gettingStartedQml.pro create mode 100644 examples/tutorials/gettingStartedQml/images/arrow.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part0/Button.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/Button.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/EditMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/FileMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/SimpleButton.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_button.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_editmenu.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_filemenu.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_simplebutton.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part1/qml-texteditor.qmlproject create mode 100644 examples/tutorials/gettingStartedQml/parts/part2/Button.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part2/EditMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part2/FileMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part2/MenuBar.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part2/pics/qml-texteditor2_menubar.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/Button.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/EditMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/FileMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/MenuBar.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/TextArea.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/TextEditor.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/images/arrow.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/pics/qml-texteditor3_texteditor.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/Button.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/EditMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/FileMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/MenuBar.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/TextArea.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/TextEditor.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/images/arrow.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/pics/qml-texteditor4_texteditor.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/TextEditor.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/core/Button.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/core/qmldir create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/file.h create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/images/arrow.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_editmenu.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_filemenu.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/pics/qml-texteditor5_newfile.png create mode 100644 examples/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject create mode 100644 examples/tutorials/gettingStartedQml/pics/qml-texteditor5_editmenu.png create mode 100644 examples/tutorials/gettingStartedQml/pics/qml-texteditor5_filemenu.png create mode 100644 examples/tutorials/gettingStartedQml/pics/qml-texteditor5_newfile.png create mode 100644 examples/tutorials/gettingStartedQml/texteditor.qml create mode 100644 examples/tutorials/tutorials.pro diff --git a/examples/examples.pro b/examples/examples.pro index 2ee93a9..2c9497d 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -1,3 +1,3 @@ TEMPLATE = subdirs -SUBDIRS += declarative +SUBDIRS += declarative tutorials contains(QT_CONFIG, qmltest): SUBDIRS += qmltest diff --git a/examples/tutorials/gettingStarted/gsQml/core/Button.qml b/examples/tutorials/gettingStarted/gsQml/core/Button.qml deleted file mode 100644 index 5bd404f..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/Button.qml +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - smooth: true - border { width: 2; 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/tutorials/gettingStarted/gsQml/core/EditMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml deleted file mode 100644 index 3db560a..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/EditMenu.qml +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/core/FileDialog.qml b/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml deleted file mode 100644 index fbb91df..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/FileDialog.qml +++ /dev/null @@ -1,163 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - anchors.centerIn:parent - height: parent.height -15; width: parent.width -30 - - Rectangle { - id:header - height: parent.height*0.1; width: parent.width - radius:3 - 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 - 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 - smooth: 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 - smooth: true - 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/tutorials/gettingStarted/gsQml/core/FileMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml deleted file mode 100644 index 9fc37f7..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/FileMenu.qml +++ /dev/null @@ -1,233 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/core/MenuBar.qml b/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml deleted file mode 100644 index 2403485..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/MenuBar.qml +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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 } - smooth: 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 - smooth:true - //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 - smooth:true - //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 - VisualItemModel { - 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/tutorials/gettingStarted/gsQml/core/TextArea.qml b/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml deleted file mode 100644 index 6e6345e..0000000 --- a/examples/tutorials/gettingStarted/gsQml/core/TextArea.qml +++ /dev/null @@ -1,87 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/core/qmldir b/examples/tutorials/gettingStarted/gsQml/core/qmldir deleted file mode 100644 index da1f373..0000000 --- a/examples/tutorials/gettingStarted/gsQml/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/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp deleted file mode 100644 index fde24d9..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - -void DialogPlugin::registerTypes(const char *uri) -{ - //register the class Directory into QML as a "Directory" element version 1.0 - qmlRegisterType(uri, 1, 0, "Directory"); - qmlRegisterType(uri,1,0,"File"); -} - -//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs -Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h b/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h deleted file mode 100644 index 0dcb15b..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - -class DialogPlugin : public QDeclarativeExtensionPlugin -{ - Q_OBJECT - - public: - //registerTypes is inherited from QDeclarativeExtensionPlugin - void registerTypes(const char *uri); - -}; - -#endif - diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp deleted file mode 100644 index 8828635..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - -/* -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(QDeclarativeListProperty * property, File * file) -{ - 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 -*/ -File* fileAt(QDeclarativeListProperty * property, int index) -{ - return static_cast< QList *>(property->data)->at(index); -} - -/* -Returns the number of files in the list -*/ -int filesSize(QDeclarativeListProperty * property) -{ - return static_cast< QList *>(property->data)->size(); -} - -/* -Function called to empty the list property contents -*/ -void clearFilesPtr(QDeclarativeListProperty *property) -{ - return static_cast< QList *>(property->data)->clear(); -} - -/* -Returns the list of files as a QDeclarativeListProperty. -*/ -QDeclarativeListProperty Directory::files() -{ - refresh(); - return QDeclarativeListProperty( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr ); -} - -/* -Return the 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/tutorials/gettingStarted/gsQml/filedialog/directory.h b/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h deleted file mode 100644 index 6cad754..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/directory.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 -#include -#include -#include -#include - -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(QDeclarativeListProperty 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; - QDeclarativeListProperty 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 m_fileList; - - //refresh content of the directory - void refresh(); -}; - -#endif diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp b/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp deleted file mode 100644 index ff97c74..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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) -{ -} - -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/tutorials/gettingStarted/gsQml/filedialog/file.h b/examples/tutorials/gettingStarted/gsQml/filedialog/file.h deleted file mode 100644 index 21e8ebb..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/file.h +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 -#include - -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 \ No newline at end of file diff --git a/examples/tutorials/gettingStarted/gsQml/filedialog/filedialog.pro b/examples/tutorials/gettingStarted/gsQml/filedialog/filedialog.pro deleted file mode 100644 index d85787d..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/filedialog.pro +++ /dev/null @@ -1,17 +0,0 @@ -TEMPLATE = lib -CONFIG += qt plugin -QT += declarative - -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/tutorials/gettingStarted/gsQml/filedialog/qmldir b/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir deleted file mode 100644 index 4a8d13d..0000000 --- a/examples/tutorials/gettingStarted/gsQml/filedialog/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin FileDialog ../plugins diff --git a/examples/tutorials/gettingStarted/gsQml/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/images/arrow.png deleted file mode 100644 index 14978c2e56e55e8e4fc8b7d944bef836d1d68ab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM} z12+tgH>GL-001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8)nMp)JR2b7u%RfjPVHgMC-+PS-8SabWdoQ1Nf{snWPza(!=;GYPv4eX{kO~>Z zK{`lR(MbZ5u~?i7j%}!Qse@S>gj5m;G>{5M$Z+J(uanScf8_bv8keI8nM?-5;SlZn zdw8BF03aeDDF7%UT#h1yVTepRjlYkNK(SQfS-sBDXvE(S5BzX+MBiE()rGusFsflL z2>5z?n_rtvPN!4;YPVV2-zR))Q?ItR`1$gZBsmxiczk+Fqe`Q?U{qP&+~l`rlk@qU zcdZuRR;$cANBGu?QI(BKh3Ab1NivROo;MoQDB?z?!XGy`Op=8CexL7aHRhdTE(ioh z6-HHzYNk{!^Z4Y1B$*@$&+2vddOc1i6Lz~@zT4epxVp;4LLtlr0bo?&TPwb`Fskx$ zeVv~!E=ZEI*^DIF>2&yJXNOBGE6h8W&O3+2Lcx2M&SvpML?n*mk3Vm350{+7i((Of z1_M<0_VE4s8cC9fh|EZWWJ-K%Jpl8kOfn@RlWaE2!-E5Sxw^t#tA+7+?1>2RpMSRy V(!4k}+qlp;RNQ5mC-DA4#;irj%Pu z%`6P>>nLP2XG7#j@7}+m&*%F*&*%9Ep6B6ZN9zM%1uy^r2Vgc9PW;T}3l7@D_xxbH zF@Ed~H-|ZcK%mh{_yoU-gxH|M0YKb@FDZdfzL7TpV4o(;!pu23e{nqCUOGyyl{ZT% z9hR{rXhRUyAn@Bs36MhHeeK@UUd^YpQi_g>wd)mRzI`I{L8STq1fwgx936q!{h{sn zETFx{@^nWIX7Y-|j3_qsGZ<7?+Vo{tqXLf}%;tR8Va=w^P&A|9%XW+h)7Ne#U=(-g zNVRR>0sQ@6M!965A!!T$0&B;}!+xbvz&mHnhDvja+mgi=2q2QBm)&sjI**u^R$GPf zh*tqXuQ#kLd%w6jAC-Ctw6>cClA0HDcFWs*y|ood1LP+ffU*Nau6U$CB;BslJom-R zM{Ca5tXI?M^49CpXH0L7>`ooSdjS{A3_Y*|rVC1ny45F>HR&p%bS@LKG4Z*n&@6RN zmW3dotgLUZrccuiMsfQ3KW6R#6Nr}L`VxB5L66jyGSyq;J-|st>oQepef`4e++c4z zS$2O}OUa@zkW1ERYCGyDCswp&=0fW0*}!y5?n&K3=cc*Z40z)O?yURo!*JiZ65~EY zK|oz(6AjLqKi7>a*lShAVRMtCmG&7|V7vF%=U=LPFzl6H+fyloG3G@K4WdN*&%y6@ ziP1x!XKMTnjU0FRDf%$QI+~-3HPK3gGjDhns1W;pZ3fA?xT~qhD&b}tL)NzIo}*xs zcS{>cd3d}|hWyVfH{UBo9t7;IeEuZ{eMGeJNnQ=Jw<=krQ=JRCaXPVsqsTYfiGLEp zOA2C4+>R{u+Ik#19nU<;q&%WEjRbF(TytHgXOIu9wo7%CWnq|X@wK#0L@1bKoEQAN z`p*>g#vsjfWa-tV?S*qI3yWg&uY)E#uK-4oXzCKopPQAtOmSbHyLlo0$L5d%_KSu| zJa3xB43|lWHqxQ@dZyMmNjvFlVc9Nh_NI{F;jc(^BDMpd8yQ_i|gtc+6sdjK4wT@0FPOA&Bkr8a2w}{SGcLZ)L;&^0uB7H)E}G z+u^`%gRmd{Sg-I|!Uym2p76yX>Mmt-eD~#`zaw@G@p7#|BXq;&OSW6wPk;Zy_U95S zZ?Pm85-+O;=W^%5{E((2!9RTy=WAk96R{hs8!+*P_IIr*$4>?>XG}vA$4yX;^Pb3i zhzlS&cDDbv>565D+NObGgk%$i9YYG8i#qD|c=%#g`49VVDu< zG9LmfzxYXbJ#H;{Ca&)=nEHW*7r#Da*hw2~sU+<0b#Rw5Fzi~NC=EavpZJC;t5La{ zS&!3nc~v9JWO$xoF{}&fVxWx;3+)--;=mbx!ZW2fMJdVOpAas-I0XfHkE(<#Q_#D@ z&E18yA=P`KN^TH(C=jyLtJ17))_d)IhwPun7a={czeFsRtgDW|hp!}7?++u=CPEyQ zAL}58XVi+?vXNasVl?H$3hh+|-5hDqj(Oc~)KF4~@!n~tHlw#A5M!&0NQDLn@EzZ! z21tl%wnoy2Fhn^q3(IPmmHIpkMh(%jskrbdWzn?7*y_`!f_Cqsdt z$=06GAwo>wFEfD@!8-E=nWA*7O)bo9)$FOAi0OYs{-0yuG9)X%F4iX&Y&s$$X{99Y ox&Bc@hPXXx!zq8IuSowbTD+hg3YVZ{^PdEOSvp!!%+X2z0pukmI{*Lx diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_editmenu.png b/examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_editmenu.png deleted file mode 100644 index d3ff66f2fd27a5b5e526b50944d5ce42f5b41a35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6177 zcmeHL{X5h9|6j-FpgQOr4xNNLDp80|xtYy5R0^|mhU8{Zh|D5)qhX1197S@M`>Q$# zA&Hr-O*c%0O2+PtWQ$?47-rk&rStva`xl(+`d;7O*R{Q`_xpOipRf1x?(uj$-xhwh01(sGT@|1O++@gCn;M6&u9W2tE=AkP@^DB(b^WEOvgaEikgeQWu|9ak zWl(Z|g_!@!# z&k^|5LbL&1-lem-qS%^RNo~DTb;^B~eD9BO*P6uXS4B&MO4#aETcidbrhYH0MephZ zQ=Jg3(@u;ur*<895(eg*P`+pwt!8{WW1?=MJT3F1HSA&C#F634=6nAR!lpiKE$wAp z3&5tAMH;vvVh>ed&)1r3E$F8y8cN?PVizgQBumk6-9;^GFIcylT2oH3$0t3C&J3db zalJnxhCDruE2Bu9p`jrzmpeR+Tbf}~oD3`THeGc0Co366@=+0RcNicdTjC)6)fCj+yuR1OK`1DQLj@`m(R7>Dt=bF6jRy-lv^eUtgc8 zZQ5hz!?qA|TCfojJZh5kWiDLvSdGJ-hXGHoB#8OJI`y*;_pXT?H3Trn_^Y+G>?&l< zJ}s0p3=)i&3BO|v_#XkPH$D$Yo6Ezxbakn4Mw&Ep}(%?ui1SMlP9tzc3D}OSTKNO#67UZVKofkl;GZi!D^%crlsRyR+z01yR`7(WnDwN zi8uSq``shY$BIvA8fj%3SIXsb$8`0TKhUaZG@71mfHd~3{A};OO{|}ubJCk_=#=%q zpEhd6-Z{e|MGG1AFIich`7N_EGn`heZ_Ta^O4gBM9py0mtropK&ywzk)z#T^t#?8% zU@+p?T{kD_*%da?dn(`gd9gjbawXQ+OM6%ay_0IXhl47V(;l85teSbJih(jp$*lw_ zo0r(E*FDE2OQq7>7Cm)f4{meOFYXZx?DAy9N#?lp zEWKX*c6i#skba7MRmf~=(Q`M!uo(;ncQ!aHrxb>dQ^;lOw|^dodkoTtLR5gOD{jw% zKTb`(R4*1{#ARtY9^ULSD2@-^Sa=3xjhXVr2!5<1CDCZya=T5`F6hHn$6cKC+NLEQ z4b|M(XwEy)_FcZt;a~y6@|Xu>iHqa);eIf4T$;`c!qRW|uv&>k0WdcX%6Q$}`sOW) z72RI9+#C0!3W5+VG^*7#4+bORR>u7WS?iY#g+x=QU#yo!_T^#N^y6(xfrY#cKjt`L zuZuTs0jD-qT$imsV#jvO=J8YPGduq^8Ibt6zzl8s%pmjy{Aa_O+Y-oiZQs^#@8)xT za+$OmSwTJ9`PXij0>2Mkn{~`MEtugy`;-GYJ^A~ZQ&}t)GHKc!$Bp%hjuxjUY2@R+ z`3~*mL~kB|lQF{$DJdyP!s?()!G6-GF5Pt5z5VF+7;by44(X|*1}qQd^W@UvLqg~= zqj5K9W0|-@kvP*tKUwdy$Q(#s>drBwtqwJs>Cbhj_C6vLi8yvEmL}zj^b_ZwQjD%x zVEc*>MGN}T)WntLPZOY8q*9(jeos}Bi5K@-)z#HCr(zmN=hEzLNn7Ur&U-tEw3oeh z)ZoUkvBs6i$3$G6!hCt@%{f5qx>9twbpfqXul z$V(=BnDmv}h%x?BR@z2Qlrvs3m$W$K#b&d0w{6olKfMlE=iU(J2riXxF^x}J1L;}7 zeNwbwGU||FOyi- z1HL@gc5$LV>G@{v7(lQAn1sXcD*=X|NJjAzE-pmS9;ASY#B(Kwu|Aaei*Y+RbX7rH zF3K4iH`869Km|2XF~ep<>V^+M*u?z4!77A{F-);0CUT;BB{YT1Nk1WI`dv*UWx+YF z1axfTTyzEg^Bbo^Q(w?r1^p+MdYG1=3=%|7Bqtx7`qXWht(DnnFPlP=IC_6#0GQKc zvk?G$R;fa(@R5fEg}g%kxfKmWIELOtHjYu`^dovMBmF?BRn2&ged-;-q zrK9r>RwI-I@xo+pNlA&3>+Sh6QKEpRJ`ci}#CYJ{_vHWpwMMs>TTpN}-@L4`{5uZ? z_65l1?(ROC3K2-278dB+#(W&|@`puz=8NmDNV z#en=&cx(`Zv2s>%OU6mESCHD{Gch3WBGyH8EV8iVO%L}q$LBqmvEv7 zqz&d;n`AQC;^LxlWkW-Q-7%&92-)f)ZZttqY7-5ZQCV3T^h!n0uz$j2K5vyl?3r8u zfjNAE6F(Xm5gHmlmZGvvSJx>nXnAW`XlR>=DlIVeEkKvrB`nl>)>XL{McrZhe^drJ z11Tv1q+FT!dTwqGK=Ry3(?m^mc~66})+V45lH=t~0*{|i&QmEW`lmqRTd{0q6%`FV z+t2q5WP8cUa~#ruo!FH?P&5V79|?Z2R8vzEQN(WW=5LHE^T5)~&a+LYW~QevtxOi~ z8>TJ4&jhq*p6?7|=wTA<#TXt|fX1%n@cAVX$zToC*4DZ5?VEc}{)wMDbISFv;1^yR z;Y6b_YwMB0LGfD`bI|h#$?`1d+$nP0ELb=I_;7yg=^+e*B2qJtNd?_fU6I`W+8riE#xA1F8$Jj1kro8_?u9pmLy-=ib~s>Px&JTWln7 z2L}f^oW!X{go-7ObCC{u5*VpJ+hk3UuZfaGc;=$NY}(7}0%!S!CNd@_Ch@&y#r>Ip z&Z`&ZZ$uW8*4EZ8=xRAu2Gv11d>|FFL2!hLVHMdhQ`gXdm# zugjOoKbrs1IkO)AaR-8X@}|QS_J%bL4Hv?~da`)4v%R>j$56r8i1w*H_Ho&jRaN|J zx)-{$>Su4GyxGj=5UACm0*5;XFpLK?BP{it*V}9R2UGQ`RZz~L?-rE&9NOOhweL|V zMr82O4tDz=Md(&)-2`w*ba8o$kFRgDL4*&xsp?THz?;q5`@7f0-M5>ygUk_4t&T>V z^rsD3noJi{A0MAR$nsM0FMh=U*FywWh3>4Ogr7whx1P^$K|cJ1O$!$|z^k#aQFYuC6YS z*!9_hDXem;0VoI5Dxv}oBezvI3nC*3R6~mepvPCl0-elGAfoe~D=C8aYanTG#mWFL zK~Tm#ih&+3Be!~?V?6=AqV>{@Ic5%oMl(RI0TPXg(+LDJsp$JNatqKsTa zJB@oc{@2V1wM>&9DDm?ZgW;h>7$(+F%RDbK7#T{qi|=p=I{uQSdiDuyoeH`9n?|bvx4F5OC$c!sqgQ diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_filemenu.png b/examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_filemenu.png deleted file mode 100644 index f2e2b0d9907538864a007f48cb16bbc6b49d10e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6062 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 D?E(^% diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part2/qml-texteditor2.qmlproject b/examples/tutorials/gettingStarted/gsQml/parts/part2/qml-texteditor2.qmlproject deleted file mode 100644 index d4909f8..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part2/qml-texteditor2.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part3/Button.qml b/examples/tutorials/gettingStarted/gsQml/parts/part3/Button.qml deleted file mode 100644 index 38ace15..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part3/Button.qml +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - smooth: 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/tutorials/gettingStarted/gsQml/parts/part3/EditMenu.qml b/examples/tutorials/gettingStarted/gsQml/parts/part3/EditMenu.qml deleted file mode 100644 index 0c3e005..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part3/EditMenu.qml +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part3/FileMenu.qml b/examples/tutorials/gettingStarted/gsQml/parts/part3/FileMenu.qml deleted file mode 100644 index 2ebb992..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part3/FileMenu.qml +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part3/MenuBar.qml b/examples/tutorials/gettingStarted/gsQml/parts/part3/MenuBar.qml deleted file mode 100644 index 54fd23e..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part3/MenuBar.qml +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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 - VisualItemModel{ - 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/tutorials/gettingStarted/gsQml/parts/part3/TextArea.qml b/examples/tutorials/gettingStarted/gsQml/parts/part3/TextArea.qml deleted file mode 100644 index 426f034..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part3/TextArea.qml +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part3/TextEditor.qml b/examples/tutorials/gettingStarted/gsQml/parts/part3/TextEditor.qml deleted file mode 100644 index 245ba97..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part3/TextEditor.qml +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part3/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/parts/part3/images/arrow.png deleted file mode 100644 index 14978c2e56e55e8e4fc8b7d944bef836d1d68ab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM} z12+tgH>GL-001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8)nMp)JR2b7u%RfjPVHgMC-+PS-8SabWdoQ1Nf{snWPza(!=;GYPv4eX{kO~>Z zK{`lR(MbZ5u~?i7j%}!Qse@S>gj5m;G>{5M$Z+J(uanScf8_bv8keI8nM?-5;SlZn zdw8BF03aeDDF7%UT#h1yVTepRjlYkNK(SQfS-sBDXvE(S5BzX+MBiE()rGusFsflL z2>5z?n_rtvPN!4;YPVV2-zR))Q?ItR`1$gZBsmxiczk+Fqe`Q?U{qP&+~l`rlk@qU zcdZuRR;$cANBGu?QI(BKh3Ab1NivROo;MoQDB?z?!XGy`Op=8CexL7aHRhdTE(ioh z6-HHzYNk{!^Z4Y1B$*@$&+2vddOc1i6Lz~@zT4epxVp;4LLtlr0bo?&TPwb`Fskx$ zeVv~!E=ZEI*^DIF>2&yJXNOBGE6h8W&O3+2Lcx2M&SvpML?n*mk3Vm350{+7i((Of z1_M<0_VE4s8cC9fh|EZWWJ-K%Jpl8kOfn@RlWaE2!-E5Sxw^t#tA+7+?1>2RpMSRy V(!PPXF5%s-a;TZ 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

$J^xyxzw_>PMJDR#+K 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 JT;Z3V{|oGbSB3xp diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part3/qml-texteditor3.qmlproject b/examples/tutorials/gettingStarted/gsQml/parts/part3/qml-texteditor3.qmlproject deleted file mode 100644 index d4909f8..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part3/qml-texteditor3.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part4/Button.qml b/examples/tutorials/gettingStarted/gsQml/parts/part4/Button.qml deleted file mode 100644 index 2fc2824..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/Button.qml +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - smooth: 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/tutorials/gettingStarted/gsQml/parts/part4/EditMenu.qml b/examples/tutorials/gettingStarted/gsQml/parts/part4/EditMenu.qml deleted file mode 100644 index 99f1d45..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/EditMenu.qml +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part4/FileMenu.qml b/examples/tutorials/gettingStarted/gsQml/parts/part4/FileMenu.qml deleted file mode 100644 index 06e8022..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/FileMenu.qml +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part4/MenuBar.qml b/examples/tutorials/gettingStarted/gsQml/parts/part4/MenuBar.qml deleted file mode 100644 index 857b6c3..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/MenuBar.qml +++ /dev/null @@ -1,146 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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 - VisualItemModel{ - 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/tutorials/gettingStarted/gsQml/parts/part4/SimpleButton.qml b/examples/tutorials/gettingStarted/gsQml/parts/part4/SimpleButton.qml deleted file mode 100644 index a85910e..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/SimpleButton.qml +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part4/TextArea.qml b/examples/tutorials/gettingStarted/gsQml/parts/part4/TextArea.qml deleted file mode 100644 index 2ba47c8..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/TextArea.qml +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part4/TextEditor.qml b/examples/tutorials/gettingStarted/gsQml/parts/part4/TextEditor.qml deleted file mode 100644 index 20d60e6..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/TextEditor.qml +++ /dev/null @@ -1,146 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part4/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/parts/part4/images/arrow.png deleted file mode 100644 index 14978c2e56e55e8e4fc8b7d944bef836d1d68ab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 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 diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part4/qml-texteditor4.qmlproject b/examples/tutorials/gettingStarted/gsQml/parts/part4/qml-texteditor4.qmlproject deleted file mode 100644 index d4909f8..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part4/qml-texteditor4.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part5/core/Button.qml b/examples/tutorials/gettingStarted/gsQml/parts/part5/core/Button.qml deleted file mode 100644 index 35174b7..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/core/Button.qml +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - smooth: 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/tutorials/gettingStarted/gsQml/parts/part5/core/EditMenu.qml b/examples/tutorials/gettingStarted/gsQml/parts/part5/core/EditMenu.qml deleted file mode 100644 index dd72591..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/core/EditMenu.qml +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part5/core/FileDialog.qml b/examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileDialog.qml deleted file mode 100644 index 4268ca1..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileDialog.qml +++ /dev/null @@ -1,170 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - anchors.centerIn:parent - height: parent.height -15; width: parent.width -30 - - Rectangle{ - id:header - height:parent.height*0.1 - width: parent.width - radius:3 - 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 - smooth: 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 - smooth:true - 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/tutorials/gettingStarted/gsQml/parts/part5/core/FileMenu.qml b/examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileMenu.qml deleted file mode 100644 index b57baad..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileMenu.qml +++ /dev/null @@ -1,233 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part5/core/MenuBar.qml b/examples/tutorials/gettingStarted/gsQml/parts/part5/core/MenuBar.qml deleted file mode 100644 index 42e2280..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/core/MenuBar.qml +++ /dev/null @@ -1,148 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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} - smooth: 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 - smooth:true - //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 - smooth:true - //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 - VisualItemModel{ - 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/tutorials/gettingStarted/gsQml/parts/part5/core/TextArea.qml b/examples/tutorials/gettingStarted/gsQml/parts/part5/core/TextArea.qml deleted file mode 100644 index 838df7a..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/core/TextArea.qml +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part5/core/qmldir b/examples/tutorials/gettingStarted/gsQml/parts/part5/core/qmldir deleted file mode 100644 index b8b0c7c..0000000 --- a/examples/tutorials/gettingStarted/gsQml/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/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.cpp deleted file mode 100644 index add6a63..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - -void DialogPlugin::registerTypes(const char *uri){ - - //register the class Directory into QML as a "Directory" element version 1.0 - qmlRegisterType(uri, 1, 0, "Directory"); - qmlRegisterType(uri,1,0,"File"); - - //qRegisterMetaType > ("QDeclarativeListProperty"); - -} - -//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs -Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.h b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.h deleted file mode 100644 index 27fc47c..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - -class DialogPlugin : public QDeclarativeExtensionPlugin -{ - Q_OBJECT - - public: - //registerTypes is inherited from QDeclarativeExtensionPlugin - void registerTypes(const char *uri); - -}; - -#endif - diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.cpp b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.cpp deleted file mode 100644 index fe1be10..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - -/* -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(QDeclarativeListProperty * 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(QDeclarativeListProperty * property, int index){ - return static_cast< QList *>(property->data)->at(index); -} - -/* -Returns the number of files in the list -*/ -int filesSize(QDeclarativeListProperty * property){ - return static_cast< QList *>(property->data)->size(); -} - -/* -Function called to empty the list property contents -*/ -void clearFilesPtr(QDeclarativeListProperty *property){ - return static_cast< QList *>(property->data)->clear(); -} - -/* -Returns the list of files as a QDeclarativeListProperty. -*/ -QDeclarativeListProperty Directory::files(){ - - refresh(); -// return QDeclarativeListProperty(this,m_filePtrList); //not recommended in the docs - return QDeclarativeListProperty( 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/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.h b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.h deleted file mode 100644 index 00aff95..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 -#include -#include -#include -#include - -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(QDeclarativeListProperty 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; - QDeclarativeListProperty 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 m_fileList; - - //refresh content of the directory - void refresh(); -}; - - -#endif diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.cpp b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.cpp deleted file mode 100644 index 2844274..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.h b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.h deleted file mode 100644 index 200d6fb..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.h +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 -#include - -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/tutorials/gettingStarted/gsQml/parts/part5/filedialog/filedialog.pro b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/filedialog.pro deleted file mode 100644 index 6247747..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/filedialog.pro +++ /dev/null @@ -1,17 +0,0 @@ -TEMPLATE = lib -CONFIG += qt plugin -QT += declarative - -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/tutorials/gettingStarted/gsQml/parts/part5/filedialog/qmldir b/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/qmldir deleted file mode 100644 index 4a8d13d..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin FileDialog ../plugins diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part5/images/arrow.png b/examples/tutorials/gettingStarted/gsQml/parts/part5/images/arrow.png deleted file mode 100644 index 14978c2e56e55e8e4fc8b7d944bef836d1d68ab7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM} z12+tgH>GL-001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8)nMp)JR2b7u%RfjPVHgMC-+PS-8SabWdoQ1Nf{snWPza(!=;GYPv4eX{kO~>Z zK{`lR(MbZ5u~?i7j%}!Qse@S>gj5m;G>{5M$Z+J(uanScf8_bv8keI8nM?-5;SlZn zdw8BF03aeDDF7%UT#h1yVTepRjlYkNK(SQfS-sBDXvE(S5BzX+MBiE()rGusFsflL z2>5z?n_rtvPN!4;YPVV2-zR))Q?ItR`1$gZBsmxiczk+Fqe`Q?U{qP&+~l`rlk@qU zcdZuRR;$cANBGu?QI(BKh3Ab1NivROo;MoQDB?z?!XGy`Op=8CexL7aHRhdTE(ioh z6-HHzYNk{!^Z4Y1B$*@$&+2vddOc1i6Lz~@zT4epxVp;4LLtlr0bo?&TPwb`Fskx$ zeVv~!E=ZEI*^DIF>2&yJXNOBGE6h8W&O3+2Lcx2M&SvpML?n*mk3Vm350{+7i((Of z1_M<0_VE4s8cC9fh|EZWWJ-K%Jpl8kOfn@RlWaE2!-E5Sxw^t#tA+7+?1>2RpMSRy V(!T1q6i9dkxa1_hKla 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 z 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%0DsjAG{(-$zGz`MmU` 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 BvKRmW diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part5/qml-texteditor5.qmlproject b/examples/tutorials/gettingStarted/gsQml/parts/part5/qml-texteditor5.qmlproject deleted file mode 100644 index ed034df..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/qml-texteditor5.qmlproject +++ /dev/null @@ -1,18 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - directory: "core" - directory: "filedialog" - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - importPaths: [ " ./plugins " ] -} diff --git a/examples/tutorials/gettingStarted/gsQml/parts/part5/textEditor.qml b/examples/tutorials/gettingStarted/gsQml/parts/part5/textEditor.qml deleted file mode 100644 index 07bce8c..0000000 --- a/examples/tutorials/gettingStarted/gsQml/parts/part5/textEditor.qml +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png b/examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png deleted file mode 100644 index 27feed5e82c37d41c6e208d9e04bc063ebb3e449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65123 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 z 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%0DsjAG{(-$zGz`MmU` zJHzfvWyZ#KbVh|xkiWqqdMboUzzdb2)!Btt&OX48*3gIveA`!RH>U*xRa7RsZDYMl zUsAHmhUAh%_1y=zSo9nGV!N==&}3yM^|iDNLE>2(gs2s0;gcrIqN1TbB)!khOGZ|n zpWivI`PC-zt78D;>j5xRq)Dz~TS{Y+$Fr#BRFITL^MmU=EByp;@VU63xhHGrKnDiM zqM-1ZdfSOIsqW0-VZ_uFd919O^4^P~!MHGi6F!!roPvV-^8Fpqk8K}zOqr=DGw>cj zI*m)RvX)7Gp3cKyV#!!{;$ovKeuc=F_L>&!7ri|te~8ciSnOD^w8*G`_{*Iqw0KD1 zx-_lzh%jF8;^^*4X-LRImYgqn0CpN6d);?}BO*k6d`7ptwY0ShHHv=>Ic9_punNE1 zorqdrf3)l<(?ubWd^sC^Q%sDiJ9B*qvEkmI%OJ>LKtf zMM>oUIyM%{VJfRxM$5?na|x@xYV9Fkk{10C=(KPZulI!Pq4AFitbt}ER>&UQPI;|nw#q+qW3lZ`iD4bco!ao zW%g@%`C!(S+tBa3LeB$MsZ8hN<5uM?*~bBA2xW0&W4Gtu+ys*QR`$HT_-5T{f|y-4 z#@2FjG6e*Z_(=NN+UTiGZ+bU0Gz?5mCU#8cu+ zQqyN-DpFFK;%x*q-38ju_(-_f*{5b^vKkt8RtIEHy#5wK#UyM&l&duD0e)MSoIJ~? z?zS79eTD`mgUinR zJ_)D8YJUeviJe8wSNF7>uF;>P0v z=L9m_yNB`sf zyuO17f8tn%?C9r^pm`+%@mH@5EY^LBt7NGof?Gci51(tPq2G;&8-W>N_MkRbI=f~XHep)&ww{``(()aG_*id=7pV(^J@kYn@X$2V!@Y>qi+v0s@3 zK}Me{TT=+Y7RJRDQ^d`DLAxpw7&uQM!G5_5sRY3~N|Jt9jg%Kk!+TmNOHC0_R>nt9 zPY)vf3P^i{>RYqEIdT#p*)XUv?jnfHjX6JHHzgp)o}by^C;2JQ4}XOui=w!ghYYxP zczG@5MzR&Kwhs@z*D|ZS2}DE$BC3XD#%ecc|3}RFgv__&^~fvt(|b4=>?tM|m7T3E zFMrK@b!{yxH$yn}MG`z(lK$-6n?<)~pgJRYHfL?<2AA!{DDRdiBr3chy zlVSl^JqijsyNE{{KLhMwdrsWmUU7Lj3(T)zob2?pVY6>*Ywa(M)MMh}Uf|*p*ORdn z(FzE-gYxZ(Wi*a(RAi)yaRM9XV&n1h`a-)xh-hX2c6g4{<%N-Lefjc`LZeclo}S)* zGuB(xiAJyEw%w(<*w_`--aPobhRB3E+nzWGghl^_`luZ!D)1Qa_jgv2SM<$5xF_z3 z%qSpd!14S+5aKr<R^ZCo2>{S$yCsaid?% z*Aom)*l1CvV3B^K%f;EV#IEibHg_0Qj@Q*k;A^ULD8c3Tv&S_=b6}9p);JG+Ac(ll z#|duwp$>?z4PNd?qxv)w61J;*(YGDn{OA{u6i6n;*-=l%+@`^#!`D3jf0qq0`4@ z1crga;mIuQY-~`)51>6(4fN`k#3YRAa@bvANhd@QD3Iwji5;ow%wfHWvo~+|;iFoC zx)GFNxw&g{ay?FLAe?V+yJKRyfRHEg(O9p_F4QJA)>_rv>tG|7jO;at|K;WTAdCz6 zUeFH_%dm7RW@csGzTH<*##vNQAm~83H<(F?pt7{=QrFXbY7u!G($&+)A}>8LIW{JW z#J8az&_Utzg!QMYnwpt$LcPy+`K4qidgsvTy%!tKsMR`fxQ*2nY{NP0N56 z0B8i1!>XA6K17TK7|Ztnlp*SUaTaC-`X$Bc2i2xUgtMHm@O4lOL!#9l5@2Z8ATm|+ zqFdW(aD>}F?%%ru@j8Vc1_n}rTb`TSW7er^8{8ev#Ssx%p`^@+ic+lsxxN)`a$=%T zufAhOX2k%6b7VeB_`}{Fr1*Aj+ZnQey7Pkxeovo?Vv4A)C1#z6bzaABbZZZ=g=f4R z_t%CV;M`XN51_aA&8JV_V57b;qKu*5b@X+0m34I1H#Z;Qa~+oUH53-v_Fovv z#r%AL&jleNH#2)%_0$mZeYF*J2-FskF8Jzd|5fJr85>~E#|6S!YilNZY<_O;@mtc5 zM<*TwE6q*ISy@>t%lI9}NCL;{Q9C*9D^slrpJEL_6N;t{mX)15uJmq{JiyD%J#C$5 z2Pj-gDLUHaF(>CIfy)7j3|o1l*iH&60~3)dyoaD?6G1j5$#2c9XpokxSxh$P(}LIh}B# ziGos5XVqVvK+&C(8x9Jeq~_Eb zPh~I$w!0rXaBNO1>FPFn*_gYxtn97z$;)E`1Upelfjx$Y`!1&W&Gqo~bZD1sP0F?kzrOHVlw8)o*oA&1&b==cn1#1o>fRdv7Dd;oHA~7+EM)p^uFi@vG_Z6AHz;{8<=*FrLoRMX z@&MLJ_RVR})y^nJQc?xMM#V13+hjiX<)fXU#5~8R39hr#!-KmydznE&;*O3(fHjKc z0K*#tBedJlYNL&SBa2ZBH!jLqyX%!^4U&WWozI!H2_Nzh8MXlyfsSqsfKgbyHWI1w za}Gl~`2hJa<=7l6;_0bvZ4vdaT0%w1S4&m395PC}^ox6O=2lTq;9ly(!&60=fwYW6 zBhSsn)dgm{wS17MQh2z%Y5T|Fp7_eZz?-=kO60i!La0s}nVVPF)`sj7xVl0>!Xi1DjeYBzPRFr@|=`1DmKC&m0D7<_yX%2NB()knLN&fmPg zrttWy_x?zx?D64D$o~HR{N8a;P*A#rCx}WG{(#i~@Z-m}pWlubvOGFHa%6Xh&JTU$PRa-HCnwx%WkisTdv`McO+ zVoYo74|fqsFn`AYb0SO$>Imm&K$1t}=uc*BR_|G-0Htr}ZLdWA-M&j?64_`%X> zz!A81ao#@TVcC@(sn$?IEx&s*R>;iu@5+vzM6-RyOsFIb&kl$!PoI-~bLfxC)r zXz#5wu5NDbj;PPx7lsz;Gu)4I(Q7+jf?P_<$}-SmuQ@wBdnFN*MoUT>wz`T($mPYp zJqPNKZ$H_F&8A*Y?<{1;^f@_z7#XPp&q{lX6;V!A60z>b?cT&>Zca{OfwMi7 zTgXL-{`c;?t`<116ejSxij6Arm2R(KgOB^a{$k6XW1;T@1q^v0uKy_ufhy~e4n0b)RWT-@4Az*~T%OhmK+2=tFc9d&kdkEYoKHbA+0Z&W z3+VaUPX3vyaQK#B5S6{zv3Or^y3nk!sOY=;dN~;x82CLV3E%exd%-ii^IT;R7VG38 z2?G3&S+{Sht7rF)Xv%`>7oTgisY#Z;fY*ID-{B#`-@w)y`(uF)^NL;2ye~GAdXo#% znJ?th9HpeBWM#7UH8&3oANZOnqpwwNq3PwtPG-EJL7HmUQ90|Quc7hM&=8+QV5=$6 zl95Rvk%x`bNnThO2oISdAx1h0UkeK0>m%_S^|Z>9>0C@S)L8(iJbQ))D&&HKFx#0r zif|SAM4s>tIU2b~ki^8Hsk0v=BXs=dF%H?};gsa$qC-FJs&%S$3fC-F2DbnAh4ev~ zdD9<_ps+?H^6>Juw4&9bi;q7h(vAZ+>`)DI`vf{Naq#W2X0}t4krh-`sZd9No$)TW zoA2rCvz&Noj7|NG&a)dW`R+Z!20IAs4q5*AzUnp3G2 zNc5E{Od9Q@v;q4=gAZ|ba+1t+2D)B6m-T%zQThTISy|8XeRY059WcwSW|NfkXHzO} z%2`f{h}?+f#S5VVn5R7KJ$gg2$?&iwjRHyE+>7ZNB-!JphEYv$Xp>u5Xb5(e-~$N& zVMasq_U!B>d=iK#ckYOG8w$PtF)+~3r59CleVfXPA2QBfPuuY^i{lSBdKL z9XX~~aqO;6xH(g~2a4g}xhp;ZXkB-prQ(EO@HfsB09U$-fB!I>)iJZ|wL9G5o8G3e zv2g+#8d`U6ulro!ib8UOY_ip>SDf73-bY`f=}Zj`q5b_i6@h=J87ra_9sUFtl5kZV z93x;xGBcY_JOz7u3s!s(3lUaU8U)h=8a4->zTd?|keHJA%sn@&=ekqt>kGKbJG&Tw zaKf9cPK!&QD_HR5%S0C}Y*$au1`qGB1}{5{WL*0I;iP<_qo^q6d$B({31ACAeITW> z#k&3i2o4LIo6J;HOBM@%@slruHBC4vKi~27)i0+yKNFWrCi&{V*LeMgJ{a0++KFO- zap+8RA^1@8ovQ+!kPy&+zENGbPqvUU<->#^kNKo{?JBGBH}@!#796U<31QHJ;Vfve z5vb3jPmbJn-S`Lz^I~G~5XUDc;Gjc zJpuv}Y}O>erXG8dlJ>dI1d{~-wX#t6l>HoYm3uZLU-z^mDoSi+ospfrmwwh8rBQ9~wC!}~+)h<^ z_}sw(*ZzK}M40K|%Fs|)Yg-}EFH!;1t-Bk=pcxc&R`oPBGqYMn%XMRn&eZWf)7AKm zpy?~rrpc&ejLum# zw~~|bRuQN8-%=avd@+fQqQL^mQO=%6cIj1Bw2qF-xn-Lz!9$9QGUNUPXGUG@U%?Ht zaw`7L{48UY%0%2YhzzL<`qR1YD;Xpz2* zuU?}M{Os6qj4+nXXct-#@3MJTm;7dft=x5#6n>aDBbfd#TH};O5_!VGzi@(aH2lm% zwlda(RLPS9Xa(Rg-^b;QsAo>@1Bywp?X2O+b~|ZUcRY7UAGbj+s6{_VBF<}^w=79N z9Q+G445hyI5{E(SlOqw{qM~-T*TG%*={bW{ zyW9A5V)RcCf$`r!M9)vpZ5_mt;=vGy5-slWF*y#-LPHqR1yRPec;D3{$zimR1(j@I zfRM*G0`q@QcHI8&WCyyZ=Oh@$SXk;eZs?hqIE%N9gQDGtJoq2VUA44xH2cI9Dp^a1 z)b`O%1fa%27ISjA9|=)6e`E-N5h#J_ldG?|4Ro3L-d(0t3;#7QUOtk;W~|X<9_O9; zR+v)<;4?t9vU7G`*GX(etX%_TGJrNfhyc@#{;iPUi)d&P+>8>^^(-Ovh!n}+-3lXv zROQJ*pMW6#AEmedtl~YA=~B*?N5@Ev`1DClO>J#{{^0`}D@)5-k9}%Smd=0D70-F- z5dRGy(2knWrJsk&#&fN8$I1kJ+FL1-kLNN6Tz}lHo?m!lm*5wRk;?~oh=f*lp4;hb zEJ$Ieo)OYD;#5ja-4+@u*J%c@sGOYKF#fV#PDe!h z=&DBA+|oTan@i06hBn zurHcU)n?Yz1RYNe?!N0=8A?t}AllsvDYun){1wzPY;SMgBnL7gv!|lVKe&qNExO$Q zfg#{=IMM7{Ge5?P1;)o+P1p&D4HXqTz`MqC7jMso)z#iU)Mq;k zxN1P(J@Yx^{F~^>=v+?MY;%G@0n-Pf7uSU(zb&Qj5I%a;(<295C?>r?lzzg=`Gtvy zu-3lq106^|rY6%+_J;?PY;0^me|K?#YE?krCXJZ2XaI$jit2p6)si0*Nxpg*<ei~IkWOQ_GZ7nTL;BV|=6mg}kV&8dC+ET>+g|TvBh1&v1Z$0ss`@Osa0Ny-% zb~7=rG$$u#7vYp{c~2Placa=TTRDzDJmlhvhOk`HL$Lank$dE%yv!-G@9SaGsj&L~ z?p`0*QyM5u&M-9#W!P9TGED+q)}1dYG*nf#`_74%w|9DFWo>5}KN%&*Ufqi-HvnF) zbdk~*Rf`b)F&7wYqyF%vw|D)KS3_#*-0Fayk~y*WMRqbfIYsl0>ums;2qbSUEFAap zvRzFJM+zW+{OIj9WEU2ew1h2eY$VVrQ|Dkj`Hgfq`UC|x0TCfr37ug!nk^JHQF$`` z@i*CFi{kt5WXFrDu^#wgJ1$;%Mwh|6K`3+IHb)wOHXd|H<#V;=MY6qul+=Se5UcTB zZjvz1Ej>9<35<;uIv#3QI=J!K0GmY_{WcGAHY#H@Q3SCOKL8uoM z4+7@4fysc$2`%uzDXFuHr-)BED>`$&)Dr_kUA%1}SPfJrsUodUD$)F>7XbBMu=L@U z-~m+I66xjX#md}Me=x8DOnX?QHn-!vsfoKXGT1w5=h6>C?6(hsKB%BcM zF$e_+z9Bba{7EM{C3Fa!LXSuU`heU(ZJJ(abnS@?`~=uy*0$%8`x0x@U>e|TLCk-; zcnoqHe{EQr^5FjghtL0&+o(_+@C=)JFLT)?5sbpt78n^Mn)FvuRGpg#q~cvK2^OuAM&&lLD%O7vg0-%o99wEZ`xgACHuF{Hd)YATl~==-s{nvNeA1d&)73vD%C zX`VW7aNQ{NT#L{uVAQNED|^Z_fg_w>zyvf=15;CJRAA(=va!j{vwXqK_g60Go;d$zUD(qQxlN=jKTA|6DYj&IXBnd z+nd5sLw(f1!eVNP$|a8cpN;@->j}!J8i2Nk24hlbl?mRHOr3t4MHc9OdV~%#Ca7c} z@H;Nc_I2|K8orqY+|${axNenQ4@j1C&4PK6PENSEc)_tEOMQu|>Z7d5+FB$#$6n>F zk?J2>fF)(K)*t)@PyT8Q3=OqR%lG|%S1803RaRstI;38xs5BAbKY-BckL=D!U0$92 zTd4)`kAMshid<@H3LRbIO54jmU@EQcqTiRqpXe6LN zV`F0hm4a{wDnn2Z^$AB;W|G*CIlCEeS7n*5bg=)wN!P}$qpN;LOn}NGna`YorRe=T zR62TkU|wftX{@v}{Hnp|zMCPJY5dz5(7Pq`3Z%Oj8PKipZl}te?vD(OX!Q4^J`!-O zPgOG@Qj3ZzB`LvB==)`Df-p}T&?#S;m*V2J!Pen!RTe|+r?eQKCy_I}|E`FAC@&c$ zO}0VXhYr`x#e2e=QyuYaMh+`CHv>NX(;cv^bd@A|#T2LET3tm9CrgmKfQGEAn*w?3R`xagWxL_;1G+bZRoYyH$bb>QY%$SC%zmSFTRG8s+CR0=pcuUfsuE`}EyF`>O=Tp8j0|H~v)u|G()xI5g7% zxnxG=cXh7EHAv$`ctd8(-_Q>9jsflS`9c|g!4>TWzB5=+1aRadsseitUm1MU{`&aU z-m)MKrB!g)Wike#9wE1l(^k`lp^7)}#Y82Pv>t%{ZyaISFcgCq99OKn_t@jG_Q|T9 zec)$;PbynlknA4c0x*)L;pqajU`k-a=XW_)+F@zPtyagSo@=lQvJbMwlxr(*z@69f1DT+@@2x~!*B#Zw`jx*RKLWVJ5d zLKpE#C1qd#lXbPUbJzhG7eHd-cY7=+KO>PG-eC;p#B6oMtjVYP>U%DL2qg7J%y@2j z%aXRW~zrRLr0!q3unp3_8;F`lL!6n)S#Sp+>Y#%E1#S^DzZuj znh!&sgTsA5S8HpN&eplVZQ%TuJ)i8q*TobK4KrZ=D=GOzO40)ln_8g`5%B2${1)5` zA9_aWeF3jb&z4X8K{+2m9op5~tJpEo{!eSc>h6a9;8+)}L~F{PB6Sn91jRp9fD-Au z0iQtW=z9v+lk3auvlY#BEeBPlww4wVF`R*ZQ&U@8K9-#fNO-``mX~Mb=y*4=+_FYU z&Pc50 zW{&DG1~wCbk6T7ZWvnSGDxj*WBmA(mBAb9SSMh|7(ybY$?VTOU0N`?=$Grm->;P;* z!Q@)kyEUHv=+UG%qGpirsEke2Y%1h^OJ_1M@y+hJ^HZ$YzU!}bg3(jAz1i z{C`m6@6*8Y*whMd6OhL$Dk|(3#LdiB0DF2rjh3ZIiEd$W@l&$?R5i0_!bIc%Zqxyj z%3m4ujG1u5=D|dyV)Z?yh=qiNH_sfi%uJJ#S-)=qqYHosz!KhR0_1BH8z1uP-aB4HNSqFwpnR8aiDTfBtJ6*9NUB5&YKG zzc@~oUDc?r%l%zl1!?nokkDVLa3Ub}1#L_@TfirM-+F69!{xa-9*;70H7LAysp~iS zZWg9|%D&+NebdPgEJnn*88s)F+Pa7faURdzjDos4dUEoNoSd@a;_AAynWn(+FN+sD zBDmm$iq*<+->aod;KAUyrrH(9$8$ish@TAtz8g^8;?~7~t(5qTTq)rN3H^^2VR7qI zKs?XPY|2*9{EZyfhj;J%lX9PE$@M01;kOi8BJsUA&QDC-2Ma82Ugrfht5?-P3|sn) zH+My{jp%9pprgYb)9x6r6?qb}#ooj^0uE{h7Q4})&P0n#qpMgD3KG#WfX^@}+FBw} z7)eieXH9y=*gxs+C1QEbC!ZnexTMK-c81$=PrA@j!BpZrH~f_3!^q_ln460xriifE zxci_GR0s~6Q+VY||0LEeaIz0f#`g1XMtNGTA#tbp_jrtuGBV)F2Sj=I~+ z;=?tbl?H2rUjgBOM)nH{tSmaQ*sK4m!-ak&W^_*L3RI#PaUPI2kPLUX%P;$08MrZ1 zyWd>3|Lx)tZsh&uJW7)>xs?j+VAj^wye=8QmQZu`cOFn~C8k#W)}^-$emRT($C?en zyD`(9<+Bw;i0es=pe5E%Rj|RI-EAHOsw?ZaZq?nq`v%xE9fg~skB%MFOA>xa_7##ZlDwWYmsOrydf4_an z5Ye$JA|lcZR%V<4aAR)c(-H|*VR-|X%m6>xaT)KnS}LbI|=nJA2J>70rWukT$myj(B*H-}s3 zd#x{L#+pr=drzN;A#EQu>>xG*1^l-=`fqNuRF+VJ1z@+R0Ek@p$A7o7z58z#v^2-l z&Sz7Twh};i-T~?kVlG2!p`_F?veZTR$E0o1bm>Yq&>g`VDG(fhlfFL^+milxIX(}l zh%ui&P0TPmy5I){{PBfyGm%3^t`dhd`3!UmaQ?p!kpYDG_2J9kayKf9Av8OS7$+g}5qc!(0(I`b+J1k7>gr9zPamv`BqVvwh8<>6U09zQ06d z<)l`*OXKP0w07;`!F17n@$hu^#QS#|5n5%BwH8(AOH}#D)D)lLd?Z&2FQpaTJ!3mf zT9*I8N+f!{aVy)m+ps6jQkUa<$lA*$fhIj?;W976O+T7|@7=M?K0Y(UawgXNY0U(Z`@^}?bB8R@66a(hC8UF!C#~+pWrd;wKLAh&&be8eNk3cmc$c9i_3FB5AL-| zPY_4ACVpAoTEC7Scgv@0?34>sHQrS zQx1$I7-*WyKUq8a?KsIq%eAAKI5>*DE{+cp5^6y|y1R>EVDPJ3p*Pdfe+IUO%XVKc zx7AN&X=yd>g`8|=RTUK<^=vFXI~R652+2<6QDMhq=L+vCa5S~<4BOCi?bOvh1<1ib zk{~sZ_lAXylP|ECTTfQx6~N6aJqb<}`Yxr`QFt&yAK~`UeHJ3P{)|_o(-hWf}Zfs z!zA$GFeD}Gk{^Sa3Ev7WY(e%LV`zUaJ8;*2=^7bX@2j8#PvGOn1H_l~bY18DW)j~2 z!`fTNRhe&bqgaTDfPsLNSV)(EAR(ZlC|%MZC5?2Wq^N`-Ai3$-2uN%?1e9*sbcl3! zZR)PAGjnD}&$;jWxp)3JGY4_!^ZeFY-&$#@skSyGIVVKZ2b-oy z+BDVIqfN|pbi#vz+6M;u(CDO%ZqGSYMS1y@WR08F_luo2U7=N?PIyA*4~9vH)d9Q3 z{gkjUAL*&i`4JwofsJM5w)v676awRFL6MDUg1YIRE1tqOHhz5)==6`rng6(cpN_D+ zJ=)i+43x@);15@WfQ2|Y$o){N;`-a8k`Z?b)b?kyNS)@!n!-E3X=Rt}5Kx21dl_69 z`DUkP^ABoj^y%oFidAN2X2hi`KmumDs3BZHG+}H!%P$~s&#!|NuO>^Q%w79=pNiRV zxy*Izv1NN)TwJ*nzOHVbHL{TW5ugV%H4muQ?UIIFot*bDn>Bu%?fko8njCbG*i=in z?_YfXY232*4SN)~X+yp#MX&B-iqO*=$g}Z#cPEZS662<&g(GsKWu$o#&jUR1I%{@v&pNLK8>5g^1M(2a|tn|VB0AF6XU7du5 zA5vV1=;+`O6$v$@h|Le3Y}MRYUCqwTU6_+UM;b=OPxe(uevq*C)AIs{)xNQ@Hys_8 zBKHjq9h{vzK+@cwJ4u16zIBV_V8_j^M7KU(XwT3O)Zik^@p*afnJwX*A5KN$IrTpf zlByM?O)MEEPMzoFEz+qW^Y-!ar!rR491aW$I(-4TKT9s!bA*}>t~dhv%WDD)dsz=P zI!adIwnIinGFGd$V!LQ9-3xJYdfwLrhwZml>_CaE@gpSxhi&W)T&1GY*4B5##A@S2 zbIc~Au}$qKJf1Tt*ws0JwNpOArZND8a_IU`FS|7k{-#hH>-5(RLG$L&viTx}dNbm{ z_ReP(Z`MapwsD@17+u+ahRiQ`O5}3rPgOKgQ~H$<&NaZ60l?0tMX#h z*H2!oSQOH0&}9izm6kq3Mb$qrAi}k}7IpcIgREw5#QXO#At4zK8cIsqx1VQuc{!-6 zIw>mJiin6SDTNswA@uP;V%0lZx*{Vjx)^H%U)}BY1flaJA>r?rzI^{;S*fU-R#SoR8pkm^uif24JBDA(z)7<8@k35dO@lZwHH)FSo9%3u zIy%!+gf82Dd3jVwL7xBHsvkTK0UmL*;9hMQJCHLdK5Fdyz2|>g1^8R5Zf>5M)>c&p zKj_Y{d3K@&lG803;_t4WXNfAaTdW**%Sy?g8+dTg`_w>0q+zHG(e9VjVP8}lL@cYQ zNFN-%v8nk%v2bVGq4sms2PBf#6Wm3Vw`^BdTZNKO+6f4>^qaS)rl&8i24cU++bMo+ zRng;2wv6e%oe9Nt)mI=jm*t^6*)qemvj zvvMN$vxfRpQ&I{{`!n}YZo~DpC{fe2 zjEvQ_H8L)7&5L9ej_dg7nlle#qocXP8l!L2t6VzqNTMv(Hj~pp*2Ck=!UCr~KOBcv zwzfURT#rz~1}P#^MBUgGZCajH^5oa-76!VzCvlIz1`eNsBC<95p^~w*oE#|5DyeQ& z!HM=rvgPHkXGuHr*A5OI(;(?A4}Loq0lLXd6(ta=A1D00wez|w+E>lbQJCj=Bl0q$x3CNH&iD*Je&WFa^VlhuLL$-C1uqc5@n1YcSd(DjSGaLdU z`#;QsN0$EZ_#BV@xi;b-H~0uEA74CCiM#}2VfPE^fx}o`802Skx-k(M^kNxDoHe|~ zXFf3*DkS!EJ!w@{9hsRd92Vn+0j=)ijl+HcQcx0ZUc@e)z#-7F|1P*|+Ve31ApoZ@ z^Y!a-$c;mD4hw2LX*bLk)C%^kvA@P9^38W=iIj>;SgB`qq6jYM$oESi%7#N$nOYK$ z*K+J(yi8j9#@r0Ux!0s{E5@azU1ewA>qwe4+UtRRltZN(14U~vjS-7{_;9o}MxeE! z0V<)E-qlnjGH&OMp8(?-hn4Mn+S&+df#XNFz&cWZLK*1k(OpTDt`LD*RDMu?@QyyX zNX<-G_<^;xiIvqu8Y`>*lRnYmdqO!8ik8Uu&SP6x%gwn1iG%b1h zHRaaBD~$ovd)cX}O`knk&$B8r4uIc0-$+4AzLV(Kv8$b-MOK3>YIT=9)k^J6;hjU5 zVLfX2H41!!!=0TXc&G8BKY#yH8*m^mv;4f3M+L>ecJa0~#u}e?EFqu^ar47b!cFTPcv13b$#u%JR@0FL&aOu8q9HLKBSjbPq;+5YUDv^pRcgA1W}Pgr5#|bRcc*f1E^YjEt(e2B0)7b0V^}Wx%6_`gMd0 z8>{dE+B-I(98MoZ#hE6&cwUT>~}(T4NHBO{BCJ%cW|*gnm^ zrG-$nz+0vSu*1LiWAUw(*lT9$DE~7WVM|MFcSS%%M0KmHu)Li1>Qy);wPpt4o1UGu zf`jh-`3XP2=E;_%bgtC2G>BCB=1(;OZAfuR>rI;(0~D@Orta}$zFZZ)^gwpPzznuEj`|5*7B;73*b0qv`*#PFotC3VNxu4?!*q!mdEQuQX@d9c7m*sc6cdF<2tQ0& z)34@ubPtXZ?A7_Gc#1MZ!6lQCEa0Bd3Jx;1ZZ(ffhYoc}tS()>E*?qQTKqwP25!Y{o| zxy@FdEB7``i7BK8m6ykH{45m}ZAgvpotWfg9bmoyfQC~k*%nB%e;zh5f_Y5}kZ z&qw;T(@K5e|f+LK90B;HPkqx58;1MM6-=ChDiC4LIcQ2M)wxE)za*U1U z3!4#Nsn^NL($$trGse%Ll8A~bwUrdlhtqP39`v2sdjs{K;O4o7>VaT7Kfr@RL(fBY z2#jV1tuf@JVVylay2i%6eSM(&P3*Iuctk2Bv{>z<7ZSqN)pZtbpU#a_6t=0Mx6Xln zJDjP!w6w3yV(k^lVy1HL3ViiOVfs4ggw*|v4@XBvf;Kh`z@Bi`(|N5ObC#}!lJ5$n zMeOg#$HpefpOU}}=WaIKT-cM4VD==AYkR&gMM6Tf<(#09e)!1YJFrTK&9l>V zNtBy+kopV1(JL50G&Ni6?t>H84~5eDdhJ1gfE`6qrdml{FhF3>g+0#w^HVseP`g~$~F8wMCr zbk7nDx`D?2k*#C>8CIj6mgpT&Siv0I-;V&o{88k@9hx%~PNB$MELl9n&Q3SJ(g1#d zpDmXqwwig~NDNAtzdj)&=j?pGPS@H##AsxlnVL&kbEqBiTMKeRkO@ajURs zk9U}!CN*fWu5W0teHLyBoi1q@z0kq#Yn6u&9|}Lqj?z$2?~+$l6=N+x35+k>ufaa{ z2dI5!=3|{X;o*k&>o|`4JOIbh30m=_AhV6Bb{)swf1jeJ^~6Ekq71x!{!gg6zBGtS ztEt_~3Vru3Z9xw~PE~A6Aa+V0ZXF!lQ}~-BS*iD_&!2yyyH=c$F>W{PaMb zZ?`?SnyRV6&s2squC?eSZiSoe_OKSRX=!uUK}Xi{R_~ud##Jhpw{@f<_ z)D;vs9dek2Y zeCNzl1A}JB^pwaUJf$wVXk=nyYnfx9oWoW+tAcX#y~4(|ei&7jpWpKJt4`;2mls;Q zGib&C`b)^ugwbP9tMxnK3%(jOo}aG>JaAW+5gK`$TY%HxUNdp2?H+IU zZ9VMEYlBbarNyGg$SV@p%>@!-k%b{{5o)f9U+869=EmJWw@*q=>izl@@O+$GtjOXcYOfEY|TTy_Kz>%n0jtjDNp`f z`x0xGeSiMPXQPk6{KEqK5*k?#9MPvw+59-R&;K= ztw4qRh8>kOa7zg-w}69nIdC}uJsSWe?(RWTQ#}(C=fP!deFxgQU(S44v7%ypm>|LO z2)P6g9zCkCp5{ZjKzZmRTwaSBot@QtQsuUi$j-|<3X;Umjj5@Z&~jaRONTH&cYedy z>&wo%>-hA>ndj$4w{=82{GKpW(xsqn3-i zK+CoJ97pry$<_S)4fv6#=R4@gy%W=pz0t((eAM~`*Z;mC=INgASp!0eX@Q@^+-ci$jOvzoy8M zam13d!Q1)tsY*V4#C)>F1*Rh^s_6Oo)-z{hlO?R;?e5-d0Gb9&XAd9Frpft=#9c-W z{yANPF4V>*V0tEWgqQ|#j6)fU0dQsF4;%Gz?9CUCt;t})+lcqX9A;7V8LFFo{Rnz& zFTK)lUO}@&`!H$Q(jiGC?mA=oyLw4hLLy!2s8<@U?*fWh`;2U|@R zuR}T~+#zB3QUg9h|LkDjiC-;C{||_nst1EO3C4hTe(db%aM!># z#br_94&$q>1(Ra~%#7(xjf_T5pU$*ST{j9Se*JnJ*%%sn*eINq1bMpeUns0e5L6nR zC0XnjU-j?acS;?(e*K}#O^6GTAWr#Q6I15M1t}JlU-ZPK18*|Vi&$FTqruD_@s>}$ z_qU1NwgXaE;h(j$$qfW<@YU1PlQ%cR7Bh7?-b@J7kdEKRbcfS(J3Bl1`1YT@{DF3g zn))#^AfX$C9$>J{sRDtJ%98x-?cotUV~IW1n>a{FNYI&?RYNiIKMs7sJJ?(G6E3zI z{p-N(p$z(^KfWK}lbE9U?*3soyJ1ym@HJ(a!`$}PpA;|`m=6QU4c?t2M?BKxs9>C& zQg?ABDeilLo$aZp9zcT2F{4|J@=?6O7bux*?GTmFIrGQl=2mxQXbaS|_4Le*=?3&+ z8&Qojk3z`zf78zjP+P)<=;C4q&39E*X?FHD%%RjoMevD!dQM8s!p=pd3V7W+>loLh zHxa9otUKG=J-y0ywhXUcHxg36nO+Zc37bd zg~f2RhFC}EGC)|}jo8oW`RE@I09)Xa%02iASt#2dDw_Ya&VL<||7-03KWV(-@o{ke zcW?gx%dc!=A&4iBV_ae#siSt=45pW@%lv%e_R`DN_)eukGAix;1BK%_m!plmI?-r! zXD2ABTmjy*vYKUlgKWKVvK*S#(xCg8+nSng)3S(y;TUZ=csJ%8o;~Z$s?ca?WxeJJ zuqQ$1ZRpdOH22M%on;*{cO4T{4yxxe;XRNMUmqAjCopmg2nfi1&A!xL)g0M9-@Dp; z5#eINN7-Pr+lLaSB;1}!uLiKGVx!L(M9}A7lgfGR;6&W&mSFH(T~>}&DKvIO*#R#4 ziP*Es<<8O%gfb$+-vvqlJG%f(i8f(bSz*2>4(fwz04RPehpyV9X_g$-w+X=mx?jDW%O>}<2VX% zaUQeX`o3(z2(ro%)Rm9{#gAag_oC0N5I2np)<3;!DsyD=S;ZG zHJldIFkUB>ZX8DgR_l{7kI8v(*|h7!G|*WyQ&Sfqktk2!V7R5FTw;G`n`iG_)GGw7 zlB{7=zWuL&PJ5S7Mt{kZ`-27WO?e#g+Ifj(b$-QSMe3q>b3>Vw&ymxoe{j~)(IKa1 znVy;|w4Fa6NvQX`qQ_}aytVBhH<^vXIA790Btj;$mC?}j#eX6}VYFbuS z_FlKCfWA)OjTD%#dARmU6c-LU-%fvxhOSX8VE?hay#A9a($}QvBny!DrV5}C!;Fu+ z`x#S@_|>-g^(6L`w;OBIa>mBOFw6A)n9=;gc$Em2o1$lJM?}ukjzOORHR(%D%zVC^ zLWJEH=@N4&Pq@eTZ`#}m6dxU55eIze2bQb>1YqC7Z@A0n5i!SDP%unQ17_T>K5r-tEWrf^gCD3iS+aIF`WL6wf1ri{wrniynZQ>K@JlBPjFs=- z2LpHcnv@lCH2tY=@!Dmo258R>6tRNZFd-qgY)=`W?mRp!(S6bS}`ipdGFQ}@X1nH_0)j2C}Y5~U&eeXw}-D;#;R#ZGY9k1s1xb*RL>%QE{ zNEqqAQj}0(KLG3n0)((Rv`U$oav2}40lfqS=XDNQaiK}YFHwx9%a0HX&N~|d5Ic=$ zXzZk-rpE13ylP%CILm#4!0roi(T~f89N$jMt9m3g(^hqZ{k5Nf)4GvA0O~+N#$J4; z(&sfcMu6f5^j$2#^ihSts>ITDj!6`ky$^pWT0CNrG8-#*EQpRTN|l(Z=V z`;LF>oX6&B|cco z9Ix2NEb^?4kCSAm6|JpzYl5vgn6BTfFYi^eudE!WLMzFI;;12%%g(*HwzsvTOdFMxBi@XZmwVJy53w32@m2cT+Q11$ekSM5 zkj?r`a|q*}>;5)ra{^h;GRHuXm8K?wf|4m8a6S_gK|2=p3}FcgNIyMpH-|?9FNl}d zLtDBplhse}0x03a?!KPz_GaO^K{?pgWBkuy8G> zMo|#exhs-V6{%f9+NF%%buQ3qv(?=^Ny_4kX2S(!eUS(!n@RKi_7`)OS$d zaH@1EyWs8A8rBANdqnWkPkO1H$<0R#E#d_MTjl^`MMwMH&$Aff-#l1#^9OEZh2w~8 zTAJ2^GoFUmAs*|Rm&Q;Fi%)v(EQtx|@&BNi!cql4LaX!(2kkod_dW)4LWkXk-5TE2 ztFaWs#$Ms$%P%VOGMbp?6}z&MSkA@yv%TZI@(Txzzg}_pDZbZt==kWQE|?D%mzeg~ ze0fcJjSiu7>LwrGrN4DmRRbv#ZK+Xht(rV0J#i8EQmwq@L;&hW7^kP&?{(Q%~HamuQXi}jMI$m5w+)D&77 zJ~Iq1yz3Oj5L@HlFyML(|E~->?x~Ec~)WxuDfPtnE=vfPb2&Dj5Y3fd#)*( zXJOm#i?>Gr7ydpu$sAGxr{YMZRFw`3!7?@+X zXke}LL*aGB^IeESgKo;+9%*{Wo1eIEI?@P_77h|fOM(RO0CMpffGw?7pGEZR=(Kj+ zr4>aqiGCgXvy;N3O-dREz~M1dJY!wm{oZPy06bc_yi+8vf=X6$VhHB>a1?q|bd`Z^ z_wG^bdkMTICg$|Ej`PxY;>gU$$WDV8&{1 zG&PlS;HNHYSSpMj58jG%ASvD(l{b39tAr%I?*~v-Tidv%3kfLH-bg4B7%F`UB=#P$ zPA~ZLRr*k$J0I%k-~bM>@rjAA6u)qAd3LdqQc~vq`RedY%J~I3XFAa~a)*(Ubql7D z*vc_vUR}djf$tJ)TEmYpUrQ0n@C89eT%50-64Tcqgy+ZZdF;(kcGNxq_NUxeKp&x_ z+cC5IgR_g^5?)xyT)PJ>9Gu`26J3Cbsj4!fH~tW2aT!s8stQ;`W!&VH+S9K|hYOb} ztT?>|QKuxZNCai`{14rhTb`YDUV5f$9Y>$*g&ZZ}NWn3qwWl7;s$BTeJzQxzBt8QIyrz+L9rO8u$j zBGTT@s@Slw6+amE7qZSg+?c&as|4_FL}OSk7eZl^dESWhEiG*sx*vNOvf;tukB1dd z?_e+kp#1{*jE>GKAQMKXjEsyn7X%7*#J1kEd)L>K0|Nr#maNyG8j6a_si^1!AyKTS zqB4;zac1VOClH5#TPe&k{6Y>YG>Rj2=jP<0gOXQ3>*}hNKO40T;JiwP>Es4pIMI(n z^o^h2O-lcn(#hYHZlSl%z1}SfT4_W@XYiw8{_?#NI3#iv6ue3$F9}XeXAEh)7DRwb z_PIbymDfp4n;)iK7c}{yw^V5ypyJBL}>(BlRLW~rMPrd*b-I2r2pbmjpNoXBG zlT}Z4*(I;!}8>`i9M%dS?B#A{(JQ~2EaqTrLYZmtn%CaY4 zN&t)Jx47tyG*f6){%_Qrv{Q5UBy^$10C8CQlwiu-KQ&&k;kgzzH2p#kZAdzC{L!X`7NuR~pviWWbI zPgP<%F*!-~FO9-vi%r62O-)SF>u=GwHpeGP?X0cy3xpotzYlby?}G3TiPcXKIL$~S z^5u*<$lX<#fiXUZ`b~BZ%|}JFz4fk zJL`XvXLXEj_BR1GL zqvv6Vm7%etP2KkOgTB`nQY>lCm=7%!}Y)mjJqWJv}|S zRat)ip<>H%ee-H9EBuDlNvf)X#Y+h zD%u^q7I~KA9o?F4exQhmF)1kOV_j}p{Lcm3zP#7&sWweJ z#c`yK+4<1d`^#Ob5EK`lo{z!I>Zqwjfw54AB0B0Cpo)*ezXyUasPFq6|MpOsh{($c z9&%x!b=sst{M*yZlAkg-K93webbC0~f`%R-ll^8MF|?w@qphK#lOWhi^8@)`ef=aU zbA%WVXygik0;7fg*uA;p1^`0P2W4fEBFyDgcXpOXpFtA#!!Qh1n49TpzqLdJ5-Lg5 z+OJd@%*Gg@{pBzz!EGloF*5tQJ zU1p_MufyP%f-r+9_?7WSp43oi9i1E;diqohsarZq9TuS3gI*hh!Ntr39+cw`;@BHReD3fzx%Uih1KN7e7{hNVs({>KP9g)cGcz1=E1tT+YT}=F3p@C zzKEBvFv9&ZH%u=lIRZHSmvAn6|80^jNzXvM$(i{1(cW}5cIQxX%bpBsp_8zQXlE?= zV3O5s`+x-hn9a)IU3Ahch>%ReJY!||j0BK*C&8q0?>q|~aF)%QY*bA;6 z`k?%EbAAVKneAx1{qB5I?eTFmM5n)3QHQxOJ?qj5TC0gBl^k6eFfin-ynwR|_`-yQ z(LR(aY&-(QR;|SL^^DQPBgl=-2@O^JZ)GbrCJa-bsrUthaje%}h9?2#gwh9lyXJ@x z&{z_SV7lV+69_3^Zm)f1Mxktg5Z~Cyhf6@y`PoNUx-xEl%jh>Mz^>T-w;jK7tFjn; z$-n5(2?DmYSY{kkQh82(?gFuZLl8o4ibj4)O{Kxd7k^({6_vL?KT%*=eK+@%7w zPT%h8#HRaZJi7H7eDx*;;nVZS^bS1SnOV09m2<*+R0^20Hf8~<9-vpOOgFsF%=j+2z`!p^s-XW(={OD*ZJlf1mktEsa z?;Kvl-@ku<)SNskC61!{qMr!Ypsb;qhDNqXTxz=02TWwZjDnWiYYwr-mC<_mK0emt zdhHp|{xA{Mk65JY1KtnW9pNfnwtswS97-k&+RZIarLkog;YvZ==SqZ917e;9LlK#n z;QKb~LuKxUUz4$!7-PENI}*X82cd3qkyJRx_QK%qP|WP|C|ze&u0bnW5on;!oZD=1 zA3wemgv}*bs+!nxQgR3cFiA7!pVXZ-wNwW3V z-uLzKITmHi(+6xW;$XUHt7Y!qT>&Y>!Bzk$5rbeP%k`D$zijoF07}2Qsp-ZQ-EfcU zE1*#DBt}0Ia9n%e{FuzK?Oy*e^yi5UExg-I8cgT-fSx;LV;`WS-PPK!LoAyye^$7$ zsdQy~vL8e-p&<&8OPnUyoRl^w3A{N9m#Nn2z;y()_8nhYTcW0eLPF-hbBu$en1w|S zi^~;D49gKOu_5!eusa`}*Ys zo_FHoo+tFnPFZSs{Ry?F9S~8IpaO=H_>9A~nFs_32)%Lsj;yC@YNF@a@zT0Bd}Dzk z`c(*kYt<9+*uUU^>B9D}*I`0sxhtNoYbQpyg?^GnEMC75sb*Nc(%mxTdR|tJ6*A@r zLH7f_>zg->bG7llaE_eWVQeg49lB<4TTl$zOK_+N@e~{^3zDPI5fObd32Wd0VKWXy@{`z>|(ti?Lo#jEGPHe8dsm-tHgch6o9f*z5Z?vfLHI$dl&xQ%*o# zqQDTcc5qU^tALQ)-||^Fhj|S60}s|#R*3PV9Vr5k{}Gz0Y9ZlDm6PRw^pFx5#DoIp z&sRV0S&Kc7Q+;gy$d6B~VxP~kIpU(7of5Z>_RH`?jfBVP(1Wg*IW|s&@)1S zOvI^9vlMvbjnhcS{n7*^^4i5u1%-vBMMWs&42136XUWpyjPxI;cbvOpmH3k*2q(Hy zR(h8_UT<~zN?EcTnGDl4DZZIWY64x_N%&SdaHaZ&scTEU`6oR3&o{Mmoxrptav4;`&@#^ z=n$J)o1hjU>;?j}x#f66QcR4MBjriaCW6PdH*cmbY@8MDFLz0ho~j#NhOME=k~SY; z$-$iPx^2)8SY*w#)H85r^W+r8E6FusWj1G6^xG+xDyFj7boW_HU>? z*wRUZSOXjF#@x0yFLiSkX&gAq#{9{3$f&9LY(GHukSL6JPg5~Megpzw22v|n06AU~ zEch@q45y`Sbc{U2Es%Qble4f>dM(bsk({iV4YDZt;03|cdB12><|fuJ!(&8pKSGn|6y!IjXDzo^4Ujfw%j~0THjvjx#IBcL$m@DMP-FMINHzOC(BAU5@m^m_l z&Py+|XE=0l25m3`=WS!?_WrD? zO))_Fk4a&DY~Hz`yMtp})CWRF2HeouIJYbQGQ#{Nmie2Wuo_WPGP}R$_SJd&+j9y} zIRXg*!YH#(Z9#e)LoVG;jiKv<3w=3yd$$&uItB#Y_WMttF2OxGDGkr{LwvgL?*92W zQO(-OsY-zhydjuO_5SHa(WDbzk|nmLG)-)vItpmr4W@Hjuw9fAx(c{{U@b*bKCH9h z;ltEQMD7oV(OiU4xb)6-kd%QeGf#f+B&nu%*m6lF@w4UcsADIG6#H+wmG8hRR=27eLAm2{2*gAS9+;u9ms|Xl9kolcGyAJ|$ z00%)Bogh_fab5w$UH?=ko|`c)CU^Y!k&K3t3F}wxyuNpw$Osk~g7j3v=FOl#-`^;Z z`1#WA%t6@tFbOoKv8ic-BbKfOA8F0!DA{>G2^=^&?p%_Zal!{HJb-Dv0YC-Y&vpr* zWm1nJqFwsYHhq2+1qx217B^G-uwVWmfbG-@z7%rLWP4ZglGb`r+b*`wq{i&vg103P)?ZR#}sQlbi03v_y-mxNr`rceuNJ&mV zKPUfK^(5#mQ;WlULEiv|Fmod#?VF3xSXo(uj?Cua!^TAal_mRGSS#C#5K@|dC4mF4 z(ub&#fzkMHt^Zy?R;&S8Nk)c(np#l)w-Z1xkbv6~d8$y2MPUs&;gN4a) zPWx9AdaHgXR+>>2Hc}cMt~A+dml6;mbYN-}^M--@(EWc)C%?GP-MeQF;P2CuF~qQM zGa)5 z{C#l{i6)QqtTZ6+=8e_0yKW@x!L=FsW90CzzP3AenVA!$%B=Z(lTKNXv6CsrN6_n)s-ITsYP z;&sx%SkTOX28Yv|3=%GC{kdFsw;mK!o)vlYXbZA))@Ew_5KRanr{0{a;QcK-g$2UA zFMtS98K$Qnf(4}47kh3H(qp}n-2<8O4Cq%{u-GpnVU%W`ifSHKGi)%lfJVN#AmJlF z2-vIQL_0tl1NuX0ir#>TZR~9Y$zBtye(Gw;ZE_pEM`IiQR7toHfISlO!TVqtbWeXj z5Mb@;e_1PQEwBL;KR$32 z+-C~m#ZmYn?2Hb_n%U=c3SD-}!3HggJLEXq45p@Zv*|hcsp%0NfR@=PL33YcxoaPF zC&zhlsC8|E@?e77aJUPfb4^XKGfc4Ur&u=u?&Bx`1$I7s`!yy zS}#YsGD@Hq17>lsyuoGHo)b1O!VqiJpLW3R&LaYJ;1u7V6vwBoTZ_A_@C)YUyvQPB zs7b&&M&!;^U}m!50D-PwrUb5{sT=1OaH~=6brJ%4_K3k^Oh^h25-s=BZ03FdX@RtZw zK~vv@kAH@SpDY36?tmXqySg0i215<&XyV|0OdCS7EAx~J*!(ku3n(;;5U%3ji=++U znNc_nZ;OpT&cbKJJF|1!IiaHizZo}IzvvuEeaRkS0_~I!jijooRFu$g^biNsT1Caf z;d5)C`&31tD#Ah)3ybkJe^}hB&uSb$fqlWBp|Hu*sH6*6AAIvbL&otzABxiPH8_Tu zH29x=_e@R>g$Wea&dc=!+y>JM$osH{Ey2wB9_s1>%XxHQUG7Er5n6ex$#Q>p9DYmMbOQ9AD=R%En_6OG zlXJbCDN+dJ_Iw6>#%*qxEIvT|-I0S_ll8ZsPqZ}mCn;2GnVCxwqT)t-+P_`ApD{`w?S{bKsJJ>;-J?j=H zf|h^$7|3u4&w3FVISYLqT&h#Bb46LXmx#Kv!!%D}k^uO+4uxAue`T-iFO-aedk{(m z=)isZ)_+ts8FMM@?PL;b;d2@*^E<~nrSOv@ifBIi_bioTWh#GToMIaPZRBDIDVz7? zFzURXl=D!t!l!i(x(0~$gM5T_aMHk40uz&*l~p6GwLxrO#|@yiS*^wSH@31_WCbrq zi^%KNo10K(KvF2=x|=8zo!T`_@RxxrPbeDF^rY-uXES)9Ki*uf9fAI0bCGm|xemCP z_9$~vb`D1fFOht&m0aBZ*%SQBP1mpt=oIt01-9=He&5^Q-{$4?laU`7a7JN6XdnUw z+)dKyKo5ZP&}mK$(oX~xvwmcu=SaMKgGwThx@fgw*a1Q3=AP@0^ z_yZ@ka`vM3=c1qGpe*7y)k#2LFaFM%n}$Ju8vd1k#-G6V2xNLp^@w!3K}#Yy`UeLM zmayjk$+@|YHpY*$_{h1$52V~wtY$h}<@eOp_t;={=jsG1!b%_1e=s3qSy=OOddLs> zs8c&E8MCX5GFlXxc~KS~4qJy8W!&<2<_l`Ezc_I7EV5G7yv$*;W$zIGWq93fAlJVa z1p;Y!Vi3^DWLW~_UtTWAbMvtY963Eb&Y*8Y&&{AIVNZd5;pa|k6PN;JI~*{qa^#=C zTs0jadtzepdBlR-q~}*Z0m$7P(e;op`|8yg^NPA0GH90Z?K6PF01b zE->%;=rO~8@e^!&D$U3M1wSk|PfAZuSBeG&^vZM!4cNu4^~R5Y>I4)bi@mFmLoO;L z1}l+HQ#dJJSs7dPtEv*D^<1(~5ZtqF++Kye>} zY2XoJ->tV~^J8*mp7}20Q4d=c$iOlfyMBob72A3CFetSR1#R6jbisWqLqD!hcSNl7a6cNz!Ba7N6TUec!yzJ^p5Fvvy&wp5mgX$L*?3 zt8FpxFAVMsF<(T_ zbV*c*O&IZ+vuBmn)#=V$RaESHL&3w%W-*P}U%MwS&t&ro*-g*FA_<-{_+#-aD3kns zi0(5snt{LDk#bQ!3Yg)yZ`*I#-TV9{8j>OA9WOK3PG7&9umj5^sf4J92L{A>E|B{j z%;hrs5Y@tpt3F727$93|<{9SU;x9&kK0_I_!j83#z|y+{QdK} zxQLwmu7$y}0`%3O3xu^-IXO$D=;@DzvsGGPX)_|~x8f8;RG4S8T}$TWzB8Ed&PtWj zb~e#~w$_%r9F)KrdH1eO0nLxNlCkR1i^Bbo!|dga3v0usAkp^yBRnFaxITyzJ?1_h zOsC2o-c%o)anzlpVmD~WI1j9Zbac0HJ%p(=3IoqjHf=7whd9c|OrbwKS|cv_9Qtn- zk|m5=qqd9k^J9o*txWF31eT_~tp&}e9A|kQ^ z!BDuk7y{hOOeO}}+J^G-A1Z|G_AnPk$Y2*GJ$?7ixht1PB_H^1wM467OcWLUqoYG^ zf871-%ehxRYc@Td4L%sVZA%pghpV)SrKPa-bbB#;g#8EEZw~S zynX8HsbpXEKeYf-LgM1$^Bbx^)*N!g{gK*&(=+<>*gW(HSoIXluka8!I2ZnG+Hv7z zO{minD2nnQ9jWBCUrINtW>KHX)ob(?E{ZxY&AuuSU8OTouhrTg%1kljWZr%;5su92 zqh7ae9~?WjTyY?n58+2SkC`-ww^O7JcKKNNu9IXu3ACAYhfo^XnKsi=V=wVCw@ySs zu0im5R*kwRehwMiaLmtoR8hsYPKif1cd@dDShZ;Zdg*$Y)Z2~PNv}fJY(BQo9 zOjNA5zuOC+z@>KHq?oEXDIBWxKMO1Y3_NMhzc3MBNU>hD9(r+Rggy`dU?|Rd=P*{iW5<$2v_*hdwUH^lotW7#*D`Z_d&GxEXlG8xH!&ZH1Zul#7_qb7 zJq+pbHv0W-fn`pcK+{*m5>{7>0_XVvPn(VGIFai%TFK4W#3Wh&%?z7)j1K}45J#)Z zU|Q<9j_XpPzG&PM6|Nq<$c2Etxxp!u9{_o&*v&!cS;Jd#-o4Ax{kpk}h-mmOo;ENe z8@-`mzyDKpNpaJ{NsJ@0#l zkx<$5<@S#` ziHpKy)7%UJL!0z+b5>TXkj8l%A)8G+^fhP$Ft?ozDp*gDM0kr&?yfEnW zZ{4DRSUvM{nRKH??u+Ef4vef}M~^ObHjx9ye8D8-km=~;W)b7`sU74fxY<=X-9;X#RO(9P-U%I7o)Qd6Vcc~)VBOY1o{NeW@r5QHi9 z^=mFX(2jM5gTt2}K^KIzcUi(piX~}1A!QV*CgZwV&S%x@kIubLhb4-SnV=*pctR+G z)#`)F%H6s;R(t+MpiOM&`$*4PAqxwm7KqR1=cc#`sPhT#$3J;1fd}XL&&qZII%r_Y zp|U}q_<~^}-=TVorv6|$2{-{~QUD3NjIW3-b*id!y}3{H;_aarh06q-PUoKyde+E7~h&cSZ0dxs_JJFWWG#3U)J$_-X7E|-Z%-AzpBJ8G#^|pZu_YoQQ{K63nLMPMa^NZe40RXgZ18%BX>0qn2Xc| z4TGK)oOX;r#2hBvD6B((BdxjFAz|+{e4efx>Xi#|gpfQh8yLHvk>M|#xBz!xr z+6`n*P9LNTu?#@!YIM{bWM9b7C@Lu}PCX3^Q@TUN$JYnxyK`Is7b~eLE^4-j3txN0 zrUn3brH5EzM~$eD>p(HrZlrm9=kUb-_q$>?HtM%=vhwl(8_fWHPlb>YQ)sDudt7I3 za&k*$W$3>Aw{Kega^gmiGau{aHC^gJ4KN2CG(6$qy}iAg8m0DeJq90Rn!nHR!K@bG zva@eD+w~FPNem0dbZW90u(9}f$LEGea6Va7Qp0;AWl21Gd{uy7AJ#*he?9(V-YS$u z%=h!aMs}!1;4K4F_cXo&Tv>I^&31N^Z9et&hOiMF?hGLIu3b9|jalkOXQ%ZGt?jXT z#YfkyR&*I(XnkR=NZhbzVpPm->*4I&TvKy%YjZR94xDTXFEUcNT|sla zHzbDIcy+=ij5P&Th@TOGg`j881`F-m?}7BQ+s39;%G+}2n&gfA++0D+J2wJ758-H$ zv7cvAyE(v%^E7UA$f>)f1yi!NN=}()yb*_i4EqGn zY1h9>O+vkyY~74ig$x-}L&IxlqA4=p;g-FcuWh9>Y(@jxqd~K4$?%kxu-2CGsyvzauuZe)uSdP29Y#du0 z3gw4*MU87tJi?$;T06DUx#U8e}4du zImv6mrs z-hDjw8@dn-=d!cGnp(ZI6sS`xc}9ecpr+D8({&v^e1Reo9&vicVThkdNQg#MG#?7! z`phXl%WmIjP6Pe!UO90?`z+{1*jU?%}v72wtA}VgOEPS{l+o(Sa ziL(3`pF1rKga{sk0ks|$bn}?1P>_@FwTl`1(+FJ+;kGS1O>%NXfSExG)OY5?l@k++ zGasQDl9!(|K$xceKgE4_Jl1>vzthw}6cth$GNK|>qEM2^7BWgova-2^PF7YFGRlY~ zGL!6`olQnYWMyV&|DKml=RS@5`?$a3@%WuTI^yc`xjy6le!ZUS6=#3|kJpKb$nu-% zp-YOI(qBm>gc-Fr4Gfaw55+`U-q6)OqE+$E-o6W&+;nuVNK}Cbv7iGo!`Yb``eVDJ zqM}e5dEDDnHN#fE?(>x?@3HNVUYZZ#7CdwyUVhDMca(Bceo|6WtX?Iwv<$Lruk1Ie zx3AtU9jbT$Q!To?eek76}-_%(%4w5VF-6r9G)kn z$W#Unv^DIq_XMqg@nVCmbJ_%gf}o&wvUOgb+0;Z_MEvOJR%%yWp?kO>UHAHs6bQZs zO|ns+l!~mZv1ESzI#JS+GBz_aGh(C}hf!)vz3FKvT_?q|kllR!#Av=1wSy5*91u?OOGIaq2DKbB(lX4d;n{jb+ z*|{-|%r96y<3@D`!q8!k=i*Alp026cVrCkMDAOgWe(itk>^*~I3-t*txZC!u!b6Wt z(&%jYDr9B9(UY{AtNn8o%AwR_*$Yz>t?3kljg-=A93_<()!3O9npuU1-i(O-V{ety zUHzHo@;T?DCr+GJUy{HTC+>ae)3Ph=lHZj}oEMXmFU;)Mp7Iuu+c-*mwnfN^6++bC z+v?4@moH%uLVRl|`HmfWC|RdyF{+Y{dPV0KGK`|Zv3rjO??vrnX@T>t`fwLNR8HH|wOY1bbp)>)7J2m5YTsGS|VwV3t= zIjI0A#w@7RbBh1u#{oX{s>NCiSs|be32`QSCnu?)$jHwta>vkL`-x);g2IYi7j>I+ zBizcevaViUJM3~p$PcQBt|RZUvUqnHO*TzgQ_~eR_5!Q7bBUPOK2OrBm{$SuLK+!q z>E~wwnA6lQUCVLa>S=Rh;|*+dFXFluzX-RW-$qS*)boxv?ph?gBFIRT)bdNnEp&OR z$$p!KWMuS7SHWGj=tMTu2qOS*5|%d(B+JxD-;&Ojy2TP&$P z%_l6P$mQOqZQI>_#pt}e;;KEor5PC+5s|cM>iZwHW69r9!$-yLSr}dGLCQ(Z#8p+dxM4 z>;j9#;JwT=%pL^i99)Av#X@2m%(e8xsMth6>MSs`uq1tmXeB^uf zA=&rr!dQy^6JO<%DLT~B>a@xpkqJNcodWHaZ#BYBJA43J+-n-t zh0210^CQ_FL$lucsGJ7)mL@(2s~4SF+g(K1VyD~uTE9MuB%B<#g2dzZWb;CHFl0W1 zNcWZERYyJ|o;n10_BEMmWMb27clX2C9oNf^*jXrfkDOp=&X_&7SIm#!$`LM-Rt+t! zPs0_I&Qy+vU+UL4EWON7$?Hhjh@F{)qTN#c_V9Bt*l+WfVF9U(aJ_a zfxHzj`!WMedp|dCGSj~B>zXakn~~;edBQ+gcnUoR%7gF-t!m$+zuOljv{M7qIGjFF zZOY*SYJ)gZe}C)6d7p}k3W3!~*(&HJ47FOtCnkE8Xu@Av(bc8nG9#NcZ`51<*!K8rpksyn zd~x37Nc5X)*obsa$Y*l%6(n)1<$D*sZ39hMnVE ziwXjLL~l0fE?}6}+EuqOgAtf1IuQ$tcOOSH02;s1be_gQ>NFzpCL6)=?s0F&NF_Tf zYq}-ZT&|r^|K_{9srf9^0@;L$|IzpE6wvh)y~)q7RlU=or8T0rrw7r37*Oha9*_#Z zDyUbIH7mdl9bfKWU)MOH%Ld{hD9FP248RStU?a`G?`DknXBS;gJKq-Y+Oe9=ZL!}}1Dd5nsC0j@eL=y#BRo7WQ_>LxfUT*bIECLZ zbQCs`56QNTH8pAGBZAbza#jVPP{&V4B^ID|TlV6zL0DB_%yLDz*;)3(YkJG4b=>r1I0=#3{F4 zh&PJMY*3NkeEPF-FG2jtjVC@n#$P@@_(R|4^Lqq=P;8t?OiuPkPzno+kA8AuV(g0- z4BqGQdG1i1Ag2-u1jA=;PHye@EUjQPHH@!cO0qBx0w#NS#JWc zd)WUJe<_-)pPHhR?>#WEr@Hp)nbV|hZiVN=p;>F_Gk6~5>FJqaconu60lQq%4Ih*g z6=|ud2SzGYvjy&L5;=25UaWL7YmM}H7J}W2-@OwsX42lYb8V!MNa4`6G7DrQv8P?@ zJbjgqPv^u2z}_FZbB$ZB93hNknhy;|V@Ao>Tl+(EpGyY!4_7?hnI}xzwA{pWcb94B z`+?E8Ln90-%)0P8-C*NrNBfeEIIAB0unJDL$Ogbrce0$Fod^5+j^0+ZCx+NxW=4^Q zACjC}`7x4{_{ERVFYz18ea{P_rLL;WtD!q`B;ezWqW58jVHMD9G?{X6uwDPmVp zP-2Qo+;U*D8K?idgV`5gTCtTG*lw}Go+v`~`hT$`$Hxa^vyjWYfHc|v&dMCqEI(Ky?e_cz z(w(g5$a#2^Wt=E>@`&zD!e{OC;20jp5Vi5hC{-3V9PqXdV&{a$1fU&IzIBXbWF8*C zi<9PNIW{>{6=lTDmp z*Gs&5=V)ngNFpnUweA7-a#xqqv^S6aC0IE)A}Amv2R8dTpXiG-wVIQqajn<8g+Y}3 zR%V-oNFQ+Fp|%sGervs6h*VowH|rK-x0hsIXD1b!$odraB=ow9k>SryW4O&>Kwelo zkY^{;d-ru8_vj6L{CKH?&mbavARR_8>&6jMR%2=tYW+IMIO^wpD zukXes+41;>8%V)4R8rj?*>Ot+B*L8cLzzu!(vvU1UtuEA+@F8iK>r4rDasRaF>&Jc zAz0Awz45rK>vdJtDJ`wF$ST?FwXUOsQO@e-&9qbTw}CD(c^$KS1SG~r{9m8Tf zyEKa~A9|6$VXMqtyBP)sE+Uv!V6;3rAR|uDaZTps_NFF(%(!A;K%x08W$#I5j~8I( z?l9U>0|mp9Hqg&$XEy`3198c|91DQ^2NdoHF|h3xx~zFbja5(lLY9avm%Ia7R^YW8 zH%@HdD5BU{fmr?*FBENUhi4}R?GGW@6xVs0yZF>d{0Jwf{=rLybG;`Gs@d@&K|Bcu z6UWv}&;@-W4_WxWHpL5*Ld4|p@S#ll0?k4E+)W$^$!q$@dXO?WK`C=M^0i@#F>$?J z%vab>qDQlNb5nJ-;n#Rld9eC-p69!KBlp+j{1xy0Ly0T$AeUftY)4VP9rl`wt&XbS zN?JRk)CY04n_pJEkp3D!^Wc#Gr8l}3BbjFwL{T-Xv7u^S*t+E{GNu}1J+5mdC}w4i zO9n5_n5vja-Bc>rg*6Q!X{RFXa6xLHo36~R8sJ*5Guv=ho3k=VLKzY>SMKX6W5kqM zta*K0X);=glVxT5RQcWobSum3*1utK;2A|r*?fKr*!{s$SIn?$f;x2v%TCp z3d7$E;@C@DP5SE!9zEij?7dCom<~Q8h(&5Yn?0b?H-nn1@LNNpmPtuVD;nI-W0X7| zl7|f4l3L^UEvdumHcgeB$C;Qov3B?l6kH#0avIrf?-vj-*gUC@;e|`Znw(J{K|yU0 z%P-82FCf@sj?$BdiiwMl&o|%StoMTc(sQH^sjVfhEU+D8Loqbe+V@bI=aTJYfA=4M zv>5lsGEX6QPgS|OyzfRwnJ*_B8y7?6W7d}X?dQX8PV1j1Mta!WYtB}cmn-d3H2jBB z!H=~Cr7cmUeOy^iULJCBN=nAQzP{qpwDazrqZwyH-X6m1ETdibrTFxJz#0K@0Mgw0;9e;T)>aK6ko>M&3_fQBI< za!g*_M@|Ts4eqTU{_oLDD99%#RX_IhV2Jeir_PG0$wyXcp2uZpM=W22wvj(QBpp~B z<^Nc6J$cVr5gVM2_H6ZdorWwwKUtL1CQjHT`4EWUAq(2J{L+UgII5p-~|r&p`SC=l&gq z6t4LjMCvaJ>BkMIZylqm!gFd0YMquKj%O9#%E|#gj})q$u3e*c(W=j0-5kXKp&eRb z$eD-WQl@)rKzoAlj6Uj@y$YM`>7jE2w4R)yOq;($Lf=WF*qiA>x91BkB^x37Ohq+f z)#_2;mNqj+0RdO*G1H6FCL% zLak`(>Pztk1HMh{#vL5rwEzH6V#h7oFwkNoW86%+IZk!Y3%}R;E2BiMnD^IKdA7E+ z)QoKS0|Y#fgxBt;W%4^xG_PNuZkE^`$!HI3CIylfxsKSLMm2c_g%3?iwGLLMrZHY# z#1R-`t(fTr{rK3J%L{O+9|8iLGS~Q)b-SF8StwItA#H7p*wrt!KNC$I7(!sx{Z(yk zB7w!NZ7Z%pzJ#`FyvK5WGAI4@n6K z{*U?pIrkG@BQjYOwTG9ty){sHC)0l}EBW$GRzgrWT{2QwKQ{ZqOKo`v&nql^SfYt2 zW%#vJaI+gcecp2gmoktqI}NnF(qOymA^i(a_mb%}piI$_ko(}BmM5O*6^Enab?SHbMGTg{P+~-?bo~*u04W^ux zCGyY_&G8x6$h=k*6c6{ghK8N_#$HiUqS(J59i3js%uso0uUK?+^mbl--OC?ql5{RY zs^RD`Bo{qI$_Pc_?ZwWNltij??2ltGt845I$#AOi#n~-g?_=mGJhq<*n(i)ZcywTt z=%`UpxX?f+4fTht|4~dV%CcSy20b$0iGptLLuH6oCeCgJ>VcKCUv8*%%`;Q0h|CI# z0$>pyz0^C{F;ER$&)gSb!MF$M6<03qVGLLE!WG^|`j;SN&laXFTfCv!aC9u1ps4=d zsX2>d@^IW1XDVa_SB2ptqQr*QW4Tq^yLD?((A}cKAR5<~YMBI3RzXJ%36QH~eFMdQ z*n`bJ?1$7$a*42>Zl|quWbuV_sTJLX!`n9Y-@?Cu=4a}NO5h#upkcYmd8x$(5jlvC z5>mvN#pU)J#fe-N!~Jcyfw=zsPkJ~;-?BN{-vD5Smu^~4^d-oghn6cW>?)pboWH_C z5&L3f`-%E?-!2d?pje~2QihNwTR$$G@cIZF9&d`WQr0b%Q74`D9NKpv88kl;3WI_% zjmEeYHo9f*#%lVKMBPTAbCQ+HiAsLr7gp_W2q9N*9qz$PN2&=UFeGJpajl zDP!_nUkvkpOw=BOGo7{|^t&gn`A#6^3Ye_6J|86b0LLnT|ZAqEM!U8IP zsXE(RU|}K*CtN>!8#EAyn6W&cDobcu!=`Y6-*!=KMAfMj^2^QpX$SiHps$TlO(#MY z`GJrtntaS*lp8{Bm-3aD8}IPAeh0|*`tXpOb1X?qNu}vs`icS?)2x6Q&lH_pJl3+^ z{Vnl!@xJ^L%q{lmHK@LcUy%HZemSJ4tLw19t>Z`#%?1%US59aRxc4GC$V;< zp04i9r&!8H0gSe#;{p~2q-r9K{05#JASRQO?X<(EiQgo8SUh$I1_mBKZc&6)k>m(f zX-akYGDAUbPDENrsz$@ADS;*6Rs`8 zVWf7so@EK|LAsHIJir0cY+RGy)RdK)YMQc{c#wA%b9`mbx`v&lfK_u5`l@g25J?}! z_Y1oGR;%BX68}%~Tj}ZIPHb9Y2MI$>4aF-ra@#Hr78mp5boSK}xm1!<8{7&bN=;&X z^7G8d&ofz5Z_06XK8D+nrv)ikc(|nK+#UEn$H?qVFwOWg_mYFdwXc->@Pj+jH@sMJC3?OhN_Bp(>VXvvBe1Rm_!|j}TAL;`Bdr z=Gx)IqwMUq^B*7h`tJ7~xTbkz5#S|mJrE7C4ZnpaBOCuXX$?C$$)TH1Z(S_-rSDXX zycK--YBS{R$gje5U$;$TCHv_v1ZCX%8t+-6IXh=;cem{%u_^N^8i%k2y{VSAHVq{s zCWp;{q~0Q&nsRh>#uaVX-$MD7D^hwZRG;!4@)r;PYi6j2v~miYp7Dsbf!lYHff%Xw z4GZy$9o~ooW>-0?wX`_0G5^FeM71$vD;3IRwIuU`FxTy-j;*@+erSR(X3 zOubG%IW#p`=$;PQO`>ko!zWMXR=y)5y-?-^eTo%Z?qF1tBQRHEX>r;Q{*V(Vj+%tw z7<|~YQS9LH15f9&u!CNgTD_sJj%BsC=uKcZL7blly_aTnrrtVlo;8LB5Rb!*RLV>I zf}hxo)1$iAu9<3TPL%qLKq)N44tblJ+KAisFrDi>hUEdL3My9Q8UZu<4g;Rp*PT|A z#PJ(a{Z;`v1Y9O2Uu=kvftyStYglQf)l6F2J8TG$`pC+bg`bZU+kswedSnUtb@zDN zwh^V{pwlJ?PLi%CWTV7I#f5X<7X-Q4*Du0;*x z)1+bOp>+%o`j(BJ7R9f-Q|+99>3ba&f7DH4yq#s&y%#Ad^hrdpF6V|_%+>(R40uV$ z8#`QUuD1M?@?HMUG5r0-Kd5QqOGt>&-q2P6fF80gDEG2wdg6-iThndcd~QM3I3-|| z_@a=D7Werk^a1k#)d1NC3TLm~#rvq56caSGH8hNF-kc3tMO;R!G!zXRY#;(!yDhi) z#%*co?ea+!8W@k#>X2uTKi5(bUv=3#$0dCV%l$L9K?s`W=WlN$Ym(9agjl~idQ1&n z7JJKFbbI$peXZbfRYxb&ay$*^D^7jMXOo7u_SF20D-@+5Hz7qwhi~%kpM|jt{f}%j zb^jiFcnhNB7iFI}a{0dlz3Aun_0gmEHWfq)J?EZNp7j?0W3}~_mA%E3((>|wK0cPG z?N5zHYf#5B6N|bCOtQuO;sPwd$6Ib2?W>vj0q5%MPP=>^E)Qx?jN7P^Cr5`PrlL_YkLAo+6oUNoBM5loV(}gpdPF zBjQZ8?ZI?gCKf^7&K={%(UI(7cvI@O8~IZk9Go=_eZ-kIyY3UZ(s}s|=2(BDAHJ!T z!&eY6qz<;9g}LmAmu9%Hm&0gQ3Kc`qUK!9`sLABx>srVd zA+;8;nwrNhR{Q)I*?Vl%xZ_VL8ty!E;J`bv^92)6J9RkY$p#)h>M@aywXakk?CeBl zeLJ@OyZTU@SCp57$+!1}aRxR-oV4tvptFI?Gec{en>8wfc3_A?7f1(?z1>Fr-U$iP z%aid+z^m`GuUh_n%Ih5XGSq-mwY7~PYN;(-U6i-tac^!%$^q4W;pD#034M90qnG0U zW@4MUp=1BJxRBS__!XRzy(hN8j94q;v2TNn&|^0@w<$UK8)!r8p4!gSW7-g^jBU2E#~;Q zQmCOAVA$NW?b2Ad+a?Vi9ezc~_Oa`5Uh$Y?2J0=nOHp4(=Npx}o=o+rh1o7iEy)WP zpgw^nu&TbE`>_8e28K|JH?LkD=j0@Gmrg@gu^ga>CLdQ&s2II9NGB*Vo4Aoez>=GL z8$A<|l+gH=^m8FFD$d}`7(wgZHdU@fXUr{_;IxVhdV-Ep$* z6zmE{``C||-0E+&njSMX^~bx(%6h?0jpxeeI7ah~v@gL-Pic^GxFY{*p+DD2Hq)<@ z4TB-OY#P)xep#egff|~!@=Q(4PVQW_IYvJ)zn3Se$yL)q7s$Gvjs#pQX6l`EuX)eAfeTw)7}Uv;Axp@p?mEqP8 z$p%Yzk7JA~)|S-(1C&P{@Hi-=`0eLPS4guXsZ zu7x|W?OW%5Z&s=0!FgkPfsZ?U$3O(4{zX$DPX}a-Q*6xwSUw_#s*TK zl|~6xzI!)uR5KEU{$T9#lH_@E!m{Jb6-KX;iRs=ot1~6*tCl_Ef5GU)S)RXTUqg3? z>wE1?@TwhRt~Zw${S8##rO(yiJ+0sM4l^ioJaZMc4?zV#I5>C;k(nx8MyW3cwg}yO z`O+8>doq>#&SyB}okkZ;#M!9;d!K3SyCF>+3(5pO0j|N4f&%G4&AzYjeC@7I#mgh7 zh$S4&BQui>^awLE;}?m;=$zgbsXt>qDRggH1f!jh(hpfDb|>e}5lDL3DJr(-rV)WQ zd^VOPD{I5)-N!Ro!zX5aJsv)oYKz>)Ep(lD5pG>6P@O}R@qgiYAYhcW&m))5!UYYg z^$omLaTrz#dHk$Y!NX@Vw>NCy>QDM{LBtxF_95)7$7jr={Lz7!5aHrY0HhreAssam zfGtr$Sy^x=g7cVzC2Qoe3NktQUCobPtfj0|_j?lbV83J!h4B>NpJUo?rAp_TTkt;LmFm>rX@y_IRsD&qcS zJF#!vsq0g1b5PAh?qb90RbL=>zoguZR1*}_1sWx;TX%@@!%Ip}uS@*spspe1Ke0Xh zE7s*Y9k9_5qbn;n!)A!1v!dmAPzUiVl6PFX&enBJoDNLKdJR#_Q&>e_Rz2EOV~EOK z0ZbnQ%NudMB(zhh!DSRaMmPZ@r@)RMj59BEtLEl~bpGPc-QByovrO z&6AcjCMf#}1e$t=A5}2^0T&>U z{qW%f`j1N(sr1n36EGPcqvr~7KJVk}qg$cacgR}>r{Ju6<+tuuEkfw9aR1cGU(J&m zHQrQ(MMNZIn+bDEQv3d3-J_Occ^&yeOkSTyD#_LpmS6&}WBDyKOC|Ix!23BbGlCH^ z7vl7_9qbUzL*#z%-X=Wwn%7#xMTnz9zp3+yqe2I2YV<|UZcxwi#s)HK(Wbg#8as&C z$@)mb9v2xchRV5bC3JYW5{j~>#9s3e0V#fJm+i0u{kChCKD<(OGqHKyrh?9D!3-}~ zRBWyu9mBsx*Gde87XZG?N*v~?855(YRk0ThxXjRZv126GdSY9h%z}J*fW^R8b=}Gm zODSn-c_}GK7f*PmhcUC8`aW`@R>upanM*d7xH)nQmO-dRtxn26USw2Hye18Gto!dWf&DxA#ND zhRFQfT!m3n35gw(%H@%eucB+uQj_EG<=W5Qf|#fLbCqdxzmDjKW-6irVc*(5QzTHPd4chUiA}7(%13)`DTdA zAOeE}5;K1yp0&WfXdZrokB<*9;^(GB-^ImgYm+^{P>WF8U+AwRl7SNWaDUXZVn+6$ zzxZ`ng~Y`(R5+Hhm!>Pz&4z~hEY7*t*IwOmG=467$!ZDsr|WCz>-%SSDvD)zjPL&Yx!sG?N^OJ6|WE3#{&ABa;RM>L;b@1uE+t*70{={T0{YFNiRmyLdQsQ6HV5BjyZC z|M^=?mh|6lU-J7yM7zeb>42&XeK3zt zo$*k%{CMf?uY0l2`swXl&tudw=liOIU0g~DX)FYWG;3S!sBgnV+1QYqDHcxb+Qg<` z5@O}LxS#@^9PqdIgfazi8?1z8bn4O#*)9*J%(31cI`XBvPFnEiZO$O7wZZ&PQEz6N z^O~GWmX_h7-hG&X6?mt*IuyUaUmW2GW{B=34dg*^>IH0O+{-ndY~D6g*=XKocv0D3fuC;KJ)p`xYxcsH-}EPAe%kto z18|n_x|3|XG%Z)(Rx2S*AlOpJg=^4iM@a71Yoel|r0oC1)m~k#a5kc7$y$p4B7b+j zCTGM2(|0A7r$~`6HLaA`;wOGRuC{S9PQ!k_71+(j!_g@o>%+q}3L0o=uGi`O<)Vx1 z>@?c2LDqByq65FTZ2d_N4*oSseGQo2J6o_7q2&ySrKH~Cjn2C^Vv89Umz(?kXvG8* z&_0I`N02i9yp1D4CcyE>W=~3ZxRp&2WNJAN2GTQ}Y|AMv9mGtJg2yuabSN4W2BS4n zRm*)W&Yw3pE9k;@Cawo3(nwpkc<44fP zn!NT@>s5G0h$WOFap4#*uOyQfr4Z((V~PR%cT0;_YRO(9o&P!$AZBUS*gdsq)N6`R z{z)RWv@|t*@OdQL{gq$CW3KJmMcSDo@l2HMq5lPk%lpDO@&oSmojR4^!??t-molF! zjLB;Bisv~RcP5VFFOt`{F;~Y!)f=LYTW&cLv8EA zjUsYqDdwu1OH1{6of1mU{B9;|@)fNYg1bf^u?O!sX7sVEWJK%OytadrlS@Hvy1DHc zpQFdeBF?w4ypz9@S)i1Rz0`GOTb+$f!?6wRi0tZVTYSGyEjd@$uuKaU*i4 zPeVgK-doz6n*|@Wq=k!#-XkYlcv9IrJ~JN@l5@34MvJ~MCuc*X+$-Jfl?~>T9r<&S zV?`cT>+arjo4O+L%o zT4*Etc4GYe6^cEk2lro~CtF9Eo|<~=D7l&%8$L|T8?R{E?bWWQ|B%x!XJB*vv~I(P zmgZ*Ai!R6YG&<#Vbj~U^UcWwPf@`ZY0Gju*;YWG@eNUtM^$BTDT7u#-R3sM7cL{Ei zkeJ@FV`lqyBS}e*+}sYNBHYxuuhSsbH3t1??FokIro^qR@_Ne6?~YY1%qeSWMYwHr za4K@aYfDRM9Xj<~lvEe2-#6BDY|;p-c?lGGBcB5)lt;HnKl!yxV^BZ=7YLTs_N5w zrbe?jEG%A!hc6VmKh~5#cMelNI$fys$;ruCSel4;P|(l^VHel)by0=AVU)Gym zAKD!KGEd|^JL;+3#`o^svuM9ca)+Ymgw0iA)K}k^sO4Vi&W=;x%F@eg|Nc(SW@6b* zLc(|F?XnvthkTczIu(!J`qGkPrZZzrckiAUb2<=g$Tik9tWaUJm~L=eK;8X-Q5o0N z4fDi9Ye!zHvstO9q~b07&NdcVpF3*8+*9h)IXnz6pmTgjmmO{6V_q*j%zaLg(2nDc=@5^A3GYA9slT)iu|P3N>fmU~J5EB;1u?#zYLu|k*c{y*m9 BvKRmW diff --git a/examples/tutorials/gettingStarted/gsQml/texteditor.pro b/examples/tutorials/gettingStarted/gsQml/texteditor.pro deleted file mode 100644 index aa5306c..0000000 --- a/examples/tutorials/gettingStarted/gsQml/texteditor.pro +++ /dev/null @@ -1,4 +0,0 @@ -TEMPLATE = subdirs -SUBDIRS = \ - filedialog\ - diff --git a/examples/tutorials/gettingStarted/gsQml/texteditor.qml b/examples/tutorials/gettingStarted/gsQml/texteditor.qml deleted file mode 100644 index 186c298..0000000 --- a/examples/tutorials/gettingStarted/gsQml/texteditor.qml +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative 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 Nokia Corporation 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 - border { width: 1; color: "#DCDCCC"} - 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"; 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] - 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 } - } - ] -//! [states] - -//! [transitions] - 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 } - } - ] -//! [transitions] -} diff --git a/examples/tutorials/gettingStartedQml/core/Button.qml b/examples/tutorials/gettingStartedQml/core/Button.qml new file mode 100644 index 0000000..5bd404f --- /dev/null +++ b/examples/tutorials/gettingStartedQml/core/Button.qml @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + smooth: true + border { width: 2; 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/tutorials/gettingStartedQml/core/EditMenu.qml b/examples/tutorials/gettingStartedQml/core/EditMenu.qml new file mode 100644 index 0000000..3db560a --- /dev/null +++ b/examples/tutorials/gettingStartedQml/core/EditMenu.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/core/FileDialog.qml b/examples/tutorials/gettingStartedQml/core/FileDialog.qml new file mode 100644 index 0000000..fbb91df --- /dev/null +++ b/examples/tutorials/gettingStartedQml/core/FileDialog.qml @@ -0,0 +1,163 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + anchors.centerIn:parent + height: parent.height -15; width: parent.width -30 + + Rectangle { + id:header + height: parent.height*0.1; width: parent.width + radius:3 + 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 + 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 + smooth: 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 + smooth: true + 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/tutorials/gettingStartedQml/core/FileMenu.qml b/examples/tutorials/gettingStartedQml/core/FileMenu.qml new file mode 100644 index 0000000..9fc37f7 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/core/FileMenu.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/core/MenuBar.qml b/examples/tutorials/gettingStartedQml/core/MenuBar.qml new file mode 100644 index 0000000..2403485 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/core/MenuBar.qml @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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 } + smooth: 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 + smooth:true + //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 + smooth:true + //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 + VisualItemModel { + 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/tutorials/gettingStartedQml/core/TextArea.qml b/examples/tutorials/gettingStartedQml/core/TextArea.qml new file mode 100644 index 0000000..6e6345e --- /dev/null +++ b/examples/tutorials/gettingStartedQml/core/TextArea.qml @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/core/qmldir b/examples/tutorials/gettingStartedQml/core/qmldir new file mode 100644 index 0000000..da1f373 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/core/qmldir @@ -0,0 +1,7 @@ +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/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp new file mode 100644 index 0000000..fde24d9 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/dialogPlugin.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + +void DialogPlugin::registerTypes(const char *uri) +{ + //register the class Directory into QML as a "Directory" element version 1.0 + qmlRegisterType(uri, 1, 0, "Directory"); + qmlRegisterType(uri,1,0,"File"); +} + +//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs +Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); \ No newline at end of file diff --git a/examples/tutorials/gettingStartedQml/filedialog/dialogPlugin.h b/examples/tutorials/gettingStartedQml/filedialog/dialogPlugin.h new file mode 100644 index 0000000..0dcb15b --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/dialogPlugin.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + +class DialogPlugin : public QDeclarativeExtensionPlugin +{ + Q_OBJECT + + public: + //registerTypes is inherited from QDeclarativeExtensionPlugin + void registerTypes(const char *uri); + +}; + +#endif + diff --git a/examples/tutorials/gettingStartedQml/filedialog/directory.cpp b/examples/tutorials/gettingStartedQml/filedialog/directory.cpp new file mode 100644 index 0000000..8828635 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/directory.cpp @@ -0,0 +1,224 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + +/* +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(QDeclarativeListProperty * property, File * file) +{ + 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 +*/ +File* fileAt(QDeclarativeListProperty * property, int index) +{ + return static_cast< QList *>(property->data)->at(index); +} + +/* +Returns the number of files in the list +*/ +int filesSize(QDeclarativeListProperty * property) +{ + return static_cast< QList *>(property->data)->size(); +} + +/* +Function called to empty the list property contents +*/ +void clearFilesPtr(QDeclarativeListProperty *property) +{ + return static_cast< QList *>(property->data)->clear(); +} + +/* +Returns the list of files as a QDeclarativeListProperty. +*/ +QDeclarativeListProperty Directory::files() +{ + refresh(); + return QDeclarativeListProperty( this, &m_fileList, &appendFiles, &filesSize, &fileAt, &clearFilesPtr ); +} + +/* +Return the 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/tutorials/gettingStartedQml/filedialog/directory.h b/examples/tutorials/gettingStartedQml/filedialog/directory.h new file mode 100644 index 0000000..6cad754 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/directory.h @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 +#include +#include +#include +#include + +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(QDeclarativeListProperty 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; + QDeclarativeListProperty 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 m_fileList; + + //refresh content of the directory + void refresh(); +}; + +#endif diff --git a/examples/tutorials/gettingStartedQml/filedialog/file.cpp b/examples/tutorials/gettingStartedQml/filedialog/file.cpp new file mode 100644 index 0000000..ff97c74 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/file.cpp @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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) +{ +} + +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/tutorials/gettingStartedQml/filedialog/file.h b/examples/tutorials/gettingStartedQml/filedialog/file.h new file mode 100644 index 0000000..21e8ebb --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/file.h @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 +#include + +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 \ No newline at end of file diff --git a/examples/tutorials/gettingStartedQml/filedialog/filedialog.pro b/examples/tutorials/gettingStartedQml/filedialog/filedialog.pro new file mode 100644 index 0000000..d85787d --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/filedialog.pro @@ -0,0 +1,17 @@ +TEMPLATE = lib +CONFIG += qt plugin +QT += declarative + +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/tutorials/gettingStartedQml/filedialog/qmldir b/examples/tutorials/gettingStartedQml/filedialog/qmldir new file mode 100644 index 0000000..4a8d13d --- /dev/null +++ b/examples/tutorials/gettingStartedQml/filedialog/qmldir @@ -0,0 +1 @@ +plugin FileDialog ../plugins diff --git a/examples/tutorials/gettingStartedQml/gettingStartedQml.pro b/examples/tutorials/gettingStartedQml/gettingStartedQml.pro new file mode 100644 index 0000000..aa5306c --- /dev/null +++ b/examples/tutorials/gettingStartedQml/gettingStartedQml.pro @@ -0,0 +1,4 @@ +TEMPLATE = subdirs +SUBDIRS = \ + filedialog\ + diff --git a/examples/tutorials/gettingStartedQml/images/arrow.png b/examples/tutorials/gettingStartedQml/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..14978c2e56e55e8e4fc8b7d944bef836d1d68ab7 GIT binary patch literal 583 zcmV-N0=WH&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM} z12+tgH>GL-001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8)nMp)JR2b7u%RfjPVHgMC-+PS-8SabWdoQ1Nf{snWPza(!=;GYPv4eX{kO~>Z zK{`lR(MbZ5u~?i7j%}!Qse@S>gj5m;G>{5M$Z+J(uanScf8_bv8keI8nM?-5;SlZn zdw8BF03aeDDF7%UT#h1yVTepRjlYkNK(SQfS-sBDXvE(S5BzX+MBiE()rGusFsflL z2>5z?n_rtvPN!4;YPVV2-zR))Q?ItR`1$gZBsmxiczk+Fqe`Q?U{qP&+~l`rlk@qU zcdZuRR;$cANBGu?QI(BKh3Ab1NivROo;MoQDB?z?!XGy`Op=8CexL7aHRhdTE(ioh z6-HHzYNk{!^Z4Y1B$*@$&+2vddOc1i6Lz~@zT4epxVp;4LLtlr0bo?&TPwb`Fskx$ zeVv~!E=ZEI*^DIF>2&yJXNOBGE6h8W&O3+2Lcx2M&SvpML?n*mk3Vm350{+7i((Of z1_M<0_VE4s8cC9fh|EZWWJ-K%Jpl8kOfn@RlWaE2!-E5Sxw^t#tA+7+?1>2RpMSRy V(!4k}+qlp;RNQ5mC-DA4#;irj%Pu z%`6P>>nLP2XG7#j@7}+m&*%F*&*%9Ep6B6ZN9zM%1uy^r2Vgc9PW;T}3l7@D_xxbH zF@Ed~H-|ZcK%mh{_yoU-gxH|M0YKb@FDZdfzL7TpV4o(;!pu23e{nqCUOGyyl{ZT% z9hR{rXhRUyAn@Bs36MhHeeK@UUd^YpQi_g>wd)mRzI`I{L8STq1fwgx936q!{h{sn zETFx{@^nWIX7Y-|j3_qsGZ<7?+Vo{tqXLf}%;tR8Va=w^P&A|9%XW+h)7Ne#U=(-g zNVRR>0sQ@6M!965A!!T$0&B;}!+xbvz&mHnhDvja+mgi=2q2QBm)&sjI**u^R$GPf zh*tqXuQ#kLd%w6jAC-Ctw6>cClA0HDcFWs*y|ood1LP+ffU*Nau6U$CB;BslJom-R zM{Ca5tXI?M^49CpXH0L7>`ooSdjS{A3_Y*|rVC1ny45F>HR&p%bS@LKG4Z*n&@6RN zmW3dotgLUZrccuiMsfQ3KW6R#6Nr}L`VxB5L66jyGSyq;J-|st>oQepef`4e++c4z zS$2O}OUa@zkW1ERYCGyDCswp&=0fW0*}!y5?n&K3=cc*Z40z)O?yURo!*JiZ65~EY zK|oz(6AjLqKi7>a*lShAVRMtCmG&7|V7vF%=U=LPFzl6H+fyloG3G@K4WdN*&%y6@ ziP1x!XKMTnjU0FRDf%$QI+~-3HPK3gGjDhns1W;pZ3fA?xT~qhD&b}tL)NzIo}*xs zcS{>cd3d}|hWyVfH{UBo9t7;IeEuZ{eMGeJNnQ=Jw<=krQ=JRCaXPVsqsTYfiGLEp zOA2C4+>R{u+Ik#19nU<;q&%WEjRbF(TytHgXOIu9wo7%CWnq|X@wK#0L@1bKoEQAN z`p*>g#vsjfWa-tV?S*qI3yWg&uY)E#uK-4oXzCKopPQAtOmSbHyLlo0$L5d%_KSu| zJa3xB43|lWHqxQ@dZyMmNjvFlVc9Nh_NI{F;jc(^BDMpd8yQ_i|gtc+6sdjK4wT@0FPOA&Bkr8a2w}{SGcLZ)L;&^0uB7H)E}G z+u^`%gRmd{Sg-I|!Uym2p76yX>Mmt-eD~#`zaw@G@p7#|BXq;&OSW6wPk;Zy_U95S zZ?Pm85-+O;=W^%5{E((2!9RTy=WAk96R{hs8!+*P_IIr*$4>?>XG}vA$4yX;^Pb3i zhzlS&cDDbv>565D+NObGgk%$i9YYG8i#qD|c=%#g`49VVDu< zG9LmfzxYXbJ#H;{Ca&)=nEHW*7r#Da*hw2~sU+<0b#Rw5Fzi~NC=EavpZJC;t5La{ zS&!3nc~v9JWO$xoF{}&fVxWx;3+)--;=mbx!ZW2fMJdVOpAas-I0XfHkE(<#Q_#D@ z&E18yA=P`KN^TH(C=jyLtJ17))_d)IhwPun7a={czeFsRtgDW|hp!}7?++u=CPEyQ zAL}58XVi+?vXNasVl?H$3hh+|-5hDqj(Oc~)KF4~@!n~tHlw#A5M!&0NQDLn@EzZ! z21tl%wnoy2Fhn^q3(IPmmHIpkMh(%jskrbdWzn?7*y_`!f_Cqsdt z$=06GAwo>wFEfD@!8-E=nWA*7O)bo9)$FOAi0OYs{-0yuG9)X%F4iX&Y&s$$X{99Y ox&Bc@hPXXx!zq8IuSowbTD+hg3YVZ{^PdEOSvp!!%+X2z0pukmI{*Lx literal 0 HcmV?d00001 diff --git a/examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_editmenu.png b/examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_editmenu.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ff66f2fd27a5b5e526b50944d5ce42f5b41a35 GIT binary patch literal 6177 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 literal 0 HcmV?d00001 diff --git a/examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_filemenu.png b/examples/tutorials/gettingStartedQml/parts/part1/pics/qml-texteditor1_filemenu.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e2b0d9907538864a007f48cb16bbc6b49d10e1 GIT binary patch literal 6062 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 D?E(^% literal 0 HcmV?d00001 diff --git a/examples/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject b/examples/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject new file mode 100644 index 0000000..d4909f8 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part2/qml-texteditor2.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/examples/tutorials/gettingStartedQml/parts/part3/Button.qml b/examples/tutorials/gettingStartedQml/parts/part3/Button.qml new file mode 100644 index 0000000..38ace15 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part3/Button.qml @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + smooth: 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/tutorials/gettingStartedQml/parts/part3/EditMenu.qml b/examples/tutorials/gettingStartedQml/parts/part3/EditMenu.qml new file mode 100644 index 0000000..0c3e005 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part3/EditMenu.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part3/FileMenu.qml b/examples/tutorials/gettingStartedQml/parts/part3/FileMenu.qml new file mode 100644 index 0000000..2ebb992 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part3/FileMenu.qml @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part3/MenuBar.qml b/examples/tutorials/gettingStartedQml/parts/part3/MenuBar.qml new file mode 100644 index 0000000..54fd23e --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part3/MenuBar.qml @@ -0,0 +1,140 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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 + VisualItemModel{ + 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/tutorials/gettingStartedQml/parts/part3/TextArea.qml b/examples/tutorials/gettingStartedQml/parts/part3/TextArea.qml new file mode 100644 index 0000000..426f034 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part3/TextArea.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part3/TextEditor.qml b/examples/tutorials/gettingStartedQml/parts/part3/TextEditor.qml new file mode 100644 index 0000000..245ba97 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part3/TextEditor.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part3/images/arrow.png b/examples/tutorials/gettingStartedQml/parts/part3/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..14978c2e56e55e8e4fc8b7d944bef836d1d68ab7 GIT binary patch literal 583 zcmV-N0=WH&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM} z12+tgH>GL-001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8)nMp)JR2b7u%RfjPVHgMC-+PS-8SabWdoQ1Nf{snWPza(!=;GYPv4eX{kO~>Z zK{`lR(MbZ5u~?i7j%}!Qse@S>gj5m;G>{5M$Z+J(uanScf8_bv8keI8nM?-5;SlZn zdw8BF03aeDDF7%UT#h1yVTepRjlYkNK(SQfS-sBDXvE(S5BzX+MBiE()rGusFsflL z2>5z?n_rtvPN!4;YPVV2-zR))Q?ItR`1$gZBsmxiczk+Fqe`Q?U{qP&+~l`rlk@qU zcdZuRR;$cANBGu?QI(BKh3Ab1NivROo;MoQDB?z?!XGy`Op=8CexL7aHRhdTE(ioh z6-HHzYNk{!^Z4Y1B$*@$&+2vddOc1i6Lz~@zT4epxVp;4LLtlr0bo?&TPwb`Fskx$ zeVv~!E=ZEI*^DIF>2&yJXNOBGE6h8W&O3+2Lcx2M&SvpML?n*mk3Vm350{+7i((Of z1_M<0_VE4s8cC9fh|EZWWJ-K%Jpl8kOfn@RlWaE2!-E5Sxw^t#tA+7+?1>2RpMSRy V(!PPXF5%s-a;TZ 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

$J^xyxzw_>PMJDR#+K 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 JT;Z3V{|oGbSB3xp literal 0 HcmV?d00001 diff --git a/examples/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject b/examples/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject new file mode 100644 index 0000000..d4909f8 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part3/qml-texteditor3.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/examples/tutorials/gettingStartedQml/parts/part4/Button.qml b/examples/tutorials/gettingStartedQml/parts/part4/Button.qml new file mode 100644 index 0000000..2fc2824 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/Button.qml @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + smooth: 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/tutorials/gettingStartedQml/parts/part4/EditMenu.qml b/examples/tutorials/gettingStartedQml/parts/part4/EditMenu.qml new file mode 100644 index 0000000..99f1d45 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/EditMenu.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part4/FileMenu.qml b/examples/tutorials/gettingStartedQml/parts/part4/FileMenu.qml new file mode 100644 index 0000000..06e8022 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/FileMenu.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part4/MenuBar.qml b/examples/tutorials/gettingStartedQml/parts/part4/MenuBar.qml new file mode 100644 index 0000000..857b6c3 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/MenuBar.qml @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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 + VisualItemModel{ + 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/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml b/examples/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml new file mode 100644 index 0000000..a85910e --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/SimpleButton.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part4/TextArea.qml b/examples/tutorials/gettingStartedQml/parts/part4/TextArea.qml new file mode 100644 index 0000000..2ba47c8 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/TextArea.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part4/TextEditor.qml b/examples/tutorials/gettingStartedQml/parts/part4/TextEditor.qml new file mode 100644 index 0000000..20d60e6 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/TextEditor.qml @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part4/images/arrow.png b/examples/tutorials/gettingStartedQml/parts/part4/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..14978c2e56e55e8e4fc8b7d944bef836d1d68ab7 GIT binary patch literal 583 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 literal 0 HcmV?d00001 diff --git a/examples/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject b/examples/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject new file mode 100644 index 0000000..d4909f8 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part4/qml-texteditor4.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/examples/tutorials/gettingStartedQml/parts/part5/TextEditor.qml b/examples/tutorials/gettingStartedQml/parts/part5/TextEditor.qml new file mode 100644 index 0000000..07bce8c --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/TextEditor.qml @@ -0,0 +1,127 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part5/core/Button.qml b/examples/tutorials/gettingStartedQml/parts/part5/core/Button.qml new file mode 100644 index 0000000..35174b7 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/core/Button.qml @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + smooth: 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/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml b/examples/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml new file mode 100644 index 0000000..dd72591 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/core/EditMenu.qml @@ -0,0 +1,110 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml b/examples/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml new file mode 100644 index 0000000..4268ca1 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/core/FileDialog.qml @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + anchors.centerIn:parent + height: parent.height -15; width: parent.width -30 + + Rectangle{ + id:header + height:parent.height*0.1 + width: parent.width + radius:3 + 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 + smooth: 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 + smooth:true + 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/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml b/examples/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml new file mode 100644 index 0000000..b57baad --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/core/FileMenu.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml b/examples/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml new file mode 100644 index 0000000..42e2280 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/core/MenuBar.qml @@ -0,0 +1,148 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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: 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} + smooth: 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 + smooth:true + //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 + smooth:true + //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 + VisualItemModel{ + 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/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml b/examples/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml new file mode 100644 index 0000000..838df7a --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/core/TextArea.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part5/core/qmldir b/examples/tutorials/gettingStartedQml/parts/part5/core/qmldir new file mode 100644 index 0000000..b8b0c7c --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/core/qmldir @@ -0,0 +1,11 @@ + +Button ./Button.qml +FileDialog ./FileDialog.qml +TextArea ./TextArea.qml +TextEditor ./TextEditor.qml +EditMenu ./EditMenu.qml +MenuBar ./MenuBar.qml + + + + diff --git a/examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp new file mode 100644 index 0000000..add6a63 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.cpp @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + +void DialogPlugin::registerTypes(const char *uri){ + + //register the class Directory into QML as a "Directory" element version 1.0 + qmlRegisterType(uri, 1, 0, "Directory"); + qmlRegisterType(uri,1,0,"File"); + + //qRegisterMetaType > ("QDeclarativeListProperty"); + +} + +//FileDialog is the plugin name (same as the TARGET in the project file) and DialogPlugin is the plugin classs +Q_EXPORT_PLUGIN2(FileDialog, DialogPlugin); diff --git a/examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h new file mode 100644 index 0000000..27fc47c --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/dialogPlugin.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + +class DialogPlugin : public QDeclarativeExtensionPlugin +{ + Q_OBJECT + + public: + //registerTypes is inherited from QDeclarativeExtensionPlugin + void registerTypes(const char *uri); + +}; + +#endif + diff --git a/examples/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp new file mode 100644 index 0000000..fe1be10 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/directory.cpp @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + +/* +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(QDeclarativeListProperty * 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(QDeclarativeListProperty * property, int index){ + return static_cast< QList *>(property->data)->at(index); +} + +/* +Returns the number of files in the list +*/ +int filesSize(QDeclarativeListProperty * property){ + return static_cast< QList *>(property->data)->size(); +} + +/* +Function called to empty the list property contents +*/ +void clearFilesPtr(QDeclarativeListProperty *property){ + return static_cast< QList *>(property->data)->clear(); +} + +/* +Returns the list of files as a QDeclarativeListProperty. +*/ +QDeclarativeListProperty Directory::files(){ + + refresh(); +// return QDeclarativeListProperty(this,m_filePtrList); //not recommended in the docs + return QDeclarativeListProperty( 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/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h new file mode 100644 index 0000000..00aff95 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/directory.h @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 +#include +#include +#include +#include + +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(QDeclarativeListProperty 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; + QDeclarativeListProperty 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 m_fileList; + + //refresh content of the directory + void refresh(); +}; + + +#endif diff --git a/examples/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp new file mode 100644 index 0000000..2844274 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/file.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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/tutorials/gettingStartedQml/parts/part5/filedialog/file.h b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/file.h new file mode 100644 index 0000000..200d6fb --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/file.h @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 +#include + +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/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro new file mode 100644 index 0000000..6247747 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/filedialog.pro @@ -0,0 +1,17 @@ +TEMPLATE = lib +CONFIG += qt plugin +QT += declarative + +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/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir new file mode 100644 index 0000000..4a8d13d --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/filedialog/qmldir @@ -0,0 +1 @@ +plugin FileDialog ../plugins diff --git a/examples/tutorials/gettingStartedQml/parts/part5/images/arrow.png b/examples/tutorials/gettingStartedQml/parts/part5/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..14978c2e56e55e8e4fc8b7d944bef836d1d68ab7 GIT binary patch literal 583 zcmV-N0=WH&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM} z12+tgH>GL-001I%MObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakAa8CUVIWOmV~41B zLjV8)nMp)JR2b7u%RfjPVHgMC-+PS-8SabWdoQ1Nf{snWPza(!=;GYPv4eX{kO~>Z zK{`lR(MbZ5u~?i7j%}!Qse@S>gj5m;G>{5M$Z+J(uanScf8_bv8keI8nM?-5;SlZn zdw8BF03aeDDF7%UT#h1yVTepRjlYkNK(SQfS-sBDXvE(S5BzX+MBiE()rGusFsflL z2>5z?n_rtvPN!4;YPVV2-zR))Q?ItR`1$gZBsmxiczk+Fqe`Q?U{qP&+~l`rlk@qU zcdZuRR;$cANBGu?QI(BKh3Ab1NivROo;MoQDB?z?!XGy`Op=8CexL7aHRhdTE(ioh z6-HHzYNk{!^Z4Y1B$*@$&+2vddOc1i6Lz~@zT4epxVp;4LLtlr0bo?&TPwb`Fskx$ zeVv~!E=ZEI*^DIF>2&yJXNOBGE6h8W&O3+2Lcx2M&SvpML?n*mk3Vm350{+7i((Of z1_M<0_VE4s8cC9fh|EZWWJ-K%Jpl8kOfn@RlWaE2!-E5Sxw^t#tA+7+?1>2RpMSRy V(!T1q6i9dkxa1_hKla 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 z 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%0DsjAG{(-$zGz`MmU` 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 BvKRmW literal 0 HcmV?d00001 diff --git a/examples/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject b/examples/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject new file mode 100644 index 0000000..ed034df --- /dev/null +++ b/examples/tutorials/gettingStartedQml/parts/part5/qml-texteditor5.qmlproject @@ -0,0 +1,18 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + directory: "core" + directory: "filedialog" + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } + /* List of plugin directories passed to QML runtime */ + importPaths: [ " ./plugins " ] +} diff --git a/examples/tutorials/gettingStartedQml/pics/qml-texteditor5_editmenu.png b/examples/tutorials/gettingStartedQml/pics/qml-texteditor5_editmenu.png new file mode 100644 index 0000000000000000000000000000000000000000..27feed5e82c37d41c6e208d9e04bc063ebb3e449 GIT binary patch literal 65123 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 z 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%0DsjAG{(-$zGz`MmU` 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 BvKRmW literal 0 HcmV?d00001 diff --git a/examples/tutorials/gettingStartedQml/texteditor.qml b/examples/tutorials/gettingStartedQml/texteditor.qml new file mode 100644 index 0000000..186c298 --- /dev/null +++ b/examples/tutorials/gettingStartedQml/texteditor.qml @@ -0,0 +1,132 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative 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 Nokia Corporation 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 + border { width: 1; color: "#DCDCCC"} + 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"; 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] + 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 } + } + ] +//! [states] + +//! [transitions] + 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 } + } + ] +//! [transitions] +} diff --git a/examples/tutorials/tutorials.pro b/examples/tutorials/tutorials.pro new file mode 100644 index 0000000..0893449 --- /dev/null +++ b/examples/tutorials/tutorials.pro @@ -0,0 +1,2 @@ +TEMPLATE = subdirs +SUBDIRS += gettingStartedQml -- 1.7.2.5