diff --git a/src/status-control.cpp b/src/status-control.cpp index dbfa7b87..a37c6a75 100644 --- a/src/status-control.cpp +++ b/src/status-control.cpp @@ -4,25 +4,27 @@ #include #include -#include #include +#include StatusDock *dock = nullptr; -StatusControl::StatusControl(QWidget *parent, bool noLayout) : QWidget(parent) +StatusControl::StatusControl(QWidget *parent, bool noLayout) + : QWidget(parent), + _button(new QPushButton("-", this)), + _buttonLayout(new QHBoxLayout()), + _status(new QLabel("-", this)), + _statusPrefix(new QLabel( + obs_module_text( + "AdvSceneSwitcher.generalTab.status.currentStatus"), + this)) { - _button = new QPushButton("-", this); - _status = new QLabel("-", this); _status->setStyleSheet("QLabel{ \ border-style: outset; \ border-width: 2px; \ border-radius: 7px; \ border-color: rgb(0,0,0,0) \ }"); - _statusPrefix = new QLabel( - obs_module_text( - "AdvSceneSwitcher.generalTab.status.currentStatus"), - this); QWidget::connect(_button, SIGNAL(clicked()), this, SLOT(ButtonClicked())); @@ -32,9 +34,11 @@ StatusControl::StatusControl(QWidget *parent, bool noLayout) : QWidget(parent) statusLayout->addWidget(_statusPrefix); statusLayout->addWidget(_status); statusLayout->addStretch(); + _buttonLayout->setContentsMargins(0, 0, 0, 0); + _buttonLayout->addWidget(_button); QVBoxLayout *layout = new QVBoxLayout(); layout->addLayout(statusLayout); - layout->addWidget(_button); + layout->addLayout(_buttonLayout); setLayout(layout); } @@ -98,8 +102,6 @@ void StatusControl::SetStopped() _setToStopped = true; } -#include - StatusDock::StatusDock(QWidget *parent) : OBSDock(parent) { setWindowTitle(obs_module_text("AdvSceneSwitcher.windowTitle")); @@ -118,18 +120,19 @@ StatusDock::StatusDock(QWidget *parent) : OBSDock(parent) QSize(), QIcon::Normal, QIcon::Off); action->setIcon(icon); - auto toolLayout = new QBoxLayout(QBoxLayout::TopToBottom, this); - toolLayout->setContentsMargins(0, 0, 0, 0); auto toolbar = new QToolBar; toolbar->setIconSize({16, 16}); toolbar->setFloatable(false); toolbar->addAction(action); - toolLayout->addWidget(toolbar); + + auto statusControl = new StatusControl(this); + statusControl->ButtonLayout()->addWidget(toolbar); + statusControl->ButtonLayout()->setStretchFactor(statusControl->Button(), + 100); QVBoxLayout *layout = new QVBoxLayout; - layout->addWidget(new StatusControl(this)); + layout->addWidget(statusControl); layout->setContentsMargins(0, 0, 0, 0); - layout->addLayout(toolLayout); // QFrame wrapper is necessary to avoid dock being partially // transparent diff --git a/src/status-control.hpp b/src/status-control.hpp index 191420b7..2b98c74f 100644 --- a/src/status-control.hpp +++ b/src/status-control.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include class StatusControl : public QWidget { @@ -11,6 +12,7 @@ class StatusControl : public QWidget { public: StatusControl(QWidget *parent = 0, bool noLayout = false); QPushButton *Button() { return _button; } + QHBoxLayout *ButtonLayout() { return _buttonLayout; } QLabel *StatusLabel() { return _status; } QLabel *StatusPrefixLabel() { return _statusPrefix; } @@ -23,6 +25,7 @@ private: void SetStarted(); QPushButton *_button; + QHBoxLayout *_buttonLayout; QLabel *_status; QLabel *_statusPrefix; QTimer _timer;