aboutsummaryrefslogtreecommitdiff
path: root/qml/TerminalList.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/TerminalList.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/TerminalList.qml')
-rw-r--r--qml/TerminalList.qml125
1 files changed, 0 insertions, 125 deletions
diff --git a/qml/TerminalList.qml b/qml/TerminalList.qml
deleted file mode 100644
index 6c6465b..0000000
--- a/qml/TerminalList.qml
+++ /dev/null
@@ -1,125 +0,0 @@
-import QtQuick 2.0
-import QtQuick.Layouts 1.1
-
-Item {
- id: item
-
- property StateHandler state : null
- property int activeItem : 0
- property int itemIndex : 0
-
- property alias children : column.children
-
- function onItemExecuted(index) {
- if ( index === (children.length - 1) ) {
- createItem();
- }
- }
-
- function createItem() {
- var terminalItem = Qt.createComponent("qrc:/TerminalItem.qml");
- var instantiateTerminal = function() {
- var instance = terminalItem.createObject(column, {
- "index": itemIndex,
- "width": flickable.width
- });
- instance.onExecuted.connect(onItemExecuted);
-
- ++itemIndex;
- }
-
- if ( terminalItem.status === Component.Ready ) {
- instantiateTerminal();
- } else {
- terminalItem.statusChanged.connect(instantiateTerminal);
- }
- }
-
- function scrollTo(index) {
- if ( column.height >= flickable.height ) {
- var offset = children[index].y
- + (children[index].height / 2)
- - (flickable.height / 2);
-
- var bound = column.height
- - flickable.height;
-
- if ( offset < 0 ) {
- flickable.contentY = 0;
- } else if ( offset >= bound ) {
- flickable.contentY = bound;
- } else {
- flickable.contentY = offset;
- }
- }
- }
-
- function selectItem(index) {
- children[activeItem].deselect();
- children[index ].select();
-
- activeItem = typeof index === "number" ? index : parseInt(index);
-
- scrollTo(index);
- }
-
- function selectNext() {
- if ( activeItem < (children.length - 1) ) {
- selectItem(activeItem + 1);
- } else {
- state.enterInsertMode();
- }
- }
-
- function selectPrev() {
- if ( activeItem > 0 ) {
- selectItem(activeItem - 1);
- }
- }
-
- function focusCurrent() {
- children[activeItem].forceActiveFocus();
- }
-
- function unfocusCurrent() {
- children[activeItem].unfocus();
- }
-
- function getCurrent() {
- return children[activeItem];
- }
-
- function get(index) {
- return children[index];
- }
-
- function iterate(func) {
- for ( var i = 0; i < children.length; i++ ) {
- func(children[i]);
- }
- }
-
- Flickable {
- id: flickable
-
- anchors.fill: parent
-
- boundsBehavior: Flickable.StopAtBounds
- contentHeight: column.height
- contentWidth: parent.width
- pixelAligned: true
-
- Column {
- id: column
-
- anchors {
- left: parent.left
- right: parent.right
- }
-
- spacing: 10
-
- onHeightChanged: scrollTo(activeItem)
- }
- }
-}