]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt/GuiAlert.cpp
No need (any longer?) to create a new view for lyxfiles-open
[lyx.git] / src / frontends / qt / GuiAlert.cpp
index 85a5e22d6e6ae34fa93d9eb5545bf46cd6eaee58..30f55eb22060c530b918dc940c2b4b01b17e5948 100644 (file)
@@ -109,9 +109,13 @@ buttonid doPrompt(docstring const & title, docstring const & question,
        // FIXME replace that with guiApp->currentView()
        //LYXERR0("FOCUS: " << qApp->focusWidget());
        QPushButton * b[4] = { nullptr, nullptr, nullptr, nullptr };
+       const size_t numbuttons = sizeof(b)/sizeof(b[0]);
        QMessageBox msg_box(QMessageBox::Information,
                        toqstr(title), toqstr(question),
                        QMessageBox::NoButton, qApp->focusWidget());
+#ifdef Q_OS_MAC
+       msg_box.setWindowModality(Qt::WindowModal);
+#endif
        b[0] = msg_box.addButton(b1.empty() ? "OK" : toqstr(b1),
                                        QMessageBox::ActionRole);
        if (!b2.empty())
@@ -120,9 +124,9 @@ buttonid doPrompt(docstring const & title, docstring const & question,
                b[2] = msg_box.addButton(toqstr(b3), QMessageBox::ActionRole);
        if (!b4.empty())
                b[3] = msg_box.addButton(toqstr(b4), QMessageBox::ActionRole);
-       if (default_button < size(b) && nullptr != b[default_button])
+       if (default_button < numbuttons && nullptr != b[default_button])
                msg_box.setDefaultButton(b[default_button]);
-       if (cancel_button < size(b) && nullptr != b[cancel_button])
+       if (cancel_button < numbuttons && nullptr != b[cancel_button])
                msg_box.setEscapeButton(static_cast<QAbstractButton *>(b[cancel_button]));
        msg_box.exec();
        const QAbstractButton * button = msg_box.clickedButton();
@@ -138,7 +142,7 @@ buttonid doPrompt(docstring const & title, docstring const & question,
                return res;
        else {
                // Convert selection of the button into an integer
-               for (size_t i = 0; i < size(b); i++) {
+               for (size_t i = 0; i < numbuttons; i++) {
                        if (button == b[i]) {
                                res = i;
                                break;