#include "support/debug.h"
#include "support/docstring.h"
#include "support/lstrings.h"
+#include "support/lassert.h"
#include "support/ProgressInterface.h"
#include <QApplication>
namespace Alert {
+docstring toPlainText(docstring const & msg)
+{
+ return qstring_to_ucs4(qtHtmlToPlainText(toqstr(msg)));
+}
+
+
int doPrompt(docstring const & title0, docstring const & question,
int default_button, int cancel_button,
docstring const & b1, docstring const & b2,
{
//lyxerr << "PROMPT" << title0 << "FOCUS: " << qApp->focusWidget() << endl;
if (!use_gui || lyxerr.debugging()) {
- lyxerr << title0 << '\n'
+ lyxerr << toPlainText(title0) << '\n'
<< "----------------------------------------\n"
- << question << endl;
+ << toPlainText(question) << endl;
lyxerr << "Assuming answer is ";
switch (default_button) {
- case 0: lyxerr << b1 << endl;
- case 1: lyxerr << b2 << endl;
- case 2: lyxerr << b3 << endl;
+ case 0: lyxerr << b1 << endl; break;
+ case 1: lyxerr << b2 << endl; break;
+ case 2: lyxerr << b3 << endl; break;
case 3: lyxerr << b4 << endl;
}
if (!use_gui)
void doWarning(docstring const & title0, docstring const & message,
bool const & askshowagain)
{
- lyxerr << "Warning: " << title0 << '\n'
+ lyxerr << "Warning: " << toPlainText(title0) << '\n'
<< "----------------------------------------\n"
- << message << endl;
+ << toPlainText(message) << endl;
if (!use_gui)
return;
title0, message, askshowagain);
}
-void doError(docstring const & title0, docstring const & message)
+void doError(docstring const & title0, docstring const & message, bool backtrace)
{
- lyxerr << "Error: " << title0 << '\n'
+ lyxerr << "Error: " << toPlainText(title0) << '\n'
<< "----------------------------------------\n"
- << message << endl;
+ << toPlainText(message) << endl;
+
+ QString details;
+ if (backtrace) {
+ details = QString::fromLocal8Bit(to_local8bit(printCallStack()).c_str());
+ }
if (!use_gui)
return;
ProgressInterface::instance()->error(
toqstr(title),
- toqstr(message));
+ toqstr(message),
+ details);
qApp->restoreOverrideCursor();
theApp()->startLongOperation();
}
-void error(docstring const & title0, docstring const & message)
+void error(docstring const & title0, docstring const & message, bool backtrace)
{
#ifdef EXPORT_in_THREAD
InGuiThread<void>().call(&doError,
#else
doError(
#endif
- title0, message);
+ title0, message, backtrace);
}
void doInformation(docstring const & title0, docstring const & message)
{
if (!use_gui || lyxerr.debugging())
- lyxerr << title0 << '\n'
+ lyxerr << toPlainText(title0) << '\n'
<< "----------------------------------------\n"
- << message << endl;
+ << toPlainText(message) << endl;
if (!use_gui)
return;
{
if (!use_gui || lyxerr.debugging()) {
lyxerr << "----------------------------------------\n"
- << msg << '\n'
+ << toPlainText(msg) << '\n'
<< "Assuming answer is " << dflt << '\n'
<< "----------------------------------------" << endl;
if (!use_gui) {