frontend/api: Remove obs_frontend_add_dock

Deprecated since cde5545f8f (30.0).
This commit is contained in:
Sebastian Beckmann 2025-08-09 18:46:13 +02:00 committed by Ryan Foster
parent b7c399f6d8
commit 5730f86050
8 changed files with 2 additions and 155 deletions

View File

@ -462,19 +462,6 @@ Functions
---------------------------------------
.. function:: void* obs_frontend_add_dock(void *dock)
Adds a QDockWidget to the UI's Docks menu.
:param dock: QDockWidget to add/create
:return: A pointer to the added QAction
.. deprecated:: 30.0
Prefer :c:func:`obs_frontend_add_dock_by_id()` or
:c:func:`obs_frontend_add_custom_qdock()` instead.
---------------------------------------
.. function:: bool obs_frontend_add_dock_by_id(const char *id, const char *title, void *widget)
Adds a dock with the widget to the UI with a toggle in the Docks

View File

@ -332,26 +332,6 @@ void OBSStudioAPI::obs_frontend_add_tools_menu_item(const char *name, obs_fronte
QObject::connect(action, &QAction::triggered, func);
}
void *OBSStudioAPI::obs_frontend_add_dock(void *dock)
{
QDockWidget *d = static_cast<QDockWidget *>(dock);
QString name = d->objectName();
if (name.isEmpty() || main->IsDockObjectNameUsed(name)) {
blog(LOG_WARNING, "The object name of the added dock is empty or already used,"
" a temporary one will be set to avoid conflicts");
char *uuid = os_generate_uuid();
name = QT_UTF8(uuid);
bfree(uuid);
name.append("_oldExtraDock");
d->setObjectName(name);
}
return (void *)main->AddDockWidget(d);
}
bool OBSStudioAPI::obs_frontend_add_dock_by_id(const char *id, const char *title, void *widget)
{
if (main->IsDockObjectNameUsed(QT_UTF8(id))) {

View File

@ -120,8 +120,6 @@ struct OBSStudioAPI : obs_frontend_callbacks {
void obs_frontend_add_tools_menu_item(const char *name, obs_frontend_cb callback, void *private_data) override;
void *obs_frontend_add_dock(void *dock) override;
bool obs_frontend_add_dock_by_id(const char *id, const char *title, void *widget) override;
void obs_frontend_remove_dock(const char *id) override;

View File

@ -311,11 +311,6 @@ void obs_frontend_add_tools_menu_item(const char *name, obs_frontend_cb callback
c->obs_frontend_add_tools_menu_item(name, callback, private_data);
}
void *obs_frontend_add_dock(void *dock)
{
return !!callbacks_valid() ? c->obs_frontend_add_dock(dock) : nullptr;
}
bool obs_frontend_add_dock_by_id(const char *id, const char *title, void *widget)
{
return !!callbacks_valid() ? c->obs_frontend_add_dock_by_id(id, title, widget) : false;

View File

@ -149,10 +149,6 @@ typedef void (*obs_frontend_cb)(void *private_data);
EXPORT void *obs_frontend_add_tools_menu_qaction(const char *name);
EXPORT void obs_frontend_add_tools_menu_item(const char *name, obs_frontend_cb callback, void *private_data);
/* takes QDockWidget and returns QAction */
OBS_DEPRECATED
EXPORT void *obs_frontend_add_dock(void *dock);
/* takes QWidget for widget */
EXPORT bool obs_frontend_add_dock_by_id(const char *id, const char *title, void *widget);

View File

@ -58,8 +58,6 @@ struct obs_frontend_callbacks {
virtual void obs_frontend_add_tools_menu_item(const char *name, obs_frontend_cb callback,
void *private_data) = 0;
virtual void *obs_frontend_add_dock(void *dock) = 0;
virtual bool obs_frontend_add_dock_by_id(const char *id, const char *title, void *widget) = 0;
virtual void obs_frontend_remove_dock(const char *id) = 0;
virtual bool obs_frontend_add_custom_qdock(const char *id, void *dock) = 0;

View File

@ -426,8 +426,6 @@ public slots:
* -------------------------------------
*/
private:
QList<QPointer<QDockWidget>> oldExtraDocks;
QStringList oldExtraDockNames;
QPointer<QDockWidget> statsDock;
QByteArray startingDockLayout;
QStringList extraDockNames;
@ -439,7 +437,6 @@ private:
QPointer<OBSDock> controlsDock;
public:
QAction *AddDockWidget(QDockWidget *dock);
void AddDockWidget(QDockWidget *dock, Qt::DockWidgetArea area, bool extraBrowser = false);
void RemoveDockWidget(const QString &name);
bool IsDockObjectNameUsed(const QString &name);
@ -450,7 +447,6 @@ private slots:
void on_lockDocks_toggled(bool lock);
void on_sideDocks_toggled(bool side);
void RepairOldExtraDockName();
void RepairCustomExtraDockName();
/* -------------------------------------

View File

@ -21,23 +21,6 @@
#include <qt-wrappers.hpp>
void assignDockToggle(QDockWidget *dock, QAction *action)
{
auto handleWindowToggle = [action](bool vis) {
action->blockSignals(true);
action->setChecked(vis);
action->blockSignals(false);
};
auto handleMenuToggle = [dock](bool check) {
dock->blockSignals(true);
dock->setVisible(check);
dock->blockSignals(false);
};
dock->connect(dock->toggleViewAction(), &QAction::toggled, handleWindowToggle);
dock->connect(action, &QAction::toggled, handleMenuToggle);
}
void setupDockAction(QDockWidget *dock)
{
QAction *action = dock->toggleViewAction();
@ -62,19 +45,10 @@ void setupDockAction(QDockWidget *dock)
void OBSBasic::on_resetDocks_triggered(bool force)
{
/* prune deleted extra docks */
for (int i = oldExtraDocks.size() - 1; i >= 0; i--) {
if (!oldExtraDocks[i]) {
oldExtraDocks.removeAt(i);
oldExtraDockNames.removeAt(i);
}
}
#ifdef BROWSER_AVAILABLE
if ((oldExtraDocks.size() || extraDocks.size() || extraCustomDocks.size() || extraBrowserDocks.size()) &&
!force)
if ((extraDocks.size() || extraCustomDocks.size() || extraBrowserDocks.size()) && !force)
#else
if ((oldExtraDocks.size() || extraDocks.size() || extraCustomDocks.size()) && !force)
if ((extraDocks.size() || extraCustomDocks.size()) && !force)
#endif
{
QMessageBox::StandardButton button =
@ -84,17 +58,6 @@ void OBSBasic::on_resetDocks_triggered(bool force)
return;
}
/* undock/hide/center extra docks */
for (int i = oldExtraDocks.size() - 1; i >= 0; i--) {
if (oldExtraDocks[i]) {
oldExtraDocks[i]->setVisible(true);
oldExtraDocks[i]->setFloating(true);
oldExtraDocks[i]->move(frameGeometry().topLeft() + rect().center() -
oldExtraDocks[i]->rect().center());
oldExtraDocks[i]->setVisible(false);
}
}
#define RESET_DOCKLIST(dockList) \
for (int i = dockList.size() - 1; i >= 0; i--) { \
dockList[i]->setVisible(true); \
@ -168,15 +131,6 @@ void OBSBasic::on_lockDocks_toggled(bool lock)
for (int i = extraBrowserDocks.size() - 1; i >= 0; i--)
extraBrowserDocks[i]->setFeatures(features);
#endif
for (int i = oldExtraDocks.size() - 1; i >= 0; i--) {
if (!oldExtraDocks[i]) {
oldExtraDocks.removeAt(i);
oldExtraDockNames.removeAt(i);
} else {
oldExtraDocks[i]->setFeatures(features);
}
}
}
void OBSBasic::on_sideDocks_toggled(bool side)
@ -194,62 +148,6 @@ void OBSBasic::on_sideDocks_toggled(bool side)
}
}
QAction *OBSBasic::AddDockWidget(QDockWidget *dock)
{
// Prevent the object name from being changed
connect(dock, &QObject::objectNameChanged, this, &OBSBasic::RepairOldExtraDockName);
#ifdef BROWSER_AVAILABLE
QAction *action = new QAction(dock->windowTitle(), ui->menuDocks);
if (!extraBrowserMenuDocksSeparator.isNull())
ui->menuDocks->insertAction(extraBrowserMenuDocksSeparator, action);
else
ui->menuDocks->addAction(action);
#else
QAction *action = ui->menuDocks->addAction(dock->windowTitle());
#endif
action->setCheckable(true);
action->setMenuRole(QAction::NoRole);
assignDockToggle(dock, action);
oldExtraDocks.push_back(dock);
oldExtraDockNames.push_back(dock->objectName());
bool lock = ui->lockDocks->isChecked();
QDockWidget::DockWidgetFeatures features =
lock ? QDockWidget::NoDockWidgetFeatures
: (QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable |
QDockWidget::DockWidgetFloatable);
dock->setFeatures(features);
/* prune deleted docks */
for (int i = oldExtraDocks.size() - 1; i >= 0; i--) {
if (!oldExtraDocks[i]) {
oldExtraDocks.removeAt(i);
oldExtraDockNames.removeAt(i);
}
}
return action;
}
void OBSBasic::RepairOldExtraDockName()
{
QDockWidget *dock = reinterpret_cast<QDockWidget *>(sender());
int idx = oldExtraDocks.indexOf(dock);
QSignalBlocker block(dock);
if (idx == -1) {
blog(LOG_WARNING, "A dock got its object name changed");
return;
}
blog(LOG_WARNING, "The dock '%s' got its object name restored", QT_TO_UTF8(oldExtraDockNames[idx]));
dock->setObjectName(oldExtraDockNames[idx]);
}
void OBSBasic::AddDockWidget(QDockWidget *dock, Qt::DockWidgetArea area, bool extraBrowser)
{
if (dock->objectName().isEmpty())
@ -310,7 +208,6 @@ bool OBSBasic::IsDockObjectNameUsed(const QString &name)
<< "transitionsDock"
<< "controlsDock"
<< "statsDock";
list << oldExtraDockNames;
list << extraDockNames;
list << extraCustomDockNames;