mirror of
https://github.com/Aitum/obs-aitum-multistream.git
synced 2024-11-22 02:12:40 +01:00
Add visual output service picker
This commit is contained in:
parent
05e119702c
commit
71533800ce
@ -4,9 +4,24 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QStackedWidget>
|
||||
#include <QPushButton>
|
||||
#include <QAbstractButton>
|
||||
#include <QToolButton>
|
||||
#include "obs-module.h"
|
||||
|
||||
|
||||
QToolButton *selectionButton(std::string title, QIcon icon) {
|
||||
auto button = new QToolButton;
|
||||
|
||||
button->setText(QString::fromUtf8(title));
|
||||
button->setIcon(icon);
|
||||
button->setIconSize(QSize(32, 32));
|
||||
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
||||
button->setStyleSheet("min-width: 110px; max-width: 110px; min-height: 90px; max-height: 90px; padding-top: 16px; font-weight: bold;");
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
OutputDialog::OutputDialog(QDialog *parent) : QDialog(parent) {
|
||||
setModal(true);
|
||||
stackedWidget = new QStackedWidget;
|
||||
@ -34,6 +49,7 @@ OutputDialog::OutputDialog(QDialog *parent) : QDialog(parent) {
|
||||
stackedLayout->setContentsMargins(4, 4, 4, 4);
|
||||
|
||||
setMinimumSize(650, 400);
|
||||
setMaximumSize(650, 400);
|
||||
|
||||
setLayout(stackedLayout);
|
||||
show();
|
||||
@ -45,22 +61,42 @@ QWidget *OutputDialog::WizardServicePage() {
|
||||
auto pageLayout = new QVBoxLayout;
|
||||
|
||||
auto description = new QLabel(QString::fromUtf8(obs_module_text("NewOutputSelectService")));
|
||||
description->setStyleSheet("margin-bottom: 20px;");
|
||||
pageLayout->addWidget(description);
|
||||
|
||||
// layout for service selection
|
||||
auto gap = 8;
|
||||
|
||||
auto selectionLayout = new QVBoxLayout;
|
||||
selectionLayout->setSpacing(gap);
|
||||
|
||||
auto spacerTest = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
|
||||
|
||||
pageLayout->addSpacerItem(spacerTest);
|
||||
|
||||
// row 1
|
||||
auto rowOne = new QHBoxLayout;
|
||||
|
||||
rowOne->addWidget(selectionButton("Twitch", platformIconTwitch));
|
||||
rowOne->addWidget(selectionButton("YouTube", platformIconYouTube));
|
||||
rowOne->addWidget(selectionButton("TikTok", platformIconTikTok));
|
||||
rowOne->addWidget(selectionButton("Facebook", platformIconFacebook));
|
||||
|
||||
selectionLayout->addLayout(rowOne);
|
||||
|
||||
// row 2
|
||||
auto rowTwo = new QHBoxLayout;
|
||||
|
||||
rowTwo->addWidget(selectionButton("Trovo", platformIconTrovo));
|
||||
rowTwo->addWidget(selectionButton("X (Twitter)", platformIconTwitter));
|
||||
rowTwo->addWidget(selectionButton("Kick", platformIconKick));
|
||||
rowTwo->addWidget(selectionButton(obs_module_text("OtherService"), platformIconUnknown));
|
||||
|
||||
selectionLayout->addLayout(rowTwo);
|
||||
|
||||
//
|
||||
pageLayout->addSpacerItem(spacerTest);
|
||||
pageLayout->addLayout(selectionLayout);
|
||||
|
||||
|
||||
// pageLayout->setAlignment(Qt::AlignCenter);
|
||||
|
||||
page->setLayout(pageLayout);
|
||||
|
||||
|
@ -18,6 +18,17 @@ private:
|
||||
QWidget *WizardInfoTikTok();
|
||||
QWidget *WizardInfoFacebook();
|
||||
|
||||
|
||||
// Platform icons
|
||||
QIcon platformIconTwitch = QIcon(":/aitum/media/twitch.png");
|
||||
QIcon platformIconYouTube = QIcon(":/aitum/media/youtube.png");
|
||||
QIcon platformIconKick = QIcon(":/aitum/media/kick.png");
|
||||
QIcon platformIconTikTok = QIcon(":/aitum/media/tiktok.png");
|
||||
QIcon platformIconTwitter = QIcon(":/aitum/media/twitter.png");
|
||||
QIcon platformIconTrovo = QIcon(":/aitum/media/trovo.png");
|
||||
QIcon platformIconFacebook = QIcon(":/aitum/media/facebook.png");
|
||||
QIcon platformIconUnknown = QIcon(":/aitum/media/unknown.png");
|
||||
|
||||
QStackedWidget *stackedWidget;
|
||||
public:
|
||||
OutputDialog(QDialog *parent);
|
||||
|
Loading…
Reference in New Issue
Block a user