diff --git a/src/libs/utils/messagebox.cpp b/src/libs/utils/messagebox.cpp new file mode 100644 index 00000000000..6ba3fb1a1b6 --- /dev/null +++ b/src/libs/utils/messagebox.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://www.qt.io/licensing. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "messagebox.h" + +#include +#include + +namespace Utils { +namespace AsynchronousMessageBox { + +namespace { +QWidget *dialogParent() +{ + QWidget *active = QApplication::activeModalWidget(); + + if (!active) { + QList topLevelWidgets = QApplication::topLevelWidgets(); + if (!topLevelWidgets.isEmpty()) + return topLevelWidgets.first(); + } + + return nullptr; +} +} +void warning(const QString &title, const QString &desciption) +{ + QMessageBox *messageBox = new QMessageBox(QMessageBox::Warning, + title, + desciption, + QMessageBox::Ok, + dialogParent()); + + messageBox->setAttribute(Qt::WA_DeleteOnClose); + messageBox->setModal(true); + messageBox->show(); +} + +} +} diff --git a/src/libs/utils/messagebox.h b/src/libs/utils/messagebox.h new file mode 100644 index 00000000000..9a1ad76a764 --- /dev/null +++ b/src/libs/utils/messagebox.h @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://www.qt.io/licensing. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef MESSAGEBOX_H +#define MESSAGEBOX_H + +#include "utils_global.h" + +QT_BEGIN_NAMESPACE +class QString; +QT_END_NAMESPACE + +namespace Utils { +namespace AsynchronousMessageBox { + + QTCREATOR_UTILS_EXPORT void warning(const QString &title, const QString &desciption); +} +} + +#endif // MESSAGEBOX_H + diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri index 9b7e25b88bf..c2ba531e508 100644 --- a/src/libs/utils/utils-lib.pri +++ b/src/libs/utils/utils-lib.pri @@ -93,7 +93,8 @@ SOURCES += $$PWD/environment.cpp \ $$PWD/treeviewcombobox.cpp \ $$PWD/proxycredentialsdialog.cpp \ $$PWD/macroexpander.cpp \ - $$PWD/theme/theme.cpp + $$PWD/theme/theme.cpp \ + $$PWD/messagebox.cpp win32:SOURCES += $$PWD/consoleprocess_win.cpp else:SOURCES += $$PWD/consoleprocess_unix.cpp @@ -192,7 +193,8 @@ HEADERS += \ $$PWD/proxycredentialsdialog.h \ $$PWD/macroexpander.h \ $$PWD/theme/theme.h \ - $$PWD/theme/theme_p.h + $$PWD/theme/theme_p.h \ + $$PWD/ messagebox.h FORMS += $$PWD/filewizardpage.ui \ $$PWD/projectintropage.ui \ diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index 4a79fa9b4f7..fd919053c0c 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -106,6 +106,8 @@ QtcLibrary { "listutils.h", "macroexpander.cpp", "macroexpander.h", + "messagebox.cpp", + "messagebox.h", "multitask.h", "navigationtreeview.cpp", "navigationtreeview.h",