Improve logging JavaScript messages of built-in web view
* Don't show configuration warning when enabled * Log messages of all levels and log level when using Qt WebEngine
This commit is contained in:
parent
dbd1e723d4
commit
a6f0c2f5e1
|
@ -115,7 +115,7 @@ if (SYNCTHING_WIDGETS_LOG_JAVASCRIPT_CONSOLE)
|
||||||
SOURCE webview/webpage.cpp
|
SOURCE webview/webpage.cpp
|
||||||
APPEND
|
APPEND
|
||||||
PROPERTY COMPILE_DEFINITIONS SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE)
|
PROPERTY COMPILE_DEFINITIONS SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE)
|
||||||
message(WARNING "JavaScript console of web view will be logged to stderr")
|
message(STATUS_MESSAGE "JavaScript console of web view will be logged to stderr")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# configure autostart .desktop file exec path
|
# configure autostart .desktop file exec path
|
||||||
|
|
|
@ -200,6 +200,23 @@ void WebPage::javaScriptConsoleMessage(
|
||||||
Q_UNUSED(level)
|
Q_UNUSED(level)
|
||||||
Q_UNUSED(lineNumber)
|
Q_UNUSED(lineNumber)
|
||||||
Q_UNUSED(sourceID)
|
Q_UNUSED(sourceID)
|
||||||
|
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
||||||
|
auto levelName = std::string_view();
|
||||||
|
switch (level) {
|
||||||
|
case QWebEnginePage::InfoMessageLevel:
|
||||||
|
levelName = "info";
|
||||||
|
break;
|
||||||
|
case QWebEnginePage::WarningMessageLevel:
|
||||||
|
levelName = "warning";
|
||||||
|
break;
|
||||||
|
case QWebEnginePage::ErrorMessageLevel:
|
||||||
|
levelName = "error";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
levelName = "message";
|
||||||
|
}
|
||||||
|
std::cerr << "JS " << levelName << ": line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||||
|
#endif
|
||||||
if (level == QWebEnginePage::InfoMessageLevel) {
|
if (level == QWebEnginePage::InfoMessageLevel) {
|
||||||
processJavaScriptConsoleMessage(message);
|
processJavaScriptConsoleMessage(message);
|
||||||
}
|
}
|
||||||
|
@ -223,6 +240,9 @@ void WebPage::javaScriptConsoleMessage(const QString &message, int lineNumber, c
|
||||||
{
|
{
|
||||||
Q_UNUSED(lineNumber)
|
Q_UNUSED(lineNumber)
|
||||||
Q_UNUSED(sourceID)
|
Q_UNUSED(sourceID)
|
||||||
|
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
||||||
|
std::cerr << "JS console: line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||||
|
#endif
|
||||||
processJavaScriptConsoleMessage(message);
|
processJavaScriptConsoleMessage(message);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -336,9 +356,6 @@ void WebPage::injectJavaScripts(bool ok)
|
||||||
*/
|
*/
|
||||||
void WebPage::processJavaScriptConsoleMessage(const QString &message)
|
void WebPage::processJavaScriptConsoleMessage(const QString &message)
|
||||||
{
|
{
|
||||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
|
||||||
std::cerr << "JS console: " << message.toLocal8Bit().data() << std::endl;
|
|
||||||
#endif
|
|
||||||
if (message.startsWith(QLatin1String("nativeInterface.showFolderPathSelection: "))) {
|
if (message.startsWith(QLatin1String("nativeInterface.showFolderPathSelection: "))) {
|
||||||
showFolderPathSelection(message.mid(41));
|
showFolderPathSelection(message.mid(41));
|
||||||
} else if (message == QLatin1String("UIOnline")) {
|
} else if (message == QLatin1String("UIOnline")) {
|
||||||
|
|
Loading…
Reference in New Issue