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
|
||||
APPEND
|
||||
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 ()
|
||||
|
||||
# configure autostart .desktop file exec path
|
||||
|
|
|
@ -200,6 +200,23 @@ void WebPage::javaScriptConsoleMessage(
|
|||
Q_UNUSED(level)
|
||||
Q_UNUSED(lineNumber)
|
||||
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) {
|
||||
processJavaScriptConsoleMessage(message);
|
||||
}
|
||||
|
@ -223,6 +240,9 @@ void WebPage::javaScriptConsoleMessage(const QString &message, int lineNumber, c
|
|||
{
|
||||
Q_UNUSED(lineNumber)
|
||||
Q_UNUSED(sourceID)
|
||||
#ifdef SYNCTHINGWIDGETS_LOG_JAVASCRIPT_CONSOLE
|
||||
std::cerr << "JS console: line " << lineNumber << ": " << message.toLocal8Bit().data() << '\n';
|
||||
#endif
|
||||
processJavaScriptConsoleMessage(message);
|
||||
}
|
||||
#endif
|
||||
|
@ -336,9 +356,6 @@ void WebPage::injectJavaScripts(bool ok)
|
|||
*/
|
||||
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: "))) {
|
||||
showFolderPathSelection(message.mid(41));
|
||||
} else if (message == QLatin1String("UIOnline")) {
|
||||
|
|
Loading…
Reference in New Issue