mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
UI: Refactor integration and browser docks
Use the QAction provided by QDockWidget with new Qt connection rather than creating a new one for each dock. Separate extra browser docks from extra docks, the latter is meant for plugin/integration docks.
This commit is contained in:
+28
-15
@@ -24,12 +24,28 @@ using namespace json11;
|
||||
#define RESTREAM_STREAMKEY_URL "https://api.restream.io/v2/user/streamKey"
|
||||
#define RESTREAM_SCOPE_VERSION 1
|
||||
|
||||
#define RESTREAM_CHAT_DOCK_NAME "restreamChat"
|
||||
#define RESTREAM_INFO_DOCK_NAME "restreamInfo"
|
||||
#define RESTREAM_CHANNELS_DOCK_NAME "restreamChannel"
|
||||
|
||||
static Auth::Def restreamDef = {"Restream", Auth::Type::OAuth_StreamKey};
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
RestreamAuth::RestreamAuth(const Def &d) : OAuthStreamKey(d) {}
|
||||
|
||||
RestreamAuth::~RestreamAuth()
|
||||
{
|
||||
if (!uiLoaded)
|
||||
return;
|
||||
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
|
||||
main->RemoveDockWidget(RESTREAM_CHAT_DOCK_NAME);
|
||||
main->RemoveDockWidget(RESTREAM_INFO_DOCK_NAME);
|
||||
main->RemoveDockWidget(RESTREAM_CHANNELS_DOCK_NAME);
|
||||
}
|
||||
|
||||
bool RestreamAuth::GetChannelInfo()
|
||||
try {
|
||||
std::string client_id = RESTREAM_CLIENTID;
|
||||
@@ -134,52 +150,49 @@ void RestreamAuth::LoadUI()
|
||||
QSize size = main->frameSize();
|
||||
QPoint pos = main->pos();
|
||||
|
||||
chat.reset(new BrowserDock());
|
||||
chat->setObjectName("restreamChat");
|
||||
BrowserDock *chat = new BrowserDock();
|
||||
chat->setObjectName(RESTREAM_CHAT_DOCK_NAME);
|
||||
chat->resize(420, 600);
|
||||
chat->setMinimumSize(200, 300);
|
||||
chat->setWindowTitle(QTStr("Auth.Chat"));
|
||||
chat->setAllowedAreas(Qt::AllDockWidgetAreas);
|
||||
|
||||
browser = cef->create_widget(chat.data(), url, panel_cookies);
|
||||
browser = cef->create_widget(chat, url, panel_cookies);
|
||||
chat->SetWidget(browser);
|
||||
|
||||
main->addDockWidget(Qt::RightDockWidgetArea, chat.data());
|
||||
chatMenu.reset(main->AddDockWidget(chat.data()));
|
||||
main->AddDockWidget(chat, Qt::RightDockWidgetArea);
|
||||
|
||||
/* ----------------------------------- */
|
||||
|
||||
url = "https://restream.io/titles/embed";
|
||||
|
||||
info.reset(new BrowserDock());
|
||||
info->setObjectName("restreamInfo");
|
||||
BrowserDock *info = new BrowserDock();
|
||||
info->setObjectName(RESTREAM_INFO_DOCK_NAME);
|
||||
info->resize(410, 600);
|
||||
info->setMinimumSize(200, 150);
|
||||
info->setWindowTitle(QTStr("Auth.StreamInfo"));
|
||||
info->setAllowedAreas(Qt::AllDockWidgetAreas);
|
||||
|
||||
browser = cef->create_widget(info.data(), url, panel_cookies);
|
||||
browser = cef->create_widget(info, url, panel_cookies);
|
||||
info->SetWidget(browser);
|
||||
|
||||
main->addDockWidget(Qt::LeftDockWidgetArea, info.data());
|
||||
infoMenu.reset(main->AddDockWidget(info.data()));
|
||||
main->AddDockWidget(info, Qt::LeftDockWidgetArea);
|
||||
|
||||
/* ----------------------------------- */
|
||||
|
||||
url = "https://restream.io/channel/embed";
|
||||
|
||||
channels.reset(new BrowserDock());
|
||||
channels->setObjectName("restreamChannel");
|
||||
BrowserDock *channels = new BrowserDock();
|
||||
channels->setObjectName(RESTREAM_CHANNELS_DOCK_NAME);
|
||||
channels->resize(410, 600);
|
||||
channels->setMinimumSize(410, 300);
|
||||
channels->setWindowTitle(QTStr("RestreamAuth.Channels"));
|
||||
channels->setAllowedAreas(Qt::AllDockWidgetAreas);
|
||||
|
||||
browser = cef->create_widget(channels.data(), url, panel_cookies);
|
||||
browser = cef->create_widget(channels, url, panel_cookies);
|
||||
channels->SetWidget(browser);
|
||||
|
||||
main->addDockWidget(Qt::LeftDockWidgetArea, channels.data());
|
||||
channelMenu.reset(main->AddDockWidget(channels.data()));
|
||||
main->AddDockWidget(channels, Qt::LeftDockWidgetArea);
|
||||
|
||||
/* ----------------------------------- */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user