From 9e712fa0c5b84955617bb8da9a6f3fa10fcaebd9 Mon Sep 17 00:00:00 2001 From: elexis Date: Wed, 22 Aug 2018 12:48:27 +0000 Subject: [PATCH] Move UserReporter C++/JS functions from JSInterface_Debug.cpp to JSInterface_UserReport.cpp, refs #4772. This way it stands out more as a separate feature that can be more easily exchanged, extended, maintained or conditionally removed from the build and leaves more transparent includes, refs #5257. Add missing string includes following 7c2e9027c2 and d6cb9c845b. Remove unused Profile include following 38d6f81d71 and d6cb9c845b. Remove unused CLogger include, add missing debug include following d6cb9c845b. Remove unused CConsole include following 9f0484e5ce / D1073. Remove unused ProfilerViewer include following 2af94c5898. This was SVN commit r21866. --- source/gui/scripting/ScriptFunctions.cpp | 2 + source/ps/scripting/JSInterface_Debug.cpp | 28 ++--------- source/ps/scripting/JSInterface_Debug.h | 5 +- .../ps/scripting/JSInterface_UserReport.cpp | 47 +++++++++++++++++++ source/ps/scripting/JSInterface_UserReport.h | 34 ++++++++++++++ 5 files changed, 88 insertions(+), 28 deletions(-) create mode 100644 source/ps/scripting/JSInterface_UserReport.cpp create mode 100644 source/ps/scripting/JSInterface_UserReport.h diff --git a/source/gui/scripting/ScriptFunctions.cpp b/source/gui/scripting/ScriptFunctions.cpp index 45fdd8a8ab..7ffe56882d 100644 --- a/source/gui/scripting/ScriptFunctions.cpp +++ b/source/gui/scripting/ScriptFunctions.cpp @@ -34,6 +34,7 @@ #include "ps/scripting/JSInterface_Mod.h" #include "ps/scripting/JSInterface_ModIo.h" #include "ps/scripting/JSInterface_SavedGame.h" +#include "ps/scripting/JSInterface_UserReport.h" #include "ps/scripting/JSInterface_VFS.h" #include "ps/scripting/JSInterface_VisualReplay.h" #include "renderer/scripting/JSInterface_Renderer.h" @@ -67,6 +68,7 @@ void GuiScriptingInit(ScriptInterface& scriptInterface) JSI_SavedGame::RegisterScriptFunctions(scriptInterface); JSI_Simulation::RegisterScriptFunctions(scriptInterface); JSI_Sound::RegisterScriptFunctions(scriptInterface); + JSI_UserReport::RegisterScriptFunctions(scriptInterface); JSI_VFS::RegisterScriptFunctions_GUI(scriptInterface); JSI_VisualReplay::RegisterScriptFunctions(scriptInterface); } diff --git a/source/ps/scripting/JSInterface_Debug.cpp b/source/ps/scripting/JSInterface_Debug.cpp index ec25ce3d3e..abd83f7abb 100644 --- a/source/ps/scripting/JSInterface_Debug.cpp +++ b/source/ps/scripting/JSInterface_Debug.cpp @@ -21,13 +21,11 @@ #include "i18n/L10n.h" #include "lib/svn_revision.h" -#include "ps/CConsole.h" -#include "ps/CLogger.h" -#include "ps/Profile.h" -#include "ps/ProfileViewer.h" -#include "ps/UserReport.h" +#include "lib/debug.h" #include "scriptinterface/ScriptInterface.h" +#include + /** * Microseconds since the epoch. */ @@ -117,21 +115,6 @@ std::wstring JSI_Debug::GetBuildTimestamp(ScriptInterface::CxPrivate* UNUSED(pCx return wstring_from_utf8(buf); } -bool JSI_Debug::IsUserReportEnabled(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) -{ - return g_UserReporter.IsReportingEnabled(); -} - -void JSI_Debug::SetUserReportEnabled(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), bool enabled) -{ - g_UserReporter.SetReportingEnabled(enabled); -} - -std::string JSI_Debug::GetUserReportStatus(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) -{ - return g_UserReporter.GetStatus(); -} - void JSI_Debug::RegisterScriptFunctions(const ScriptInterface& scriptInterface) { scriptInterface.RegisterFunction("GetMicroseconds"); @@ -139,9 +122,4 @@ void JSI_Debug::RegisterScriptFunctions(const ScriptInterface& scriptInterface) scriptInterface.RegisterFunction("DebugWarn"); scriptInterface.RegisterFunction("DisplayErrorDialog"); scriptInterface.RegisterFunction("GetBuildTimestamp"); - - // User report functions - scriptInterface.RegisterFunction("IsUserReportEnabled"); - scriptInterface.RegisterFunction("SetUserReportEnabled"); - scriptInterface.RegisterFunction("GetUserReportStatus"); } diff --git a/source/ps/scripting/JSInterface_Debug.h b/source/ps/scripting/JSInterface_Debug.h index fdc504ea73..326b6d24a1 100644 --- a/source/ps/scripting/JSInterface_Debug.h +++ b/source/ps/scripting/JSInterface_Debug.h @@ -20,14 +20,13 @@ #include "scriptinterface/ScriptInterface.h" +#include + namespace JSI_Debug { int Crash(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)); void DebugWarn(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)); void DisplayErrorDialog(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), const std::wstring& msg); - bool IsUserReportEnabled(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)); - void SetUserReportEnabled(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), bool enabled); - std::string GetUserReportStatus(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)); std::wstring GetBuildTimestamp(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), int mode); double GetMicroseconds(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)); diff --git a/source/ps/scripting/JSInterface_UserReport.cpp b/source/ps/scripting/JSInterface_UserReport.cpp new file mode 100644 index 0000000000..bcac0bcdaa --- /dev/null +++ b/source/ps/scripting/JSInterface_UserReport.cpp @@ -0,0 +1,47 @@ +/* Copyright (C) 2018 Wildfire Games. + * This file is part of 0 A.D. + * + * 0 A.D. is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * 0 A.D. is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with 0 A.D. If not, see . + */ + +#include "precompiled.h" + +#include "JSInterface_UserReport.h" + +#include "ps/UserReport.h" +#include "scriptinterface/ScriptInterface.h" + +#include + +bool JSI_UserReport::IsUserReportEnabled(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) +{ + return g_UserReporter.IsReportingEnabled(); +} + +void JSI_UserReport::SetUserReportEnabled(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), bool enabled) +{ + g_UserReporter.SetReportingEnabled(enabled); +} + +std::string JSI_UserReport::GetUserReportStatus(ScriptInterface::CxPrivate* UNUSED(pCxPrivate)) +{ + return g_UserReporter.GetStatus(); +} + +void JSI_UserReport::RegisterScriptFunctions(const ScriptInterface& scriptInterface) +{ + scriptInterface.RegisterFunction("IsUserReportEnabled"); + scriptInterface.RegisterFunction("SetUserReportEnabled"); + scriptInterface.RegisterFunction("GetUserReportStatus"); +} diff --git a/source/ps/scripting/JSInterface_UserReport.h b/source/ps/scripting/JSInterface_UserReport.h new file mode 100644 index 0000000000..524f206c7e --- /dev/null +++ b/source/ps/scripting/JSInterface_UserReport.h @@ -0,0 +1,34 @@ +/* Copyright (C) 2018 Wildfire Games. + * This file is part of 0 A.D. + * + * 0 A.D. is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * 0 A.D. is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with 0 A.D. If not, see . + */ + +#ifndef INCLUDED_JSI_USERREPORT +#define INCLUDED_JSI_USERREPORT + +#include "scriptinterface/ScriptInterface.h" + +#include + +namespace JSI_UserReport +{ + bool IsUserReportEnabled(ScriptInterface::CxPrivate* pCxPrivate); + void SetUserReportEnabled(ScriptInterface::CxPrivate* pCxPrivate, bool enabled); + std::string GetUserReportStatus(ScriptInterface::CxPrivate* pCxPrivate); + + void RegisterScriptFunctions(const ScriptInterface& ScriptInterface); +} + +#endif // INCLUDED_JSI_USERREPORT