From a9c6fe2036d03095789ec83f8f2d9078ddace39e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 18 Apr 2016 23:35:20 +0200 Subject: [PATCH] refs #640, find COverlayMessagesFrame in widget hierarchy --- src/blackgui/guiutility.cpp | 18 ++++++++++++++++++ src/blackgui/guiutility.h | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/src/blackgui/guiutility.cpp b/src/blackgui/guiutility.cpp index 82498c8bd..3b7b9d3f2 100644 --- a/src/blackgui/guiutility.cpp +++ b/src/blackgui/guiutility.cpp @@ -8,6 +8,7 @@ */ #include "guiutility.h" +#include "overlaymessagesframe.h" #include "blackcore/corefacade.h" #include "blackcore/cookiemanager.h" #include "blackmisc/filelogger.h" @@ -160,6 +161,23 @@ namespace BlackGui return typeId; } + COverlayMessagesFrame *CGuiUtility::nextOverlayMessageFrame(QWidget *widget, int maxLevels) + { + if (!widget || maxLevels < 1) { return nullptr; } + COverlayMessagesFrame *o = qobject_cast (widget); + if (o) { return o; } + int cl = 0; + QWidget *cw = widget->parentWidget(); + while (cl < maxLevels && cw) + { + o = qobject_cast (cw); + if (o) { return o; } + cl++; + cw = cw->parentWidget(); + } + return nullptr; + } + const QString &CGuiUtility::swiftJsonDragAndDropMimeType() { static const QString m("text/json/swift"); diff --git a/src/blackgui/guiutility.h b/src/blackgui/guiutility.h index 91f8af377..354afee70 100644 --- a/src/blackgui/guiutility.h +++ b/src/blackgui/guiutility.h @@ -22,6 +22,8 @@ namespace BlackGui { + class COverlayMessagesFrame; + //! GUI utilities class BLACKGUI_EXPORT CGuiUtility { @@ -65,6 +67,9 @@ namespace BlackGui //! Meta type id from dropped data static int metaTypeIdFromSwiftDragAndDropData(const QMimeData *mime); + //! Find next BlackGui::COverlayMessages QFrame + static COverlayMessagesFrame *nextOverlayMessageFrame(QWidget *widget, int maxLevels = 10); + //! Metatype static const QString &swiftJsonDragAndDropMimeType();