aboutsummaryrefslogtreecommitdiff
path: root/qml/TerminalItem.qml
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-08-15 16:06:00 +0200
committerAdrian Kummerlaender2015-08-15 16:06:00 +0200
commitd8431223d34476a17835a05d9508e92447f22479 (patch)
tree91b42009fc464be238f9afab569f62cfdf355179 /qml/TerminalItem.qml
parent566e635cd798ef558f4d57fc319f0ee857869378 (diff)
downloadMetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar
MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.gz
MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.bz2
MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.lz
MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.xz
MetaTerm-d8431223d34476a17835a05d9508e92447f22479.tar.zst
MetaTerm-d8431223d34476a17835a05d9508e92447f22479.zip
Restructure QML and JS sources
`list` holds the components of the central list UI element. `command` holds the UI and implementation parts of the command mode. `widget` holds more or less general purpose elements that may also be of use in other circumstances.
Diffstat (limited to 'qml/TerminalItem.qml')
-rw-r--r--qml/TerminalItem.qml176
1 files changed, 0 insertions, 176 deletions
diff --git a/qml/TerminalItem.qml b/qml/TerminalItem.qml
deleted file mode 100644
index 57197bd..0000000
--- a/qml/TerminalItem.qml
+++ /dev/null
@@ -1,176 +0,0 @@
-import QtQuick 2.0
-import QtQuick.Controls 1.2
-import QtQuick.Layouts 1.1
-import Qt.labs.settings 1.0
-
-Item {
- id: item
-
- property int index : 0
- property EmbeddedTerminal terminal : null
-
- signal executed (int index)
-
- Settings {
- id: settings
- category: "item"
-
- property int fontSize : 18
- property string fontFamily : "Monospace"
- property string fontColor : "white"
- }
-
- anchors {
- left: parent.left
- right: parent.right
- }
-
- height: elementList.height
-
- function select() {
- if ( terminal === null ) {
- highlighter.select();
- } else {
- terminal.select();
- }
- }
-
- function deselect() {
- if ( terminal === null ) {
- highlighter.deselect();
- } else {
- terminal.deselect();
- }
- }
-
- function forceActiveFocus() {
- scope.forceActiveFocus();
-
- if ( terminal === null ) {
- scope.forceActiveFocus();
- highlighter.select();
- highlighter.focus();
- }
- }
-
- function unfocus() {
- if ( terminal === null ) {
- highlighter.unfocus();
- }
- }
-
- function heighten() {
- if ( terminal !== null ) {
- terminal.lines += 1;
- }
- }
-
- function shorten() {
- if ( terminal !== null ) {
- if ( terminal.lines > 10 ) {
- terminal.lines -= 1;
- } else {
- terminal.displayOverlay();
- }
- }
- }
-
- function reset() {
- if ( terminal !== null ) {
- terminal.destroy();
-
- terminal = null;
- command.readOnly = false;
- command.focus = true;
-
- unfocus();
- }
- }
-
- FocusScope {
- id: scope
-
- anchors {
- left: parent.left
- right: parent.right
- }
-
- Column {
- id: elementList
-
- anchors {
- left: parent.left
- right: parent.right
- }
-
- function createTerminal(program) {
- var terminalComponent = Qt.createComponent("qrc:/EmbeddedTerminal.qml");
- var instantiateTerminal = function() {
- item.terminal = terminalComponent.createObject(elementList, {
- "program" : program,
- "workingDirectory" : "$HOME",
- "focus" : true
- });
- }
-
- if ( terminalComponent.status === Component.Ready ) {
- instantiateTerminal();
- } else {
- terminalComponent.statusChanged.connect(instantiateTerminal);
- }
- }
-
- RowLayout {
- anchors {
- left: parent.left
- right: parent.right
- }
-
- Highlighter {
- id: highlighter
-
- width: 10
- height: command.height
- }
-
- TextInput {
- id: command
-
- font {
- family: settings.fontFamily
- pointSize: settings.fontSize
- }
-
- color: settings.fontColor
- selectionColor: settings.fontColor
- selectedTextColor: "#161616"
-
- selectByMouse: true
- focus: true
- Layout.fillWidth: true
-
- onAccepted: {
- if ( item.terminal === null ) {
- readOnly = true;
- focus = false;
-
- elementList.createTerminal(text);
- item.executed(item.index);
- highlighter.deselect();
- }
- }
- }
-
- Text {
- font {
- family: settings.fontFamily
- pointSize: settings.fontSize / 1.5
- }
- color: settings.fontColor
-
- text: item.index
- }
- }
- }
- }
-}