aboutsummaryrefslogtreecommitdiff
path: root/components/DaemonConsole.qml
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2018-04-27 15:35:34 -0500
committerluigi1111 <luigi1111w@gmail.com>2018-04-27 15:35:34 -0500
commit679d18166fd4eadb447bf5c193932733bfcf0556 (patch)
tree6075a29298c5ae9ae459ff0f7041b344ccbd7a21 /components/DaemonConsole.qml
parent1deef732374c0734d91e36e98d7ad812b431dc3c (diff)
parent75ccc7a31b0ab3b969da9a599e8244a8119aa74d (diff)
downloadmonzero-gui-679d18166fd4eadb447bf5c193932733bfcf0556.tar.gz
monzero-gui-679d18166fd4eadb447bf5c193932733bfcf0556.tar.xz
monzero-gui-679d18166fd4eadb447bf5c193932733bfcf0556.zip
Merge pull request #1341
7d8d477 Redesigned the daemon console pop-up acefb96 Added 'Windows.js' for dialogs/windows 47f9a17 Modify password dialog and move customdecorations function out of main.qml 4d56ed9 Make the titlebar more modular 7fe9d71 Added daemonConsole component to main.qml 75ccc7a Added Utils.js, for miscellaneous Javascript functions
Diffstat (limited to 'components/DaemonConsole.qml')
-rw-r--r--components/DaemonConsole.qml186
1 files changed, 127 insertions, 59 deletions
diff --git a/components/DaemonConsole.qml b/components/DaemonConsole.qml
index 2643a339..225b2dba 100644
--- a/components/DaemonConsole.qml
+++ b/components/DaemonConsole.qml
@@ -27,22 +27,23 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.0
-import QtQuick.Controls 1.4
+import QtQuick.Controls 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.4
-import QtQuick.Window 2.0
+import QtQuick.Window 2.2
import "../components" as MoneroComponents
+import "../js/Windows.js" as Windows
+import "../js/Utils.js" as Utils
Window {
id: root
modality: Qt.ApplicationModal
- flags: Qt.Window | Qt.FramelessWindowHint
- property alias title: dialogTitle.text
+ color: "black"
+ flags: Windows.flags
property alias text: dialogContent.text
property alias content: root.text
- property alias okVisible: okButton.visible
property alias textArea: dialogContent
property var icon
@@ -50,15 +51,25 @@ Window {
signal accepted()
signal rejected()
+ onClosing: {
+ inactiveOverlay.visible = false;
+ }
function open() {
- show()
+ inactiveOverlay.visible = true;
+ show();
}
// TODO: implement without hardcoding sizes
width: 480
height: 280
+ // background gradient
+ Image {
+ anchors.fill: parent
+ source: "../images/middlePanelBg.jpg"
+ }
+
// Make window draggable
MouseArea {
anchors.fill: parent
@@ -70,79 +81,136 @@ Window {
ColumnLayout {
id: mainLayout
- spacing: 10
- anchors { fill: parent; margins: 35 }
+
+ anchors.fill: parent
+ anchors.topMargin: 20 * scaleRatio
+ anchors.margins: 35 * scaleRatio
+ spacing: 20 * scaleRatio
RowLayout {
- id: column
- //anchors {fill: parent; margins: 16 }
- Layout.alignment: Qt.AlignHCenter
+ id: content
+ Layout.fillWidth: true
+ Layout.fillHeight: true
- Label {
- id: dialogTitle
- horizontalAlignment: Text.AlignHCenter
- font.pixelSize: 32
- font.family: "Arial"
- color: "#555555"
- }
+ Flickable {
+ id: flickable
+ anchors.fill: parent
- }
+ TextArea.flickable: TextArea {
+ id : dialogContent
+ textFormat: TextEdit.RichText
+ selectByMouse: true
+ selectByKeyboard: true
+ anchors.fill: parent
+ font.family: "Ariel"
+ 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);
+ }
+ 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";
+ }
- RowLayout {
- TextArea {
- id : dialogContent
- Layout.fillWidth: true
- Layout.fillHeight: true
- font.family: "Arial"
- textFormat: TextEdit.AutoText
- readOnly: true
- font.pixelSize: 12
- }
- }
+ // format multi-lines
+ if(msg.split("\n").length >= 2){
+ msg = msg.split("\n").join('<br>');
+ }
- // Ok/Cancel buttons
- RowLayout {
- id: buttons
- spacing: 60
- Layout.alignment: Qt.AlignHCenter
+ log(msg, color);
+ }
+ function log_color(msg, color){
+ return "<span style='color: " + color + ";' >" + msg + "</span>";
+ }
+ 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);
+ textArea.append(_timestamp + " " + _msg);
- MoneroComponents.StandardButton {
- id: okButton
- width: 120
- fontSize: 14
- text: qsTr("Close") + translationManager.emptyString
- onClicked: {
- root.close()
- root.accepted()
+ // scroll to bottom
+ if(flickable.contentHeight > content.height){
+ flickable.contentY = flickable.contentHeight + 20;
+ }
+ }
+ }
+ 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
}
}
+ }
+
+ RowLayout {
+ Layout.fillWidth: true
MoneroComponents.LineEdit {
id: sendCommandText
- width: 300
+ Layout.fillWidth: true
placeholderText: qsTr("command + enter (e.g help)") + translationManager.emptyString
onAccepted: {
- if(text.length > 0)
- daemonManager.sendCommand(text,currentWallet.nettype);
+ if(text.length > 0) {
+ textArea.logCommand(">>> " + text)
+ daemonManager.sendCommand(text, currentWallet.nettype);
+ }
text = ""
}
}
-
- // Status button
-// MoneroComponents.StandardButton {
-// id: sendCommandButton
-// enabled: sendCommandText.text.length > 0
-// fontSize: 14
-// text: qsTr("Send command")
-// onClicked: {
-// daemonManager.sendCommand(sendCommandText.text,currentWallet.testnet);
-// }
-// }
}
}
-}
-
+ // window borders
+ Rectangle {
+ anchors.bottom: parent.bottom
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width:1
+ color: "#2F2F2F"
+ z: 2
+ }
+ Rectangle {
+ anchors.bottom: parent.bottom
+ anchors.top: parent.top
+ anchors.right: parent.right
+ width:1
+ color: "#2F2F2F"
+ z: 2
+ }
+ Rectangle {
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ anchors.left: parent.left
+ height:1
+ color: "#2F2F2F"
+ z: 2
+ }
+} \ No newline at end of file