界面与品牌 - 默认 UI 语言固定为英文,不再跟随系统区域设置自动切换(frontend/OBSApp.cpp),用户仍可在设置中手动切换 - 程序图标更换为 CAIIC logo:exe 图标 obs-studio.ico 及界面/托盘/About 图标 obs.png - About 窗口精简为 logo + 名称 + 版本号,移除项目介绍、赞助名单、Authors/License 标签页 - 版本号定为 1.0.0(构建参数 OBS_VERSION_OVERRIDE=1.0.0) 分辨率支持 - 移除首次启动将画布强制限制为 1920x1080 的逻辑,默认使用显示器原生分辨率 - 设置-视频 与自动配置向导新增 3840x2160 / 2560x1440 预设 - 自动配置向导性能测试上限放宽至 4K60(软硬件编码数据率上限及起始分辨率钳制) 插件 - 集成 obs-shaderfilter 2.6.0(绿幕抠图/自定义着色器滤镜),并适配新版 libobs 的 gs_image_file_ex API - 补齐缺失的源码:obs-browser、obs-websocket、libdshowcapture(含 external/capture-device-support) 工程 - 新增 .gitignore,排除 deploy/ 发布目录与构建日志
69 lines
1.7 KiB
C++
69 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <QTimer>
|
|
#include <QPointer>
|
|
#include "browser-panel.hpp"
|
|
#include "cef-headers.hpp"
|
|
|
|
#include <vector>
|
|
#include <mutex>
|
|
|
|
struct PopupWhitelistInfo {
|
|
std::string url;
|
|
QPointer<QObject> obj;
|
|
|
|
inline PopupWhitelistInfo(const std::string &url_, QObject *obj_) : url(url_), obj(obj_) {}
|
|
};
|
|
|
|
extern std::mutex popup_whitelist_mutex;
|
|
extern std::vector<PopupWhitelistInfo> popup_whitelist;
|
|
extern std::vector<PopupWhitelistInfo> forced_popups;
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
class QCefWidgetInternal : public QCefWidget {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
QCefWidgetInternal(QWidget *parent, const std::string &url, CefRefPtr<CefRequestContext> rqc);
|
|
~QCefWidgetInternal();
|
|
|
|
CefRefPtr<CefBrowser> cefBrowser;
|
|
std::string url;
|
|
std::string script;
|
|
CefRefPtr<CefRequestContext> rqc;
|
|
QTimer timer;
|
|
#ifndef __APPLE__
|
|
QPointer<QWindow> window;
|
|
QPointer<QWidget> container;
|
|
#endif
|
|
bool allowAllPopups_ = false;
|
|
|
|
virtual void resizeEvent(QResizeEvent *event) override;
|
|
virtual void showEvent(QShowEvent *event) override;
|
|
virtual QPaintEngine *paintEngine() const override;
|
|
|
|
virtual void setURL(const std::string &url) override;
|
|
virtual void setStartupScript(const std::string &script) override;
|
|
virtual void allowAllPopups(bool allow) override;
|
|
virtual void closeBrowser() override;
|
|
virtual void reloadPage() override;
|
|
virtual bool zoomPage(int direction) override;
|
|
virtual void executeJavaScript(const std::string &script) override;
|
|
|
|
void finishCloseBrowser();
|
|
void Resize();
|
|
|
|
#ifdef __linux__
|
|
private:
|
|
bool needsDeleteXdndProxy = true;
|
|
void unsetToplevelXdndProxy();
|
|
#endif
|
|
|
|
public slots:
|
|
void Init();
|
|
|
|
signals:
|
|
void readyToClose();
|
|
};
|