mirror of
https://github.com/Aitum/obs-aitum-multistream.git
synced 2024-11-22 02:12:40 +01:00
Abstract layout stuff + clean up layout
This commit is contained in:
parent
3dd93d7572
commit
ed3e9ef508
@ -63,11 +63,15 @@ QLabel *generateFormLabel(std::string text) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Helper for generating output name field
|
// Helper for generating output name field
|
||||||
QLineEdit *OutputDialog::generateOutputNameField(std::string text, QPushButton *confirmButton) {
|
QLineEdit *OutputDialog::generateOutputNameField(std::string text, QPushButton *confirmButton, bool edit) {
|
||||||
auto field = new QLineEdit;
|
auto field = new QLineEdit;
|
||||||
field->setText(QString::fromUtf8(obs_module_text(text.c_str())));
|
field->setText(QString::fromUtf8(obs_module_text(text.c_str())));
|
||||||
field->setStyleSheet("padding: 4px 8px;");
|
field->setStyleSheet("padding: 4px 8px;");
|
||||||
|
|
||||||
|
if (edit) { // edit mode, set field value from output value
|
||||||
|
field->setText(outputName);
|
||||||
|
}
|
||||||
|
|
||||||
connect(field, &QLineEdit::textEdited, [this, field, confirmButton] {
|
connect(field, &QLineEdit::textEdited, [this, field, confirmButton] {
|
||||||
outputName = field->text();
|
outputName = field->text();
|
||||||
validateOutputs(confirmButton);
|
validateOutputs(confirmButton);
|
||||||
@ -77,11 +81,15 @@ QLineEdit *OutputDialog::generateOutputNameField(std::string text, QPushButton *
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Helper for generating output server field
|
// Helper for generating output server field
|
||||||
QLineEdit *OutputDialog::generateOutputServerField(QPushButton *confirmButton, bool locked) {
|
QLineEdit *OutputDialog::generateOutputServerField(QPushButton *confirmButton, bool locked, bool edit) {
|
||||||
auto field = new QLineEdit;
|
auto field = new QLineEdit;
|
||||||
field->setStyleSheet("padding: 4px 8px;");
|
field->setStyleSheet("padding: 4px 8px;");
|
||||||
field->setDisabled(locked);
|
field->setDisabled(locked);
|
||||||
|
|
||||||
|
if (edit) { // edit mode, set field value from output value
|
||||||
|
field->setText(outputServer);
|
||||||
|
}
|
||||||
|
|
||||||
if (!locked) {
|
if (!locked) {
|
||||||
connect(field, &QLineEdit::textEdited, [this, field, confirmButton] {
|
connect(field, &QLineEdit::textEdited, [this, field, confirmButton] {
|
||||||
outputServer = field->text();
|
outputServer = field->text();
|
||||||
@ -134,10 +142,14 @@ QComboBox *OutputDialog::generateOutputServerCombo(std::string service, QPushBut
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Helper for generating output key field
|
// Helper for generating output key field
|
||||||
QLineEdit *OutputDialog::generateOutputKeyField(QPushButton *confirmButton) {
|
QLineEdit *OutputDialog::generateOutputKeyField(QPushButton *confirmButton, bool edit) {
|
||||||
auto field = new QLineEdit;
|
auto field = new QLineEdit;
|
||||||
field->setStyleSheet("padding: 4px 8px;");
|
field->setStyleSheet("padding: 4px 8px;");
|
||||||
|
|
||||||
|
if (edit) { // edit mode, set field value from output value
|
||||||
|
field->setText(outputKey);
|
||||||
|
}
|
||||||
|
|
||||||
connect(field, &QLineEdit::textEdited, [this, field, confirmButton] {
|
connect(field, &QLineEdit::textEdited, [this, field, confirmButton] {
|
||||||
outputKey = field->text();
|
outputKey = field->text();
|
||||||
validateOutputs(confirmButton);
|
validateOutputs(confirmButton);
|
||||||
@ -146,6 +158,24 @@ QLineEdit *OutputDialog::generateOutputKeyField(QPushButton *confirmButton) {
|
|||||||
return field;
|
return field;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Helper for generating wizard button layout
|
||||||
|
QHBoxLayout *OutputDialog::generateWizardButtonLayout(QPushButton *confirmButton, QPushButton *serviceButton, bool edit) {
|
||||||
|
auto layout = new QHBoxLayout;
|
||||||
|
layout->setSpacing(0);
|
||||||
|
layout->setContentsMargins(0,0,0,0);
|
||||||
|
|
||||||
|
if (!edit && serviceButton != nullptr) { // Not edit mode and we have a service (back) button
|
||||||
|
layout->addWidget(serviceButton, 1);
|
||||||
|
layout->addStretch(1);
|
||||||
|
|
||||||
|
layout->addWidget(confirmButton, 0, Qt::AlignRight);
|
||||||
|
} else { // edit mode, push the button to the right
|
||||||
|
layout->addWidget(confirmButton, 0, Qt::AlignRight);
|
||||||
|
}
|
||||||
|
|
||||||
|
return layout;
|
||||||
|
}
|
||||||
|
|
||||||
// Helper for generating QPushButtons w/ style
|
// Helper for generating QPushButtons w/ style
|
||||||
QPushButton *generateButton(QString text) {
|
QPushButton *generateButton(QString text) {
|
||||||
auto button = new QPushButton;
|
auto button = new QPushButton;
|
||||||
@ -156,6 +186,18 @@ QPushButton *generateButton(QString text) {
|
|||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Helper for generating back button
|
||||||
|
QPushButton *OutputDialog::generateBackButton() {
|
||||||
|
auto button = generateButton(QString("< Back"));
|
||||||
|
|
||||||
|
connect(button, &QPushButton::clicked, [this] {
|
||||||
|
stackedWidget->setCurrentIndex(0);
|
||||||
|
resetOutputs();
|
||||||
|
});
|
||||||
|
|
||||||
|
return button;
|
||||||
|
}
|
||||||
|
|
||||||
QToolButton *OutputDialog::selectionButton(std::string title, QIcon icon, int selectionStep) {
|
QToolButton *OutputDialog::selectionButton(std::string title, QIcon icon, int selectionStep) {
|
||||||
auto button = new QToolButton;
|
auto button = new QToolButton;
|
||||||
|
|
||||||
@ -365,11 +407,11 @@ QWidget *OutputDialog::WizardInfoKick(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("KickOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("KickOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server field
|
// Server field
|
||||||
auto serverSelection = generateOutputServerField(confirmButton, true);
|
auto serverSelection = generateOutputServerField(confirmButton, true, edit);
|
||||||
serverSelection->setText("rtmps://fa723fc1b171.global-contribute.live-video.net");
|
serverSelection->setText("rtmps://fa723fc1b171.global-contribute.live-video.net");
|
||||||
formLayout->addRow(generateFormLabel("KickServer"), serverSelection);
|
formLayout->addRow(generateFormLabel("KickServer"), serverSelection);
|
||||||
|
|
||||||
@ -377,7 +419,7 @@ QWidget *OutputDialog::WizardInfoKick(bool edit) {
|
|||||||
formLayout->addWidget(generateInfoLabel("KickServerInfo"));
|
formLayout->addWidget(generateInfoLabel("KickServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("KickStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("KickStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -391,32 +433,19 @@ QWidget *OutputDialog::WizardInfoKick(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -431,14 +460,6 @@ QWidget *OutputDialog::WizardInfoKick(bool edit) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
serverSelection->setText(outputServer);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -467,18 +488,18 @@ QWidget *OutputDialog::WizardInfoYouTube(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("YouTubeOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("YouTubeOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server selection
|
// Server selection
|
||||||
auto serverSelection = generateOutputServerCombo("YouTube - RTMPS", confirmButton);
|
auto serverSelection = generateOutputServerCombo("YouTube - RTMPS", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("YouTubeServer"), serverSelection);
|
formLayout->addRow(generateFormLabel("YouTubeServer"), serverSelection);
|
||||||
|
|
||||||
// Server info
|
// Server info
|
||||||
formLayout->addWidget(generateInfoLabel("YouTubeServerInfo"));
|
formLayout->addWidget(generateInfoLabel("YouTubeServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("YouTubeStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("YouTubeStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -492,32 +513,19 @@ QWidget *OutputDialog::WizardInfoYouTube(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -531,13 +539,7 @@ QWidget *OutputDialog::WizardInfoYouTube(bool edit) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -566,18 +568,18 @@ QWidget *OutputDialog::WizardInfoTwitter(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("TwitterOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("TwitterOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server selection
|
// Server selection
|
||||||
auto serverSelection = generateOutputServerCombo("Twitter", confirmButton);
|
auto serverSelection = generateOutputServerCombo("Twitter", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("TwitterServer"), serverSelection);
|
formLayout->addRow(generateFormLabel("TwitterServer"), serverSelection);
|
||||||
|
|
||||||
// Server info
|
// Server info
|
||||||
formLayout->addWidget(generateInfoLabel("TwitterServerInfo"));
|
formLayout->addWidget(generateInfoLabel("TwitterServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("TwitterStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("TwitterStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -591,32 +593,19 @@ QWidget *OutputDialog::WizardInfoTwitter(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -631,12 +620,6 @@ QWidget *OutputDialog::WizardInfoTwitter(bool edit) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -667,18 +650,18 @@ QWidget *OutputDialog::WizardInfoUnknown(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("CustomOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("CustomOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server field
|
// Server field
|
||||||
auto serverSelection = generateOutputServerField(confirmButton, false);
|
auto serverSelection = generateOutputServerField(confirmButton, false, edit);
|
||||||
formLayout->addRow(generateFormLabel("CustomServer"), serverSelection);
|
formLayout->addRow(generateFormLabel("CustomServer"), serverSelection);
|
||||||
|
|
||||||
// Server info
|
// Server info
|
||||||
formLayout->addWidget(generateInfoLabel("CustomServerInfo"));
|
formLayout->addWidget(generateInfoLabel("CustomServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("CustomStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("CustomStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -692,32 +675,19 @@ QWidget *OutputDialog::WizardInfoUnknown(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -732,13 +702,6 @@ QWidget *OutputDialog::WizardInfoUnknown(bool edit) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
serverSelection->setText(outputServer);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -767,7 +730,7 @@ QWidget *OutputDialog::WizardInfoTwitch(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("TwitchOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("TwitchOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server selection
|
// Server selection
|
||||||
@ -778,7 +741,7 @@ QWidget *OutputDialog::WizardInfoTwitch(bool edit) {
|
|||||||
formLayout->addWidget(generateInfoLabel("TwitchServerInfo"));
|
formLayout->addWidget(generateInfoLabel("TwitchServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("TwitchStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("TwitchStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -792,32 +755,19 @@ QWidget *OutputDialog::WizardInfoTwitch(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -833,12 +783,6 @@ QWidget *OutputDialog::WizardInfoTwitch(bool edit) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -869,11 +813,11 @@ QWidget *OutputDialog::WizardInfoTrovo(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("TrovoOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("TrovoOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server field
|
// Server field
|
||||||
auto serverSelection = generateOutputServerField(confirmButton, true);
|
auto serverSelection = generateOutputServerField(confirmButton, true, edit);
|
||||||
serverSelection->setText("rtmp://livepush.trovo.live/live/");
|
serverSelection->setText("rtmp://livepush.trovo.live/live/");
|
||||||
|
|
||||||
|
|
||||||
@ -883,7 +827,7 @@ QWidget *OutputDialog::WizardInfoTrovo(bool edit) {
|
|||||||
formLayout->addWidget(generateInfoLabel("TrovoServerInfo"));
|
formLayout->addWidget(generateInfoLabel("TrovoServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("TrovoStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("TrovoStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -897,32 +841,19 @@ QWidget *OutputDialog::WizardInfoTrovo(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -937,13 +868,6 @@ QWidget *OutputDialog::WizardInfoTrovo(bool edit) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
serverSelection->setText(outputServer);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -974,18 +898,18 @@ QWidget *OutputDialog::WizardInfoTikTok(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("TikTokOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("TikTokOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server field
|
// Server field
|
||||||
auto serverSelection = generateOutputServerField(confirmButton, false);
|
auto serverSelection = generateOutputServerField(confirmButton, false, edit);
|
||||||
formLayout->addRow(generateFormLabel("TikTokServer"), serverSelection);
|
formLayout->addRow(generateFormLabel("TikTokServer"), serverSelection);
|
||||||
|
|
||||||
// Server info
|
// Server info
|
||||||
formLayout->addWidget(generateInfoLabel("TikTokServerInfo"));
|
formLayout->addWidget(generateInfoLabel("TikTokServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("TikTokStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("TikTokStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -999,32 +923,19 @@ QWidget *OutputDialog::WizardInfoTikTok(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -1039,14 +950,6 @@ QWidget *OutputDialog::WizardInfoTikTok(bool edit) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
serverSelection->setText(outputServer);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1077,11 +980,11 @@ QWidget *OutputDialog::WizardInfoFacebook(bool edit) {
|
|||||||
formLayout->setSpacing(12);
|
formLayout->setSpacing(12);
|
||||||
|
|
||||||
// Output name
|
// Output name
|
||||||
auto outputNameField = generateOutputNameField("FacebookOutput", confirmButton);
|
auto outputNameField = generateOutputNameField("FacebookOutput", confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
formLayout->addRow(generateFormLabel("OutputName"), outputNameField);
|
||||||
|
|
||||||
// Server field
|
// Server field
|
||||||
auto serverSelection = generateOutputServerField(confirmButton, true);
|
auto serverSelection = generateOutputServerField(confirmButton, true, edit);
|
||||||
serverSelection->setText("rtmps://rtmp-api.facebook.com:443/rtmp/");
|
serverSelection->setText("rtmps://rtmp-api.facebook.com:443/rtmp/");
|
||||||
|
|
||||||
formLayout->addRow(generateFormLabel("FacebookServer"), serverSelection);
|
formLayout->addRow(generateFormLabel("FacebookServer"), serverSelection);
|
||||||
@ -1090,7 +993,7 @@ QWidget *OutputDialog::WizardInfoFacebook(bool edit) {
|
|||||||
formLayout->addWidget(generateInfoLabel("FacebookServerInfo"));
|
formLayout->addWidget(generateInfoLabel("FacebookServerInfo"));
|
||||||
|
|
||||||
// Server key
|
// Server key
|
||||||
auto outputKeyField = generateOutputKeyField(confirmButton);
|
auto outputKeyField = generateOutputKeyField(confirmButton, edit);
|
||||||
formLayout->addRow(generateFormLabel("FacebookStreamKey"), outputKeyField);
|
formLayout->addRow(generateFormLabel("FacebookStreamKey"), outputKeyField);
|
||||||
|
|
||||||
// Server key info
|
// Server key info
|
||||||
@ -1104,32 +1007,19 @@ QWidget *OutputDialog::WizardInfoFacebook(bool edit) {
|
|||||||
|
|
||||||
pageLayout->addLayout(contentLayout);
|
pageLayout->addLayout(contentLayout);
|
||||||
|
|
||||||
// Controls
|
|
||||||
auto controlsLayout = new QHBoxLayout;
|
|
||||||
controlsLayout->setSpacing(12);
|
|
||||||
|
|
||||||
// back button
|
// back button
|
||||||
if (!edit) {
|
auto serviceButton = edit ? nullptr : generateBackButton();
|
||||||
auto serviceButton = generateButton(QString("< Back"));
|
|
||||||
|
// Controls layout
|
||||||
connect(serviceButton, &QPushButton::clicked, [this] {
|
auto controlsLayout = generateWizardButtonLayout(confirmButton, serviceButton, edit);
|
||||||
stackedWidget->setCurrentIndex(0);
|
|
||||||
resetOutputs();
|
|
||||||
});
|
|
||||||
|
|
||||||
controlsLayout->addWidget(serviceButton, 0);
|
|
||||||
controlsLayout->addStretch(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// confirm button (initialised above so we can set state)
|
// confirm button (initialised above so we can set state)
|
||||||
connect(confirmButton, &QPushButton::clicked, [this] {
|
connect(confirmButton, &QPushButton::clicked, [this] {
|
||||||
acceptOutputs();
|
acceptOutputs();
|
||||||
});
|
});
|
||||||
|
|
||||||
controlsLayout->addWidget(confirmButton, 0);
|
|
||||||
|
|
||||||
// Hook it all together
|
// Hook it all together
|
||||||
pageLayout->addLayout(controlsLayout);
|
pageLayout->addLayout(controlsLayout, 1);
|
||||||
page->setLayout(pageLayout);
|
page->setLayout(pageLayout);
|
||||||
|
|
||||||
// Defaults for when we're changed to
|
// Defaults for when we're changed to
|
||||||
@ -1144,12 +1034,5 @@ QWidget *OutputDialog::WizardInfoFacebook(bool edit) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit changes
|
|
||||||
if (edit) {
|
|
||||||
outputNameField->setText(outputName);
|
|
||||||
serverSelection->setText(outputServer);
|
|
||||||
outputKeyField->setText(outputKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
#include <QHBoxLayout>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include "obs-data.h"
|
#include "obs-data.h"
|
||||||
@ -43,11 +44,13 @@ private:
|
|||||||
void validateOutputs(QPushButton *confirmButton);
|
void validateOutputs(QPushButton *confirmButton);
|
||||||
|
|
||||||
// Generators
|
// Generators
|
||||||
QLineEdit *generateOutputNameField(std::string text, QPushButton *confirmButton);
|
QLineEdit *generateOutputNameField(std::string text, QPushButton *confirmButton, bool edit = false);
|
||||||
QLineEdit *generateOutputServerField(QPushButton *confirmButton, bool locked);
|
QLineEdit *generateOutputServerField(QPushButton *confirmButton, bool locked, bool edit = false);
|
||||||
QComboBox *generateOutputServerCombo(std::string service, QPushButton *confirmButton, bool edit = false);
|
QComboBox *generateOutputServerCombo(std::string service, QPushButton *confirmButton, bool edit = false);
|
||||||
QLineEdit *generateOutputKeyField(QPushButton *confirmButton);
|
QLineEdit *generateOutputKeyField(QPushButton *confirmButton, bool edit = false);
|
||||||
|
QHBoxLayout *generateWizardButtonLayout(QPushButton *confirmButton, QPushButton *serviceButton, bool edit);
|
||||||
|
QPushButton *generateBackButton();
|
||||||
|
|
||||||
obs_data_t *getService(std::string serviceName);
|
obs_data_t *getService(std::string serviceName);
|
||||||
|
|
||||||
QStackedWidget *stackedWidget;
|
QStackedWidget *stackedWidget;
|
||||||
|
Loading…
Reference in New Issue
Block a user