UI: Add Patreon contributors to About dialog
parent
ce3abe52bf
commit
acc8419295
|
@ -1,173 +1,211 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>OBSAbout</class>
|
<class>OBSAbout</class>
|
||||||
<widget class="QDialog" name="OBSAbout">
|
<widget class="QWidget" name="OBSAbout">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>792</width>
|
<width>840</width>
|
||||||
<height>389</height>
|
<height>519</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>About</string>
|
<string>About</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QLabel" name="icon">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<property name="geometry">
|
<property name="leftMargin">
|
||||||
<rect>
|
<number>0</number>
|
||||||
<x>30</x>
|
|
||||||
<y>30</y>
|
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="topMargin">
|
||||||
<size>
|
<number>0</number>
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="rightMargin">
|
||||||
<size>
|
<number>0</number>
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="bottomMargin">
|
||||||
<string/>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="pixmap">
|
<item>
|
||||||
<pixmap>:res/images/obs.png</pixmap>
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
</property>
|
<property name="spacing">
|
||||||
<property name="scaledContents">
|
<number>30</number>
|
||||||
<bool>true</bool>
|
</property>
|
||||||
</property>
|
<property name="leftMargin">
|
||||||
</widget>
|
<number>30</number>
|
||||||
<widget class="QWidget" name="verticalLayoutWidget">
|
</property>
|
||||||
<property name="geometry">
|
<property name="topMargin">
|
||||||
<rect>
|
<number>10</number>
|
||||||
<x>320</x>
|
</property>
|
||||||
<y>30</y>
|
<property name="rightMargin">
|
||||||
<width>441</width>
|
<number>6</number>
|
||||||
<height>261</height>
|
</property>
|
||||||
</rect>
|
<property name="bottomMargin">
|
||||||
</property>
|
<number>6</number>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
</property>
|
||||||
<property name="spacing">
|
<item>
|
||||||
<number>0</number>
|
<widget class="QLabel" name="icon">
|
||||||
</property>
|
<property name="minimumSize">
|
||||||
<item>
|
<size>
|
||||||
<widget class="QLabel" name="name">
|
<width>256</width>
|
||||||
<property name="text">
|
<height>256</height>
|
||||||
<string>OBS Studio</string>
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>256</width>
|
||||||
|
<height>256</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap>:res/images/obs.png</pixmap>
|
||||||
|
</property>
|
||||||
|
<property name="scaledContents">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="name">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">OBS Studio</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="version">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Version</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="info">
|
||||||
|
<property name="text">
|
||||||
|
<string>About.Info</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="contribute">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Contribute</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="donate">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Donate</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="getInvolved">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Get Involved</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTextBrowser" name="textBrowser">
|
||||||
|
<property name="openExternalLinks">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget" native="true">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>60</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="leftMargin">
|
||||||
</item>
|
<number>0</number>
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="version">
|
|
||||||
<property name="text">
|
|
||||||
<string>Version</string>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="topMargin">
|
||||||
</item>
|
<number>0</number>
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="info">
|
|
||||||
<property name="text">
|
|
||||||
<string>About.Info</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="rightMargin">
|
||||||
<bool>true</bool>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="bottomMargin">
|
||||||
</item>
|
<number>0</number>
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="contribute">
|
|
||||||
<property name="text">
|
|
||||||
<string>Contribute</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<item>
|
||||||
<bool>true</bool>
|
<widget class="ClickableLabel" name="about">
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<string>About</string>
|
||||||
</item>
|
</property>
|
||||||
<item>
|
<property name="alignment">
|
||||||
<widget class="QLabel" name="donate">
|
<set>Qt::AlignCenter</set>
|
||||||
<property name="text">
|
</property>
|
||||||
<string>Donate</string>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
</widget>
|
<item>
|
||||||
</item>
|
<widget class="ClickableLabel" name="authors">
|
||||||
<item>
|
<property name="text">
|
||||||
<widget class="QLabel" name="getInvolved">
|
<string>Authors</string>
|
||||||
<property name="text">
|
</property>
|
||||||
<string>Get Involved</string>
|
<property name="alignment">
|
||||||
</property>
|
<set>Qt::AlignCenter</set>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
</widget>
|
||||||
<item>
|
</item>
|
||||||
<widget class="QTextBrowser" name="textBrowser"/>
|
<item>
|
||||||
</item>
|
<widget class="ClickableLabel" name="license">
|
||||||
<item>
|
<property name="text">
|
||||||
<spacer name="verticalSpacer">
|
<string>License</string>
|
||||||
<property name="orientation">
|
</property>
|
||||||
<enum>Qt::Vertical</enum>
|
<property name="alignment">
|
||||||
</property>
|
<set>Qt::AlignCenter</set>
|
||||||
<property name="sizeHint" stdset="0">
|
</property>
|
||||||
<size>
|
</widget>
|
||||||
<width>20</width>
|
</item>
|
||||||
<height>40</height>
|
</layout>
|
||||||
</size>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
</spacer>
|
</layout>
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="horizontalLayoutWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>320</y>
|
|
||||||
<width>791</width>
|
|
||||||
<height>71</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="ClickableLabel" name="about">
|
|
||||||
<property name="text">
|
|
||||||
<string>About</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="ClickableLabel" name="authors">
|
|
||||||
<property name="text">
|
|
||||||
<string>Authors</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="ClickableLabel" name="license">
|
|
||||||
<property name="text">
|
|
||||||
<string>License</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
#include "window-basic-about.hpp"
|
#include "window-basic-about.hpp"
|
||||||
#include "window-basic-main.hpp"
|
#include "window-basic-main.hpp"
|
||||||
#include "qt-wrappers.hpp"
|
#include "qt-wrappers.hpp"
|
||||||
|
#include "remote-text.hpp"
|
||||||
#include <util/util.hpp>
|
#include <util/util.hpp>
|
||||||
#include <util/platform.h>
|
#include <util/platform.h>
|
||||||
#include <platform.hpp>
|
#include <platform.hpp>
|
||||||
|
#include <json11.hpp>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
using namespace json11;
|
||||||
|
|
||||||
OBSAbout::OBSAbout(QWidget *parent)
|
OBSAbout::OBSAbout(QWidget *parent)
|
||||||
: QDialog(parent),
|
: QDialog(parent),
|
||||||
|
@ -11,8 +16,6 @@ OBSAbout::OBSAbout(QWidget *parent)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
setFixedSize(size());
|
|
||||||
|
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||||
|
|
||||||
QString bitness;
|
QString bitness;
|
||||||
|
@ -34,12 +37,12 @@ OBSAbout::OBSAbout(QWidget *parent)
|
||||||
ui->version->setText(ver + bitness);
|
ui->version->setText(ver + bitness);
|
||||||
|
|
||||||
ui->contribute->setText(QTStr("About.Contribute"));
|
ui->contribute->setText(QTStr("About.Contribute"));
|
||||||
ui->donate->setText("<a href='https://obsproject.com/donate'>" +
|
ui->donate->setText(" <a href='https://obsproject.com/donate'>" +
|
||||||
QTStr("About.Donate") + "</a>");
|
QTStr("About.Donate") + "</a>");
|
||||||
ui->donate->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
ui->donate->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
||||||
ui->donate->setOpenExternalLinks(true);
|
ui->donate->setOpenExternalLinks(true);
|
||||||
|
|
||||||
ui->getInvolved->setText("<a href='https://github.com/obsproject/obs-studio/blob/master/CONTRIBUTING.rst'>" +
|
ui->getInvolved->setText(" <a href='https://github.com/obsproject/obs-studio/blob/master/CONTRIBUTING.rst'>" +
|
||||||
QTStr("About.GetInvolved") + "</a>");
|
QTStr("About.GetInvolved") + "</a>");
|
||||||
ui->getInvolved->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
ui->getInvolved->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
||||||
ui->getInvolved->setOpenExternalLinks(true);
|
ui->getInvolved->setOpenExternalLinks(true);
|
||||||
|
@ -48,8 +51,6 @@ OBSAbout::OBSAbout(QWidget *parent)
|
||||||
ui->authors->setText("<a href='#'>" + QTStr("About.Authors") + "</a>");
|
ui->authors->setText("<a href='#'>" + QTStr("About.Authors") + "</a>");
|
||||||
ui->license->setText("<a href='#'>" + QTStr("About.License") + "</a>");
|
ui->license->setText("<a href='#'>" + QTStr("About.License") + "</a>");
|
||||||
|
|
||||||
ui->textBrowser->hide();
|
|
||||||
|
|
||||||
ui->name->setProperty("themeID", "aboutName");
|
ui->name->setProperty("themeID", "aboutName");
|
||||||
ui->version->setProperty("themeID", "aboutVersion");
|
ui->version->setProperty("themeID", "aboutVersion");
|
||||||
ui->about->setProperty("themeID", "aboutHLayout");
|
ui->about->setProperty("themeID", "aboutHLayout");
|
||||||
|
@ -60,15 +61,65 @@ OBSAbout::OBSAbout(QWidget *parent)
|
||||||
connect(ui->about, SIGNAL(clicked()), this, SLOT(ShowAbout()));
|
connect(ui->about, SIGNAL(clicked()), this, SLOT(ShowAbout()));
|
||||||
connect(ui->authors, SIGNAL(clicked()), this, SLOT(ShowAuthors()));
|
connect(ui->authors, SIGNAL(clicked()), this, SLOT(ShowAuthors()));
|
||||||
connect(ui->license, SIGNAL(clicked()), this, SLOT(ShowLicense()));
|
connect(ui->license, SIGNAL(clicked()), this, SLOT(ShowLicense()));
|
||||||
|
|
||||||
|
QPointer<OBSAbout> about(this);
|
||||||
|
|
||||||
|
OBSBasic *main = OBSBasic::Get();
|
||||||
|
if (main->patronJson.empty() && !main->patronJsonThread) {
|
||||||
|
RemoteTextThread *thread = new RemoteTextThread(
|
||||||
|
"https://obsproject.com/patreon/about-box.json",
|
||||||
|
"application/json");
|
||||||
|
QObject::connect(thread, &RemoteTextThread::Result,
|
||||||
|
main, &OBSBasic::UpdatePatronJson);
|
||||||
|
QObject::connect(thread, SIGNAL(Result(const QString &, const QString &)),
|
||||||
|
this, SLOT(ShowAbout()));
|
||||||
|
main->patronJsonThread.reset(thread);
|
||||||
|
thread->start();
|
||||||
|
} else {
|
||||||
|
ShowAbout();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBSAbout::ShowAbout()
|
void OBSAbout::ShowAbout()
|
||||||
{
|
{
|
||||||
ui->textBrowser->hide();
|
OBSBasic *main = OBSBasic::Get();
|
||||||
ui->info->show();
|
|
||||||
ui->contribute->show();
|
if (main->patronJson.empty())
|
||||||
ui->donate->show();
|
return;
|
||||||
ui->getInvolved->show();
|
|
||||||
|
std::string error;
|
||||||
|
Json json = Json::parse(main->patronJson, error);
|
||||||
|
const Json::array &patrons = json.array_items();
|
||||||
|
std::stringstream text;
|
||||||
|
|
||||||
|
text << "<h1>Top Patreon contributors:</h1>";
|
||||||
|
text << "<p style=\"font-size:16px;\">";
|
||||||
|
bool first = true;
|
||||||
|
bool top = true;
|
||||||
|
|
||||||
|
for (const Json &patron : patrons) {
|
||||||
|
std::string name = patron["name"].string_value();
|
||||||
|
std::string link = patron["link"].string_value();
|
||||||
|
int amount = patron["amount"].int_value();
|
||||||
|
|
||||||
|
if (top && amount < 10000) {
|
||||||
|
text << "</p>";
|
||||||
|
top = false;
|
||||||
|
} else if (!first) {
|
||||||
|
text << "<br/>";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!link.empty())
|
||||||
|
text << "<a href=\"" << link << "\">";
|
||||||
|
text << name;
|
||||||
|
if (!link.empty())
|
||||||
|
text << "</a>";
|
||||||
|
|
||||||
|
if (first)
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->textBrowser->setHtml(QT_UTF8(text.str().c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBSAbout::ShowAuthors()
|
void OBSAbout::ShowAuthors()
|
||||||
|
@ -92,12 +143,6 @@ void OBSAbout::ShowAuthors()
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->textBrowser->setPlainText(QT_UTF8(text));
|
ui->textBrowser->setPlainText(QT_UTF8(text));
|
||||||
|
|
||||||
ui->info->hide();
|
|
||||||
ui->contribute->hide();
|
|
||||||
ui->donate->hide();
|
|
||||||
ui->getInvolved->hide();
|
|
||||||
ui->textBrowser->show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBSAbout::ShowLicense()
|
void OBSAbout::ShowLicense()
|
||||||
|
@ -119,10 +164,4 @@ void OBSAbout::ShowLicense()
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->textBrowser->setPlainText(QT_UTF8(text));
|
ui->textBrowser->setPlainText(QT_UTF8(text));
|
||||||
|
|
||||||
ui->info->hide();
|
|
||||||
ui->contribute->hide();
|
|
||||||
ui->donate->hide();
|
|
||||||
ui->getInvolved->hide();
|
|
||||||
ui->textBrowser->show();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ class OBSAbout : public QDialog {
|
||||||
public:
|
public:
|
||||||
explicit OBSAbout(QWidget *parent = 0);
|
explicit OBSAbout(QWidget *parent = 0);
|
||||||
|
|
||||||
private:
|
|
||||||
std::unique_ptr<Ui::OBSAbout> ui;
|
std::unique_ptr<Ui::OBSAbout> ui;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
|
@ -7312,3 +7312,11 @@ bool SceneRenameDelegate::eventFilter(QObject *editor, QEvent *event)
|
||||||
|
|
||||||
return QStyledItemDelegate::eventFilter(editor, event);
|
return QStyledItemDelegate::eventFilter(editor, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OBSBasic::UpdatePatronJson(const QString &text, const QString &error)
|
||||||
|
{
|
||||||
|
if (!error.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
patronJson = QT_TO_UTF8(text);
|
||||||
|
}
|
||||||
|
|
|
@ -114,6 +114,7 @@ private:
|
||||||
class OBSBasic : public OBSMainWindow {
|
class OBSBasic : public OBSMainWindow {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
friend class OBSAbout;
|
||||||
friend class OBSBasicPreview;
|
friend class OBSBasicPreview;
|
||||||
friend class OBSBasicStatusBar;
|
friend class OBSBasicStatusBar;
|
||||||
friend class OBSBasicSourceSelect;
|
friend class OBSBasicSourceSelect;
|
||||||
|
@ -234,6 +235,9 @@ private:
|
||||||
QPointer<QVBoxLayout> programLayout;
|
QPointer<QVBoxLayout> programLayout;
|
||||||
QPointer<QLabel> programLabel;
|
QPointer<QLabel> programLabel;
|
||||||
|
|
||||||
|
QScopedPointer<QThread> patronJsonThread;
|
||||||
|
std::string patronJson;
|
||||||
|
|
||||||
void UpdateMultiviewProjectorMenu();
|
void UpdateMultiviewProjectorMenu();
|
||||||
|
|
||||||
void DrawBackdrop(float cx, float cy);
|
void DrawBackdrop(float cx, float cy);
|
||||||
|
@ -463,6 +467,8 @@ public slots:
|
||||||
bool create_new,
|
bool create_new,
|
||||||
const QString &name = QString());
|
const QString &name = QString());
|
||||||
|
|
||||||
|
void UpdatePatronJson(const QString &text, const QString &error);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void AddSceneItem(OBSSceneItem item);
|
void AddSceneItem(OBSSceneItem item);
|
||||||
void AddScene(OBSSource source);
|
void AddScene(OBSSource source);
|
||||||
|
|
Loading…
Reference in New Issue