diff options
author | Adrian Kummerlaender | 2015-08-19 11:13:35 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2015-08-19 11:13:35 +0200 |
commit | 4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8 (patch) | |
tree | ad308460ab5f47f498b4d2432e36c7511c5e9aab /src/widget | |
parent | 90da724a56c2ff20617d3e231a6ef877928df482 (diff) | |
download | MetaTerm-4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8.tar MetaTerm-4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8.tar.gz MetaTerm-4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8.tar.bz2 MetaTerm-4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8.tar.lz MetaTerm-4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8.tar.xz MetaTerm-4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8.tar.zst MetaTerm-4cb435f2a7bbeafb53f067d95ec83e0b3a1a17f8.zip |
Extract all settings into `SettingsHandler` object
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.
Diffstat (limited to 'src/widget')
-rw-r--r-- | src/widget/EmbeddedTerminal.qml | 38 | ||||
-rw-r--r-- | src/widget/Highlighter.qml | 18 |
2 files changed, 17 insertions, 39 deletions
diff --git a/src/widget/EmbeddedTerminal.qml b/src/widget/EmbeddedTerminal.qml index 6d0dc6e..54dad75 100644 --- a/src/widget/EmbeddedTerminal.qml +++ b/src/widget/EmbeddedTerminal.qml @@ -1,31 +1,17 @@ import QtQuick 2.0 import QMLTermWidget 1.0 import QtQuick.Layouts 1.1 -import Qt.labs.settings 1.0 Item { id: item - property string program - property string workingDirectory + property string program + property string workingDirectory - Settings { - id: settings - category: "terminal" - - property int initialLines : 20 - property int frameWidth : 10 - property int fontSize : 8 - property string fontFamily : "Monospace" - property string colorScheme : "cool-retro-term" - property string overlayBackground : "black" - property string overlayFontColor : "white" - } - - property int lines : settings.initialLines + property int lines : settings.terminal.initialLines height: terminal.height - width: parent.width - settings.frameWidth + width: parent.width - settings.terminal.frameWidth function select() { highlighter.select() } function deselect() { highlighter.deselect() } @@ -44,7 +30,7 @@ Item { Highlighter { id: highlighter - width: settings.frameWidth + width: settings.terminal.frameWidth Layout.fillHeight: true } @@ -52,14 +38,14 @@ Item { id: terminal font { - family: settings.fontFamily - pointSize: settings.fontSize + family: settings.terminal.fontFamily + pointSize: settings.terminal.fontSize } Layout.fillWidth: true Layout.preferredHeight: fontMetrics.height * item.lines - colorScheme: settings.colorScheme + colorScheme: settings.terminal.colorScheme session: QMLTermSession { initialWorkingDirectory: item.workingDirectory @@ -99,7 +85,7 @@ Item { anchors.fill: parent opacity: 0 - color: settings.overlayBackground + color: settings.terminal.overlayBackground SequentialAnimation { id: animation @@ -130,10 +116,10 @@ Item { } font { - family: settings.fontFamily - pointSize: settings.fontSize * 2 + family: settings.terminal.fontFamily + pointSize: settings.terminal.fontSize * 2 } - color: settings.overlayFontColor + color: settings.terminal.overlayFontColor text: { return item.lines diff --git a/src/widget/Highlighter.qml b/src/widget/Highlighter.qml index b2db7f6..53f308c 100644 --- a/src/widget/Highlighter.qml +++ b/src/widget/Highlighter.qml @@ -1,18 +1,10 @@ import QtQuick 2.0 -import Qt.labs.settings 1.0 Item { - property Settings settings : Settings { - category: "highlighter" - - property string defaultColor : "#909636" - property string focusColor : "#352F6A" - } - - function select() { bar.opacity = 1 } - function deselect() { bar.opacity = 0 } - function focus() { bar.color = settings.focusColor } - function unfocus() { bar.color = settings.defaultColor } + 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 @@ -20,7 +12,7 @@ Item { anchors.fill: parent opacity: 0 - color: settings.defaultColor + color: settings.highlighter.defaultColor Behavior on opacity { NumberAnimation { |