Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
372f7f5
libobs, UI: Add "open url" property
tytan652 May 22, 2021
64f7317
libobs: Add comments to obs-service.h
tytan652 May 22, 2021
d60d4c6
libobs: Add some missing functions to Service API
tytan652 May 22, 2021
3b33954
libobs: Add protocol to service API
tytan652 May 25, 2021
667ce79
docs: Add "open url" property
tytan652 May 22, 2021
057f328
obs-services: Add service manager and factory
tytan652 May 25, 2021
1758e17
obs-services: Add protocols list, server lists
tytan652 May 25, 2021
aa1a4f5
obs-services: Add stream key
tytan652 May 25, 2021
f249405
obs-services: Add more info and stream key buttons
tytan652 May 25, 2021
4b503d4
libobs, UI: Add "info bitrate" property
tytan652 May 25, 2021
fd5906e
libobs, UI: Add "info FPS" property
tytan652 May 25, 2021
9785fd8
obs-services: Add maximum info and ignore checkbox
tytan652 May 25, 2021
e58f530
docs: Add "info bitrate" property
tytan652 May 25, 2021
37ad62c
docs: Add "info FPS" property
tytan652 May 25, 2021
693bf77
libobs, UI: Add "info" property
tytan652 May 25, 2021
039ff27
docs: Add "info" property
tytan652 May 25, 2021
36f4cfb
obs-services: Add supported resolutions
tytan652 May 25, 2021
f215d2f
docs: Add protocol to service API
tytan652 May 25, 2021
1629596
obs-outputs: Add global protocol CMake variables
tytan652 May 27, 2021
b7ae5bc
obs-services: Add CMake protocol management
tytan652 May 27, 2021
9b13e63
WIP(UI): Add static function
tytan652 May 20, 2021
0af08e2
WIP(UI): Add CreateServicePropertyView
tytan652 May 20, 2021
ac10f99
WIP UI
tytan652 May 28, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
399 changes: 0 additions & 399 deletions UI/forms/OBSBasicSettings.ui

Large diffs are not rendered by default.

75 changes: 74 additions & 1 deletion UI/properties-view.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <QDir>
#include <QGroupBox>
#include <QObject>
#include <QDesktopServices>
#include "double-slider.hpp"
#include "slider-ignorewheel.hpp"
#include "spinbox-ignorewheel.hpp"
Expand Down Expand Up @@ -1397,6 +1398,51 @@ void OBSPropertiesView::AddGroup(obs_property_t *prop, QFormLayout *layout)
connect(groupBox, SIGNAL(toggled(bool)), info, SLOT(ControlChanged()));
}

QWidget *OBSPropertiesView::AddOpenUrl(obs_property_t *prop)
{
const char *name = obs_property_name(prop);
const char *desc = obs_property_description(prop);
const char *val = obs_data_get_string(settings, name);

QPushButton *button = new QPushButton(QT_UTF8(desc));
button->setProperty("themeID", "settingsButtons");
button->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
QUrl qurl = QString::fromUtf8(val);
connect(button, &QPushButton::clicked, this,
[=]() { this->OpenUrl(qurl); });
return NewWidget(prop, button, SIGNAL(clicked()));
}

QWidget *OBSPropertiesView::AddInfo(obs_property_t *prop)
{
const char *desc = obs_property_description(prop);

QLabel *label = new QLabel(QT_UTF8(desc));
return NewWidget(prop, label, SIGNAL(linkActivated(QString)));
}

QWidget *OBSPropertiesView::AddInfoBitrate(obs_property_t *prop)
{
const char *name = obs_property_name(prop);
const char *desc = obs_property_description(prop);
int val = obs_data_get_int(settings, name);

QLabel *label = new QLabel(QT_UTF8(desc) + " " + QString::number(val) +
" kbps");
return NewWidget(prop, label, SIGNAL(linkActivated(QString)));
}

QWidget *OBSPropertiesView::AddInfoFPS(obs_property_t *prop)
{
const char *name = obs_property_name(prop);
const char *desc = obs_property_description(prop);
int val = obs_data_get_int(settings, name);

QLabel *label =
new QLabel(QT_UTF8(desc) + " " + QString::number(val) + " FPS");
return NewWidget(prop, label, SIGNAL(linkActivated(QString)));
}

void OBSPropertiesView::AddProperty(obs_property_t *property,
QFormLayout *layout)
{
Expand Down Expand Up @@ -1451,13 +1497,27 @@ void OBSPropertiesView::AddProperty(obs_property_t *property,
break;
case OBS_PROPERTY_COLOR_ALPHA:
AddColorAlpha(property, layout, label);
break;
case OBS_PROPERTY_OPEN_URL:
widget = AddOpenUrl(property);
break;
case OBS_PROPERTY_INFO:
widget = AddInfo(property);
break;
case OBS_PROPERTY_INFO_BITRATE:
widget = AddInfoBitrate(property);
break;
case OBS_PROPERTY_INFO_FPS:
widget = AddInfoFPS(property);
}

if (widget && !obs_property_enabled(property))
widget->setEnabled(false);

if (!label && type != OBS_PROPERTY_BOOL &&
type != OBS_PROPERTY_BUTTON && type != OBS_PROPERTY_GROUP)
type != OBS_PROPERTY_BUTTON && type != OBS_PROPERTY_GROUP &&
type != OBS_PROPERTY_OPEN_URL && type != OBS_PROPERTY_INFO &&
type != OBS_PROPERTY_INFO_BITRATE && type != OBS_PROPERTY_INFO_FPS)
label = new QLabel(QT_UTF8(obs_property_description(property)));

if (warning && label) //TODO: select color based on background color
Expand Down Expand Up @@ -1529,6 +1589,11 @@ void OBSPropertiesView::SignalChanged()
emit Changed();
}

void OBSPropertiesView::OpenUrl(QUrl url)
{
QDesktopServices::openUrl(url);
}

static bool FrameRateChangedVariant(const QVariant &variant,
media_frames_per_second &fps,
obs_data_item_t *&obj,
Expand Down Expand Up @@ -1950,6 +2015,14 @@ void WidgetInfo::ControlChanged()
if (!ColorAlphaChanged(setting))
return;
break;
case OBS_PROPERTY_OPEN_URL:
return;
case OBS_PROPERTY_INFO:
return;
case OBS_PROPERTY_INFO_BITRATE:
return;
case OBS_PROPERTY_INFO_FPS:
return;
}

if (!recently_updated) {
Expand Down
6 changes: 6 additions & 0 deletions UI/properties-view.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,11 @@ class OBSPropertiesView : public VScrollArea {

void AddGroup(obs_property_t *prop, QFormLayout *layout);

QWidget *AddOpenUrl(obs_property_t *prop);
QWidget *AddInfo(obs_property_t *prop);
QWidget *AddInfoBitrate(obs_property_t *prop);
QWidget *AddInfoFPS(obs_property_t *prop);

void AddProperty(obs_property_t *property, QFormLayout *layout);

void resizeEvent(QResizeEvent *event) override;
Expand All @@ -145,6 +150,7 @@ public slots:
void ReloadProperties();
void RefreshProperties();
void SignalChanged();
void OpenUrl(QUrl url);

signals:
void PropertiesResized();
Expand Down
Loading