obs-studio/UI/window-dock-browser.hpp
Ryan Foster f049d04af4 UI: Store dock titles in BrowserDock instead of relying on Qt
Attempting to set the window title of a BrowserDock that is closed, then
opening the BrowserDock, would show that BrowserDock with an incorrect
title. We can handle this by overriding the showEvent of BrowserDock and
manually setting the window title after the showEvent is called,
hopefully ensuring that we are only setting the window title on a window
that exists.
2023-08-15 12:27:18 -04:00

35 lines
726 B
C++

#pragma once
#include "window-dock.hpp"
#include <QScopedPointer>
#include <browser-panel.hpp>
extern QCef *cef;
extern QCefCookieManager *panel_cookies;
class BrowserDock : public OBSDock {
private:
QString title;
public:
inline BrowserDock() : OBSDock() { setAttribute(Qt::WA_NativeWindow); }
inline BrowserDock(const QString &title_) : OBSDock(title_)
{
title = title_;
setAttribute(Qt::WA_NativeWindow);
}
QScopedPointer<QCefWidget> cefWidget;
inline void SetWidget(QCefWidget *widget_)
{
setWidget(widget_);
cefWidget.reset(widget_);
}
inline void setTitle(const QString &title_) { title = title_; }
void closeEvent(QCloseEvent *event) override;
void showEvent(QShowEvent *event) override;
};