Add function to close top level windows to MiniQtHelper

This commit is contained in:
baldurk
2021-01-27 16:03:26 +00:00
parent dabd2a803a
commit 4d16c3e44c
4 changed files with 21 additions and 0 deletions
+9
View File
@@ -381,6 +381,15 @@ added in a vertical layout.
)");
virtual QWidget *CreateToplevelWidget(const rdcstr &windowTitle, WidgetCallback closed) = 0;
DOCUMENT(R"(Closes a top-level widget as if the user had clicked to close.
This function is undefined if used on a non top-level widget. It will invoke the closed widget
callback.
:param QWidget widget: The top-level widget to close.
)");
virtual void CloseToplevelWidget(QWidget *widget) = 0;
// widget hierarchy
DOCUMENT(R"(Set the internal name of a widget. This is not displayed anywhere but can be used by
+7
View File
@@ -42,6 +42,7 @@
#include "Widgets/Extended/RDLineEdit.h"
#include "Widgets/Extended/RDTextEdit.h"
#include "Widgets/Extended/RDToolButton.h"
#include "toolwindowmanager/ToolWindowManager.h"
MiniQtHelper::MiniQtHelper(ICaptureContext &ctx) : m_Ctx(ctx)
{
@@ -98,6 +99,12 @@ QWidget *MiniQtHelper::CreateToplevelWidget(const rdcstr &windowTitle, WidgetCal
return ret;
}
void MiniQtHelper::CloseToplevelWidget(QWidget *widget)
{
if(widget)
ToolWindowManager::closeToolWindow(widget);
}
void MiniQtHelper::SetWidgetName(QWidget *widget, const rdcstr &name)
{
if(widget)
+1
View File
@@ -38,6 +38,7 @@ public:
void InvokeOntoUIThread(std::function<void()> callback) override;
QWidget *CreateToplevelWidget(const rdcstr &windowTitle, WidgetCallback closed) override;
void CloseToplevelWidget(QWidget *widget) override;
// widget hierarchy
+4
View File
@@ -99,6 +99,10 @@ struct MiniQtInvoker : ObjectForwarder<IMiniQtHelper>
{
return InvokeRetFunction<QWidget *>(&IMiniQtHelper::CreateToplevelWidget, windowTitle, closed);
}
void CloseToplevelWidget(QWidget *widget)
{
InvokeVoidFunction(&IMiniQtHelper::CloseToplevelWidget, widget);
}
// widget hierarchy