// // ConsoleScriptingInterface.cpp // libraries/script-engine/src // // Created by volansystech on 6/1/17. // Copyright 2014 High Fidelity, Inc. // // ConsoleScriptingInterface is responsible to print logs // using "console" object on debug Window and Logs/log file with proper tags. // Used in Javascripts file. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #include "ConsoleScriptingInterface.h" #include "ScriptEngine.h" void ConsoleScriptingInterface::info(QString message) { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptInfoMessage(message); } } void ConsoleScriptingInterface::log(QString message) { /*if (!listgrp.isEmpty()){ listgrp.append(qMakePair(currentGroupSelection, message)); }*/ if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptPrintedMessage(message); } } void ConsoleScriptingInterface::debug(QString message) { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptPrintedMessage(message); } } void ConsoleScriptingInterface::warn(QString message) { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptWarningMessage(message); } } void ConsoleScriptingInterface::error(QString message) { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptErrorMessage(message); } } void ConsoleScriptingInterface::exception(QString message) { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptErrorMessage(message); } } void ConsoleScriptingInterface::time(QString labelName) { QDateTime _currentTime = QDateTime::currentDateTime().toUTC(); _listOfTimeValues.insert(labelName, _currentTime.toUTC()); } void ConsoleScriptingInterface::timeEnd(QString labelName) { QDateTime _dateTimeOfLabel; QString message; qint64 millisecondsDiff = 0; bool _labelInList = _listOfTimeValues.contains(labelName); //Check if not exist items in list if (!_labelInList) { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { message = "No such label found " + labelName; scriptEngine->scriptErrorMessage(message); } return; } QDateTime _currentDateTimeValue = QDateTime::currentDateTime().toUTC(); _dateTimeOfLabel = _listOfTimeValues.value(labelName); if (!_dateTimeOfLabel.isNull()) { _listOfTimeValues.remove(labelName); } if (_dateTimeOfLabel.toString(TIME_FORMAT) == _currentDateTimeValue.toString(TIME_FORMAT)) { millisecondsDiff = _dateTimeOfLabel.msecsTo(_currentDateTimeValue); message = QString::number(millisecondsDiff) + " ms"; } else { message = secondsToString(_dateTimeOfLabel.secsTo(_currentDateTimeValue)); } if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptPrintedMessage("Time : " + message); } } QString ConsoleScriptingInterface::secondsToString(qint64 seconds) { qint64 days = seconds / DAY; QTime timeDuration = QTime(0, 0).addSecs(seconds % DAY); return QString("%1 days, %2 hours, %3 minutes, %4 seconds") .arg(QString::number(days)).arg(QString::number(timeDuration.hour())).arg(QString::number(timeDuration.minute())).arg(QString::number(timeDuration.second())); } void ConsoleScriptingInterface::asserts(bool condition, QString message) { if (!condition) { QString assertFailed = "Assertion failed"; if (message.isEmpty()) { message = assertFailed; } else { if (typeid(message) != typeid(QString)) { message = assertFailed; } else { message = assertFailed + " " + message; } } if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptErrorMessage(message); } } } void ConsoleScriptingInterface::trace(QString labelName) { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->scriptErrorMessage(labelName); } } void ConsoleScriptingInterface::clear() { if (ScriptEngine* scriptEngine = qobject_cast(engine())) { scriptEngine->clearConsole(); } } void ConsoleScriptingInterface::group(QString groupName) { listgrp.append(qMakePair(defaultGroupName, groupName)); currentGroupSelection = groupName; } void ConsoleScriptingInterface::groupCollapsed(QString groupName) { listgrp.append(qMakePair(defaultGroupCollapseName, groupName)); currentGroupSelection = groupName; } void ConsoleScriptingInterface::consoleLog(QString groupName) { if (!listgrp.isEmpty()){ listgrp.append(qMakePair(currentGroupSelection, groupName)); } } int collapseCount = 0; QString addSpace = " "; void ConsoleScriptingInterface::groupEnd() { QString endGroup= "endGroup"; listgrp.append(qMakePair(currentGroupSelection, endGroup)); //currentGroupSelection = groupName; } void show(){ QString tmp; QPair pair; for (int i = 0; i