diff options
| author | Adrian Kummerlaender | 2015-08-29 22:12:49 +0200 | 
|---|---|---|
| committer | Adrian Kummerlaender | 2015-08-29 22:12:49 +0200 | 
| commit | 0dd49584e26c294e3fb25347969f61bca84afb5f (patch) | |
| tree | e84adbe9014d155a185cc2f6539ef34732b6474f /src/widget | |
| parent | 77d4b29ffd337b747448ce0f1a6f6e3457d8cd05 (diff) | |
| download | MetaTerm-0dd49584e26c294e3fb25347969f61bca84afb5f.tar MetaTerm-0dd49584e26c294e3fb25347969f61bca84afb5f.tar.gz MetaTerm-0dd49584e26c294e3fb25347969f61bca84afb5f.tar.bz2 MetaTerm-0dd49584e26c294e3fb25347969f61bca84afb5f.tar.lz MetaTerm-0dd49584e26c294e3fb25347969f61bca84afb5f.tar.xz MetaTerm-0dd49584e26c294e3fb25347969f61bca84afb5f.tar.zst MetaTerm-0dd49584e26c294e3fb25347969f61bca84afb5f.zip | |
Automatically destroy terminal when killed and display history
Child processes of _MetaTerm_ may be terminated using other ways that the integrated kill command.
Automatic terminal widget destruction in such a event prevents the user from viewing the output of non-interactive applications.
This requires _MetaTerm_ to display the application's output after it was terminated.
This requirement is implemented via the new `HistoryViewer` widget that is instantiated after the terminal widget instance has been destroyed.
Diffstat (limited to 'src/widget')
| -rw-r--r-- | src/widget/EmbeddedTerminal.qml | 11 | ||||
| -rw-r--r-- | src/widget/HistoryViewer.qml | 33 | 
2 files changed, 44 insertions, 0 deletions
| diff --git a/src/widget/EmbeddedTerminal.qml b/src/widget/EmbeddedTerminal.qml index fa30e23..497bf49 100644 --- a/src/widget/EmbeddedTerminal.qml +++ b/src/widget/EmbeddedTerminal.qml @@ -5,11 +5,15 @@ import QtQuick.Layouts 1.1  Item {  	id: item +	signal finished +  	property string program  	property string workingDirectory  	property int lines : settings.terminal.initialLines +	property alias history : session.history +  	function select()         { highlighter.select()     }  	function deselect()       { highlighter.deselect()   }  	function displayOverlay() { overlay.displayBriefly() } @@ -48,6 +52,8 @@ Item {  			colorScheme: settings.terminal.colorScheme  			session: QMLTermSession { +				id: session +  				initialWorkingDirectory: item.workingDirectory  				shellProgram: { @@ -60,6 +66,11 @@ Item {  					return elements;  				} + +				onFinished: { +					clearScreen(); +					item.finished(); +				}  			}  			Component.onCompleted: { diff --git a/src/widget/HistoryViewer.qml b/src/widget/HistoryViewer.qml new file mode 100644 index 0000000..ca042f4 --- /dev/null +++ b/src/widget/HistoryViewer.qml @@ -0,0 +1,33 @@ +import QtQuick 2.0 +import QMLTermWidget 1.0 +import QtQuick.Layouts 1.1 + +Item { +	id: item + +	property string history + +	height: viewer.height +	width:  parent.width - settings.terminal.frameWidth + +	Text { +		id: viewer + +		anchors { +			left:  parent.left +			leftMargin: settings.terminal.frameWidth +			right: parent.right +		} + +		color: settings.item.fontColor + +		font { +			family:    settings.terminal.fontFamily +			pointSize: settings.terminal.fontSize +		} + +		Layout.fillWidth: true + +		text: history.trim() +	} +} | 
