Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Otherwise one can not easily enter more complex shell commands such as pipe chains and so on.
The goal of _MetaTerm_ is not to implement a new shell language but to facilitate existing ones which is why this is best deferred to an existing application.
|
|
If a non-interactive applications terminates the next item is automatically selected in insert mode as to make the behaviour in this context more simmilar to normal shells.
Normal mode has to be entered explicitly for the highlighting to update on `HistoryViewer` instantiation.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i.e. serialize objects to JSON.
|
|
|
|
|
|
Trailing whitespace was falsely recognized as a separate argument and as such led to resetting configuration values without obvious cause.
|
|
|
|
This enables the user to straight forwardly change all application settings via command mode.
During the implementation of this change I discovered that the way I was passing around `StateHandler` and `SettingsHandler` instances using properties was unnecessary. If all object instances are created in a common hierarchy they can access each other by their `id` property - i.e. `settings` and `mode` are available to the whole application without property trickery.
|
|
Otherwise they are not accessible to JS commands, i.e. they can not be changed in command mode.
|
|
`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.
|
|
|
|
|
|
This suggested adding an `iterate` helper method to `TerminalList` as well as line break logic to the command output log.
|
|
While `color` would obviously be the correct type to store a color value it is serialized as a `QVariant` value which is not easily changeable by the user.
This requirement is satisfied by `string` and as such this type is - at this point in time - a superior replacement of `color`.
Should the QML settings module be changed to serialize color values in a human readable fashion these types should be changed back to their formally correct value.
|
|
|
|
|
|
`output` text item reference is passed to all command implementations.
|
|
|
|
Requires new `executed` signal in `CommandInput` component to correctly trigger the state change.
|
|
Requires type dependent conversion in TerminaList's `selectItem` method as values passed through `eval` are of type `QJSValue` which is not implicitly convertible to Int.
|
|
Moved command implementation into separate ressource.
Commands are plain JavaScript functions in this separate ressource and as such callable via a simple call to `eval`.
Introduced the concept of a command prefix to enable implementation of e.g. a search command analogously to _vim_.
|
|
|
|
Exposes access to the application via JavaScript to the user.
This will enable easy configuration changes as well as make more complex commands possible.
All JavaScript entered in command mode is evaluated at the application root.
|
|
This was done to reflect that they concern the whole insert mode and don't only control the terminal focus.
|
|
|
|
|
|
This provides further visual feedback to the user that she has hit a limit.
Reduced ease out animation duration to match duration of the highligher focus / defocus animations.
|
|
This further discourages flickering during continuous terminal resize operations.
Overlay is now only enabled for resize operations after the terminal instantiation.
|
|
|
|
This is required as the default white on black may not fit e.g. bright color schemes.
|
|
The animation is now restarted on every height and width change event.
In practice this leads to the overlay being displayed continuously during multiline resize operations but only briefly on single line resize operations.
|
|
Needs further fiddling concerning the animation curve and display duration
|
|
|
|
Otherwise each runtime change of a property leads to storing the new value to disk which we don't want - setting changes should be explicit and visible as such.
|
|
|
|
|
|
Pressing `d` in normal mode causes the current embedded terminal to be destroyed and the containing terminal item to be reset into its initial state.
This allows for much more flexible usage of _MetaTerm_.
To prevent unnecessary terminal item instantiations the `onExecuted` signal was extended to provide a `index` argument containing the sender terminal's index.
|
|
|
|
|