History

Add log window to the ESS log

Atlante45 committed 9 years ago

Commit 19112181 parent 2962dd611 files · +203 −77Browse files

Showing the changes to interface/src/ui/EntityScriptServerLogDialog.cpp (1 of 11 files). Show all

Unified · Split

interface/src/ui/EntityScriptServerLogDialog.cpp+58−0
@@ -0,0 +1,58 @@
1//
2// EntityScriptServerLogDialog.cpp
3// interface/src/ui
4//
5// Created by Clement Brisset on 1/31/17.
6// Copyright 2017 High Fidelity, Inc.
7//
8// Distributed under the Apache License, Version 2.0.
9// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10//
11
12#include "EntityScriptServerLogDialog.h"
13
14EntityScriptServerLogDialog::EntityScriptServerLogDialog(QWidget* parent) : BaseLogDialog(parent) {
15 setWindowTitle("Entity Script Server Log");
16
17 auto nodeList = DependencyManager::get<NodeList>();
18 auto& packetReceiver = nodeList->getPacketReceiver();
19 packetReceiver.registerListener(PacketType::EntityServerScriptLog, this, "handleEntityServerScriptLogPacket");
20
21 auto shouldEnableLog = [this] {
22 auto nodeList = DependencyManager::get<NodeList>();
23 enableToEntityServerScriptLog(nodeList->getThisNodeCanRez() || nodeList->getThisNodeCanRezTmp());
24 };
25 QObject::connect(nodeList.data(), &NodeList::canRezChanged, this, shouldEnableLog);
26 QObject::connect(nodeList.data(), &NodeList::canRezTmpChanged, this, shouldEnableLog);
27 shouldEnableLog();
28}
29
30EntityScriptServerLogDialog::~EntityScriptServerLogDialog() {
31 enableToEntityServerScriptLog(false);
32}
33
34void EntityScriptServerLogDialog::enableToEntityServerScriptLog(bool enable) {
35 auto nodeList = DependencyManager::get<NodeList>();
36
37 if (auto node = nodeList->soloNodeOfType(NodeType::EntityScriptServer)) {
38 auto packet = NLPacket::create(PacketType::EntityServerScriptLog, sizeof(bool), true);
39 packet->writePrimitive(enable);
40 nodeList->sendPacket(std::move(packet), *node);
41
42 if (_subscribed != enable) {
43 if (enable) {
44 appendLogLine("====================== Subscribded to the Entity Script Server's log ======================");
45 } else {
46 appendLogLine("==================== Unsubscribded from the Entity Script Server's log ====================");
47 }
48 }
49 _subscribed = enable;
50 } else {
51 qWarning() << "Entity Script Server not found";
52 }
53}
54
55void EntityScriptServerLogDialog::handleEntityServerScriptLogPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {
56 auto lines = QString::fromUtf8(message->readAll());
57 QMetaObject::invokeMethod(this, "appendLogLine", Q_ARG(QString, lines));
58}