From 55c66514c6e03bc731c7f5ae4d6f6a1e1d1ab601 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Tue, 15 Dec 2015 19:53:18 +0100 Subject: Separate widgets into primary and augmenting items --- src/widget/augment/Highlighter.qml | 24 ++++++++++++ src/widget/augment/Overlay.qml | 60 ++++++++++++++++++++++++++++++ src/widget/augment/StatusLine.qml | 76 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 src/widget/augment/Highlighter.qml create mode 100644 src/widget/augment/Overlay.qml create mode 100644 src/widget/augment/StatusLine.qml (limited to 'src/widget/augment') diff --git a/src/widget/augment/Highlighter.qml b/src/widget/augment/Highlighter.qml new file mode 100644 index 0000000..53f308c --- /dev/null +++ b/src/widget/augment/Highlighter.qml @@ -0,0 +1,24 @@ +import QtQuick 2.0 + +Item { + function select() { bar.opacity = 1 } + function deselect() { bar.opacity = 0 } + function focus() { bar.color = settings.highlighter.focusColor } + function unfocus() { bar.color = settings.highlighter.defaultColor } + + Rectangle { + id: bar + + anchors.fill: parent + + opacity: 0 + color: settings.highlighter.defaultColor + + Behavior on opacity { + NumberAnimation { + duration: 300 + easing.type: Easing.OutCubic + } + } + } +} diff --git a/src/widget/augment/Overlay.qml b/src/widget/augment/Overlay.qml new file mode 100644 index 0000000..ac1e230 --- /dev/null +++ b/src/widget/augment/Overlay.qml @@ -0,0 +1,60 @@ +import QtQuick 2.0 + +Item { + id: item + + property bool enabled : false + property alias text : content.text + + function displayBriefly() { + if ( enabled ) { + animation.restart() + } + } + + Rectangle { + id: background + + anchors.fill: parent + + opacity: 0 + color: settings.terminal.overlayBackground + + SequentialAnimation { + id: animation + + ScriptAction { + script: background.opacity = 0.8 + } + + PauseAnimation { + duration: 500 + } + + NumberAnimation { + target: background + property: "opacity" + + easing.type: Easing.InSine + duration: 300 + from: 0.8 + to: 0 + } + } + + Text { + id: content + + anchors { + horizontalCenter: background.horizontalCenter + verticalCenter: background.verticalCenter + } + + font { + family: settings.terminal.fontFamily + pointSize: settings.terminal.fontSize * 2 + } + color: settings.terminal.overlayFontColor + } + } +} diff --git a/src/widget/augment/StatusLine.qml b/src/widget/augment/StatusLine.qml new file mode 100644 index 0000000..56b0b31 --- /dev/null +++ b/src/widget/augment/StatusLine.qml @@ -0,0 +1,76 @@ +import QtQuick 2.0 +import QMLTermWidget 1.0 +import QtQuick.Layouts 1.1 + +Item { + id: item + + property QMLTermSession session : null + + function update() { + var shellPID = session.getShellPID(); + + pid.text = shellPID; + workingDirectory.text = cwd.currentOfPID(shellPID); + } + + height: wrap.height + + RowLayout { + id: wrap + + anchors.right: parent.right + anchors.left: parent.left + + Layout.alignment: Qt.AlignRight + + spacing: 5 + + Rectangle { + Layout.fillWidth: true + + anchors.fill: wrap + + color: settings.terminal.statusBackground + } + + Text { + id: pid + + Layout.rightMargin: 4 + Layout.bottomMargin: 2 + + font { + family: settings.terminal.fontFamily + pointSize: settings.terminal.fontSize + } + color: settings.terminal.statusFontColor + } + + Text { + Layout.rightMargin: 4 + Layout.bottomMargin: 2 + + font { + family: settings.terminal.fontFamily + pointSize: settings.terminal.fontSize + } + color: settings.terminal.statusFontColor + + text: "@" + } + + Text { + id: workingDirectory + + Layout.rightMargin: 4 + Layout.bottomMargin: 2 + + font { + family: settings.terminal.fontFamily + pointSize: settings.terminal.fontSize + } + color: settings.terminal.statusFontColor + } + } +} -- cgit v1.2.3