diff options
Diffstat (limited to 'examples/quickcontrols2/texteditor/qml/texteditor.qml')
-rw-r--r-- | examples/quickcontrols2/texteditor/qml/texteditor.qml | 467 |
1 files changed, 0 insertions, 467 deletions
diff --git a/examples/quickcontrols2/texteditor/qml/texteditor.qml b/examples/quickcontrols2/texteditor/qml/texteditor.qml deleted file mode 100644 index 6c95335b..00000000 --- a/examples/quickcontrols2/texteditor/qml/texteditor.qml +++ /dev/null @@ -1,467 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.12 -import QtQuick.Controls 2.12 -import QtQuick.Window 2.0 -import Qt.labs.platform 1.0 - -import io.qt.examples.texteditor 1.0 - -// TODO: -// - make designer-friendly - -ApplicationWindow { - id: window - width: 1024 - height: 600 - visible: true - title: document.fileName + " - Text Editor Example" - - Component.onCompleted: { - x = Screen.width / 2 - width / 2 - y = Screen.height / 2 - height / 2 - } - - Shortcut { - sequence: StandardKey.Open - onActivated: openDialog.open() - } - Shortcut { - sequence: StandardKey.SaveAs - onActivated: saveDialog.open() - } - Shortcut { - sequence: StandardKey.Quit - onActivated: close() - } - Shortcut { - sequence: StandardKey.Copy - onActivated: textArea.copy() - } - Shortcut { - sequence: StandardKey.Cut - onActivated: textArea.cut() - } - Shortcut { - sequence: StandardKey.Paste - onActivated: textArea.paste() - } - Shortcut { - sequence: StandardKey.Bold - onActivated: document.bold = !document.bold - } - Shortcut { - sequence: StandardKey.Italic - onActivated: document.italic = !document.italic - } - Shortcut { - sequence: StandardKey.Underline - onActivated: document.underline = !document.underline - } - - MenuBar { - Menu { - title: qsTr("&File") - - MenuItem { - text: qsTr("&Open") - onTriggered: openDialog.open() - } - MenuItem { - text: qsTr("&Save As...") - onTriggered: saveDialog.open() - } - MenuItem { - text: qsTr("&Quit") - onTriggered: close() - } - } - - Menu { - title: qsTr("&Edit") - - MenuItem { - text: qsTr("&Copy") - enabled: textArea.selectedText - onTriggered: textArea.copy() - } - MenuItem { - text: qsTr("Cu&t") - enabled: textArea.selectedText - onTriggered: textArea.cut() - } - MenuItem { - text: qsTr("&Paste") - enabled: textArea.canPaste - onTriggered: textArea.paste() - } - } - - Menu { - title: qsTr("F&ormat") - - MenuItem { - text: qsTr("&Bold") - checkable: true - checked: document.bold - onTriggered: document.bold = !document.bold - } - MenuItem { - text: qsTr("&Italic") - checkable: true - checked: document.italic - onTriggered: document.italic = !document.italic - } - MenuItem { - text: qsTr("&Underline") - checkable: true - checked: document.underline - onTriggered: document.underline = !document.underline - } - } - } - - FileDialog { - id: openDialog - fileMode: FileDialog.OpenFile - selectedNameFilter.index: 1 - nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"] - folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation) - onAccepted: document.load(file) - } - - FileDialog { - id: saveDialog - fileMode: FileDialog.SaveFile - defaultSuffix: document.fileType - nameFilters: openDialog.nameFilters - selectedNameFilter.index: document.fileType === "txt" ? 0 : 1 - folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation) - onAccepted: document.saveAs(file) - } - - FontDialog { - id: fontDialog - onAccepted: { - document.fontFamily = font.family; - document.fontSize = font.pointSize; - } - } - - ColorDialog { - id: colorDialog - currentColor: "black" - } - - MessageDialog { - id: errorDialog - } - - MessageDialog { - id : quitDialog - title: qsTr("Quit?") - text: qsTr("The file has been modified. Quit anyway?") - buttons: (MessageDialog.Yes | MessageDialog.No) - onYesClicked: Qt.quit() - } - - header: ToolBar { - leftPadding: 8 - - Flow { - id: flow - width: parent.width - - Row { - id: fileRow - ToolButton { - id: openButton - text: "\uF115" // icon-folder-open-empty - font.family: "fontello" - onClicked: openDialog.open() - } - ToolSeparator { - contentItem.visible: fileRow.y === editRow.y - } - } - - Row { - id: editRow - ToolButton { - id: copyButton - text: "\uF0C5" // icon-docs - font.family: "fontello" - focusPolicy: Qt.TabFocus - enabled: textArea.selectedText - onClicked: textArea.copy() - } - ToolButton { - id: cutButton - text: "\uE802" // icon-scissors - font.family: "fontello" - focusPolicy: Qt.TabFocus - enabled: textArea.selectedText - onClicked: textArea.cut() - } - ToolButton { - id: pasteButton - text: "\uF0EA" // icon-paste - font.family: "fontello" - focusPolicy: Qt.TabFocus - enabled: textArea.canPaste - onClicked: textArea.paste() - } - ToolSeparator { - contentItem.visible: editRow.y === formatRow.y - } - } - - Row { - id: formatRow - ToolButton { - id: boldButton - text: "\uE800" // icon-bold - font.family: "fontello" - focusPolicy: Qt.TabFocus - checkable: true - checked: document.bold - onClicked: document.bold = !document.bold - } - ToolButton { - id: italicButton - text: "\uE801" // icon-italic - font.family: "fontello" - focusPolicy: Qt.TabFocus - checkable: true - checked: document.italic - onClicked: document.italic = !document.italic - } - ToolButton { - id: underlineButton - text: "\uF0CD" // icon-underline - font.family: "fontello" - focusPolicy: Qt.TabFocus - checkable: true - checked: document.underline - onClicked: document.underline = !document.underline - } - ToolButton { - id: fontFamilyToolButton - text: qsTr("\uE808") // icon-font - font.family: "fontello" - font.bold: document.bold - font.italic: document.italic - font.underline: document.underline - onClicked: { - fontDialog.currentFont.family = document.fontFamily; - fontDialog.currentFont.pointSize = document.fontSize; - fontDialog.open(); - } - } - ToolButton { - id: textColorButton - text: "\uF1FC" // icon-brush - font.family: "fontello" - focusPolicy: Qt.TabFocus - onClicked: colorDialog.open() - - Rectangle { - width: aFontMetrics.width + 3 - height: 2 - color: document.textColor - parent: textColorButton.contentItem - anchors.horizontalCenter: parent.horizontalCenter - anchors.baseline: parent.baseline - anchors.baselineOffset: 6 - - TextMetrics { - id: aFontMetrics - font: textColorButton.font - text: textColorButton.text - } - } - } - ToolSeparator { - contentItem.visible: formatRow.y === alignRow.y - } - } - - Row { - id: alignRow - ToolButton { - id: alignLeftButton - text: "\uE803" // icon-align-left - font.family: "fontello" - focusPolicy: Qt.TabFocus - checkable: true - checked: document.alignment == Qt.AlignLeft - onClicked: document.alignment = Qt.AlignLeft - } - ToolButton { - id: alignCenterButton - text: "\uE804" // icon-align-center - font.family: "fontello" - focusPolicy: Qt.TabFocus - checkable: true - checked: document.alignment == Qt.AlignHCenter - onClicked: document.alignment = Qt.AlignHCenter - } - ToolButton { - id: alignRightButton - text: "\uE805" // icon-align-right - font.family: "fontello" - focusPolicy: Qt.TabFocus - checkable: true - checked: document.alignment == Qt.AlignRight - onClicked: document.alignment = Qt.AlignRight - } - ToolButton { - id: alignJustifyButton - text: "\uE806" // icon-align-justify - font.family: "fontello" - focusPolicy: Qt.TabFocus - checkable: true - checked: document.alignment == Qt.AlignJustify - onClicked: document.alignment = Qt.AlignJustify - } - } - } - } - - DocumentHandler { - id: document - document: textArea.textDocument - cursorPosition: textArea.cursorPosition - selectionStart: textArea.selectionStart - selectionEnd: textArea.selectionEnd - textColor: colorDialog.color - Component.onCompleted: document.load("qrc:/texteditor.html") - onLoaded: { - textArea.text = text - } - onError: { - errorDialog.text = message - errorDialog.visible = true - } - } - - Flickable { - id: flickable - flickableDirection: Flickable.VerticalFlick - anchors.fill: parent - - TextArea.flickable: TextArea { - id: textArea - textFormat: Qt.RichText - wrapMode: TextArea.Wrap - focus: true - selectByMouse: true - persistentSelection: true - // Different styles have different padding and background - // decorations, but since this editor is almost taking up the - // entire window, we don't need them. - leftPadding: 6 - rightPadding: 6 - topPadding: 0 - bottomPadding: 0 - background: null - - MouseArea { - acceptedButtons: Qt.RightButton - anchors.fill: parent - onClicked: contextMenu.open() - } - - onLinkActivated: Qt.openUrlExternally(link) - } - - ScrollBar.vertical: ScrollBar {} - } - - Menu { - id: contextMenu - - MenuItem { - text: qsTr("Copy") - enabled: textArea.selectedText - onTriggered: textArea.copy() - } - MenuItem { - text: qsTr("Cut") - enabled: textArea.selectedText - onTriggered: textArea.cut() - } - MenuItem { - text: qsTr("Paste") - enabled: textArea.canPaste - onTriggered: textArea.paste() - } - - MenuSeparator {} - - MenuItem { - text: qsTr("Font...") - onTriggered: fontDialog.open() - } - - MenuItem { - text: qsTr("Color...") - onTriggered: colorDialog.open() - } - } - - onClosing: { - if (document.modified) { - quitDialog.open() - close.accepted = false - } - } -} |