From d2d4c21cdef0aa23cbc882065cef83bb9abdc5f9 Mon Sep 17 00:00:00 2001 From: xiphon Date: Wed, 19 Dec 2018 04:54:43 +0000 Subject: [PATCH] SettingsLog: fix TextArea layout, border, scrollbar --- components/DaemonConsole.qml | 33 ++++----- pages/settings/SettingsLog.qml | 127 ++++++++++++++++----------------- 2 files changed, 74 insertions(+), 86 deletions(-) diff --git a/components/DaemonConsole.qml b/components/DaemonConsole.qml index 3efd024b..bed7dc39 100644 --- a/components/DaemonConsole.qml +++ b/components/DaemonConsole.qml @@ -87,10 +87,17 @@ Window { anchors.margins: 35 * scaleRatio spacing: 20 * scaleRatio - RowLayout { - id: content - Layout.fillWidth: true + Item { Layout.fillHeight: true + Layout.fillWidth: true + + Rectangle { + anchors.fill: parent + color: "transparent" + border.color: MoneroComponents.Style.inputBorderColorActive + border.width: 1 + radius: 4 + } Flickable { id: flickable @@ -101,20 +108,12 @@ Window { textFormat: TextEdit.RichText selectByMouse: true selectByKeyboard: true - anchors.fill: parent - font.family: "Ariel" + font.family: MoneroComponents.Style.defaultFontColor font.pixelSize: 14 * scaleRatio color: MoneroComponents.Style.defaultFontColor selectionColor: MoneroComponents.Style.dimmedFontColor wrapMode: TextEdit.Wrap readOnly: true - background: Rectangle { - color: "transparent" - anchors.fill: parent - border.color: Qt.rgba(255, 255, 255, 0.25); - border.width: 1 - radius: 4 - } function logCommand(msg){ msg = log_color(msg, "lime"); textArea.append(msg); @@ -156,15 +155,7 @@ Window { } } - ScrollBar.vertical: ScrollBar { - // TODO: scrollbar always visible is buggy. - // QT 5.9 introduces `policy: ScrollBar.AlwaysOn` - contentItem.opacity: 1 - anchors.top: flickable.top - anchors.left: flickable.right - anchors.leftMargin: 10 * scaleRatio - anchors.bottom: flickable.bottom - } + ScrollBar.vertical: ScrollBar {} } } diff --git a/pages/settings/SettingsLog.qml b/pages/settings/SettingsLog.qml index 286cbbef..23234862 100644 --- a/pages/settings/SettingsLog.qml +++ b/pages/settings/SettingsLog.qml @@ -138,79 +138,76 @@ Rectangle { text: qsTr("Daemon log") + translationManager.emptyString } - Flickable { - id: flickable + Item { + Layout.fillHeight: true Layout.fillWidth: true Layout.preferredHeight: 240 * scaleRatio - TextArea.flickable: TextArea { - id : consoleArea + Rectangle { anchors.fill: parent - color: MoneroComponents.Style.defaultFontColor - selectionColor: MoneroComponents.Style.dimmedFontColor - textFormat: TextEdit.RichText - selectByMouse: true - selectByKeyboard: true - font.family: "Ariel" - font.pixelSize: 14 * scaleRatio - wrapMode: TextEdit.Wrap - readOnly: true - background: Rectangle { - color: "transparent" - anchors.fill: parent - border.color: Qt.rgba(255, 255, 255, 0.25); - border.width: 1 - radius: 4 - } - function logCommand(msg){ - msg = log_color(msg, "lime"); - consoleArea.append(msg); - } - function logMessage(msg){ - msg = msg.trim(); - var color = "white"; - if(msg.toLowerCase().indexOf('error') >= 0){ - color = "red"; - } else if (msg.toLowerCase().indexOf('warning') >= 0){ - color = "yellow"; - } + color: "transparent" + border.color: MoneroComponents.Style.inputBorderColorActive + border.width: 1 + radius: 4 + } - // format multi-lines - if(msg.split("\n").length >= 2){ - msg = msg.split("\n").join('
'); - } + Flickable { + id: flickable + anchors.fill: parent - log(msg, color); - } - function log_color(msg, color){ - return "" + msg + ""; - } - function log(msg, color){ - var timestamp = Utils.formatDate(new Date(), { - weekday: undefined, - month: "numeric", - timeZoneName: undefined - }); - - var _timestamp = log_color("[" + timestamp + "]", "#FFFFFF"); - var _msg = log_color(msg, color); - consoleArea.append(_timestamp + " " + _msg); - - // scroll to bottom - //if(flickable.contentHeight > content.height){ - // flickable.contentY = flickable.contentHeight; - //} + TextArea.flickable: TextArea { + id : consoleArea + color: MoneroComponents.Style.defaultFontColor + selectionColor: MoneroComponents.Style.dimmedFontColor + textFormat: TextEdit.RichText + selectByMouse: true + selectByKeyboard: true + font.family: MoneroComponents.Style.defaultFontColor + font.pixelSize: 14 * scaleRatio + wrapMode: TextEdit.Wrap + readOnly: true + function logCommand(msg){ + msg = log_color(msg, "lime"); + consoleArea.append(msg); + } + function logMessage(msg){ + msg = msg.trim(); + var color = "white"; + if(msg.toLowerCase().indexOf('error') >= 0){ + color = "red"; + } else if (msg.toLowerCase().indexOf('warning') >= 0){ + color = "yellow"; + } + + // format multi-lines + if(msg.split("\n").length >= 2){ + msg = msg.split("\n").join('
'); + } + + log(msg, color); + } + function log_color(msg, color){ + return "" + msg + ""; + } + function log(msg, color){ + var timestamp = Utils.formatDate(new Date(), { + weekday: undefined, + month: "numeric", + timeZoneName: undefined + }); + + var _timestamp = log_color("[" + timestamp + "]", "#FFFFFF"); + var _msg = log_color(msg, color); + consoleArea.append(_timestamp + " " + _msg); + + // scroll to bottom + //if(flickable.contentHeight > content.height){ + // flickable.contentY = flickable.contentHeight; + //} + } } - } - ScrollBar.vertical: ScrollBar { - // TODO: scrollbar always visible is buggy. - // QT 5.9 introduces `policy: ScrollBar.AlwaysOn` - contentItem.opacity: 1 - anchors.top: flickable.top - anchors.left: flickable.right - anchors.leftMargin: 10 * scaleRatio - anchors.bottom: flickable.bottom + ScrollBar.vertical: ScrollBar {} } }