#include "alert.h"
+
#include "frontends/Application.h"
#include "qt_helpers.h"
#include "LyX.h" // for lyx::use_gui
-#include "ui_AskForTextUi.h"
-#include "ui_ToggleWarningUi.h"
#include "support/gettext.h"
#include "support/debug.h"
#include "support/docstring.h"
#include "support/lstrings.h"
+#include "support/ProgressInterface.h"
#include <QApplication>
#include <QCheckBox>
namespace frontend {
-class GuiToggleWarningDialog : public QDialog, public Ui::ToggleWarningUi
-{
-public:
- GuiToggleWarningDialog(QWidget * parent) : QDialog(parent)
- {
- Ui::ToggleWarningUi::setupUi(this);
- QDialog::setModal(true);
- }
-};
static docstring const formatted(docstring const & text)
}
-void toggleWarning(docstring const & title, docstring const & msg)
+void noAppDialog(QString const & title, QString const & msg, QMessageBox::Icon mode)
{
- if (!use_gui)
- return;
-
- QSettings settings;
- if (settings.value("hidden_warnings/" + toqstr(msg), false).toBool())
- return;
-
- GuiToggleWarningDialog * dlg =
- new GuiToggleWarningDialog(qApp->focusWidget());
-
- dlg->setWindowTitle(toqstr(title));
- dlg->messageLA->setText(toqstr(formatted(msg)));
- dlg->dontShowAgainCB->setChecked(false);
-
- if (dlg->exec() == QDialog::Accepted)
- if (dlg->dontShowAgainCB->isChecked())
- settings.setValue("hidden_warnings/"
- + toqstr(msg), true);
+ int argc = 1;
+ char * argv[1];
+ QApplication app(argc, argv);
+ switch (mode)
+ {
+ case QMessageBox::Information: QMessageBox::information(0, title, msg); break;
+ case QMessageBox::Warning: QMessageBox::warning(0, title, msg); break;
+ case QMessageBox::Critical: QMessageBox::critical(0, title, msg); break;
+ default: break;
+ }
}
docstring const title = bformat(_("LyX: %1$s"), title0);
- // For some reason, sometimes Qt uses an hourglass or watch cursor when
+ // For some reason, sometimes Qt uses a hourglass or watch cursor when
// displaying the alert. Hence, we ask for the standard cursor shape.
- // This call has no effect if the cursor has not been overridden.
- qApp->changeOverrideCursor(Qt::ArrowCursor);
+ qApp->setOverrideCursor(Qt::ArrowCursor);
// FIXME replace that with guiApp->currentView()
//LYXERR0("FOCUS: " << qApp->focusWidget());
b3.empty() ? QString::null : toqstr(b3),
default_button, cancel_button);
+ qApp->restoreOverrideCursor();
+
// Qt bug: can return -1 on cancel or WM close, despite the docs.
if (res == -1)
res = cancel_button;
docstring const title = bformat(_("LyX: %1$s"), title0);
if (theApp() == 0) {
- int argc = 1;
- char * argv[1];
- QApplication app(argc, argv);
- QMessageBox::warning(0,
- toqstr(title),
- toqstr(formatted(message)));
+ noAppDialog(toqstr(title), toqstr(formatted(message)), QMessageBox::Warning);
return;
}
- if (!askshowagain)
- QMessageBox::warning(qApp->focusWidget(),
+
+ // Don't use a hourglass cursor while displaying the alert
+ qApp->setOverrideCursor(Qt::ArrowCursor);
+
+ if (!askshowagain) {
+ ProgressInterface::instance()->warning(
toqstr(title),
toqstr(formatted(message)));
- else
- toggleWarning(title, message);
-}
+ } else {
+ ProgressInterface::instance()->toggleWarning(
+ toqstr(title),
+ toqstr(message),
+ toqstr(formatted(message)));
+ }
+ qApp->restoreOverrideCursor();
+}
-int argc = 1;
-char * argv[1];
void error(docstring const & title0, docstring const & message)
{
return;
docstring const title = bformat(_("LyX: %1$s"), title0);
+
if (theApp() == 0) {
- QApplication app(argc, argv);
- QMessageBox::critical(0,
- toqstr(title),
- toqstr(formatted(message)));
+ noAppDialog(toqstr(title), toqstr(formatted(message)), QMessageBox::Critical);
return;
}
- QMessageBox::critical(qApp->focusWidget(),
- toqstr(title),
- toqstr(formatted(message)));
+
+ // Don't use a hourglass cursor while displaying the alert
+ qApp->setOverrideCursor(Qt::ArrowCursor);
+
+ ProgressInterface::instance()->error(
+ toqstr(title),
+ toqstr(formatted(message)));
+
+ qApp->restoreOverrideCursor();
}
return;
docstring const title = bformat(_("LyX: %1$s"), title0);
- QMessageBox::information(qApp->focusWidget(),
- toqstr(title),
- toqstr(formatted(message)));
+
+ if (theApp() == 0) {
+ noAppDialog(toqstr(title), toqstr(formatted(message)), QMessageBox::Information);
+ return;
+ }
+
+ // Don't use a hourglass cursor while displaying the alert
+ qApp->setOverrideCursor(Qt::ArrowCursor);
+
+ ProgressInterface::instance()->information(
+ toqstr(title),
+ toqstr(formatted(message)));
+
+ qApp->restoreOverrideCursor();
}