import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Dialogs 1.3 import Qt.labs.platform 1.1 as Platform import EpistmoolUI 1.0 Item { Action { id: boldAction shortcut: StandardKey.Bold onTriggered: docHandler.bold = !docHandler.bold } Action { id: italicAction shortcut: StandardKey.Italic onTriggered: docHandler.italic = !docHandler.italic } Action { id: underlineAction shortcut: StandardKey.Underline onTriggered: docHandler.underline = !docHandler.underline } Action { id: strikeoutAction shortcut: "Ctrl+Shift+X" onTriggered: docHandler.strikeout = !docHandler.strikeout } Platform.ColorDialog { id: colorDialog currentColor: "black" } Item { id: toolbar width: parent.width height: childrenRect.height Row { id: toolbarLeft layoutDirection: Qt.LeftToRight ToolButton { id: boldButton text: "B" font.bold: true focusPolicy: Qt.TabFocus checkable: true checked: docHandler.bold action: boldAction } ToolButton { id: italicButton text: "I" font.italic: true focusPolicy: Qt.TabFocus checkable: true checked: docHandler.italic action: italicAction } ToolButton { id: underlineButton text: "U" font.underline: true focusPolicy: Qt.TabFocus checkable: true checked: docHandler.underline action: underlineAction } ToolButton { id: strikeoutButton text: "S" font.strikeout: true focusPolicy: Qt.TabFocus checkable: true checked: docHandler.strikeout action: strikeoutAction } ToolButton { id: textColorButton text: "\uF1FC" // icon-brush font.family: "fontello" focusPolicy: Qt.TabFocus onClicked: colorDialog.open() Rectangle { width: aFontMetrics.width + 3 height: 2 color: docHandler.activeTextColor parent: textColorButton.contentItem anchors.horizontalCenter: parent.horizontalCenter anchors.baseline: parent.baseline anchors.baselineOffset: 6 TextMetrics { id: aFontMetrics font: textColorButton.font text: textColorButton.text } } } } Row { id: toolbarRight layoutDirection: Qt.RightToLeft height: parent.height anchors.left: toolbarLeft.right anchors.right: parent.right Label { text: docHandler.modifyTime.toLocaleTimeString() ToolTip.visible: ma.containsMouse ToolTip.text: docHandler.modifyTime.toLocaleString() MouseArea { id: ma anchors.fill: parent hoverEnabled: true } } } } DocumentHandler { id: docHandler document: textArea.textDocument // Binding for current editing state of the TextArea cursorPos: textArea.cursorPosition selectionBegin: textArea.selectionStart selectionEnd: textArea.selectionEnd property alias family: docHandler.activeFont.family property alias bold: docHandler.activeFont.bold property alias italic: docHandler.activeFont.italic property alias underline: docHandler.activeFont.underline property alias strikeout: docHandler.activeFont.strikeout property alias size: docHandler.activeFont.pointSize } ScrollView { id: scrollView width: parent.width anchors.top: toolbar.bottom anchors.bottom: parent.bottom TextArea { id: textArea textFormat: Qt.RichText wrapMode: TextArea.Wrap focus: true selectByMouse: true persistentSelection: true } } }