mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-09-08 01:26:04 -05:00
Compare commits
1 Commits
master
...
dock-windo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3836a03a02 |
@@ -267,6 +267,7 @@ AdvSceneSwitcher.macroTab.pauseStateSaveBehavior.unpause="Unpaused"
|
|||||||
AdvSceneSwitcher.macroTab.currentRegisterDock="Register dock widget to control the pause state of selected macro or run it manually"
|
AdvSceneSwitcher.macroTab.currentRegisterDock="Register dock widget to control the pause state of selected macro or run it manually"
|
||||||
AdvSceneSwitcher.macroTab.currentIsStandaloneDock="Is standalone dock"
|
AdvSceneSwitcher.macroTab.currentIsStandaloneDock="Is standalone dock"
|
||||||
AdvSceneSwitcher.macroTab.currentDockWindowName="Add to macro dock with name:"
|
AdvSceneSwitcher.macroTab.currentDockWindowName="Add to macro dock with name:"
|
||||||
|
AdvSceneSwitcher.macroTab.currentDockWindowName.addNew="Add new dock..."
|
||||||
AdvSceneSwitcher.macroTab.currentDockAddRunButton="Add button to run the macro"
|
AdvSceneSwitcher.macroTab.currentDockAddRunButton="Add button to run the macro"
|
||||||
AdvSceneSwitcher.macroTab.currentDockAddPauseButton="Add button to pause or unpause the macro"
|
AdvSceneSwitcher.macroTab.currentDockAddPauseButton="Add button to pause or unpause the macro"
|
||||||
AdvSceneSwitcher.macroTab.currentDockAddStatusLabel="Add status label"
|
AdvSceneSwitcher.macroTab.currentDockAddStatusLabel="Add status label"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#include "macro-settings.hpp"
|
#include "macro-settings.hpp"
|
||||||
#include "layout-helpers.hpp"
|
#include "layout-helpers.hpp"
|
||||||
|
#include "macro-helpers.hpp"
|
||||||
#include "macro.hpp"
|
#include "macro.hpp"
|
||||||
#include "obs-module-helper.hpp"
|
#include "obs-module-helper.hpp"
|
||||||
#include "plugin-state-helpers.hpp"
|
#include "plugin-state-helpers.hpp"
|
||||||
@@ -8,11 +9,48 @@
|
|||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
#include <set>
|
||||||
|
|
||||||
namespace advss {
|
namespace advss {
|
||||||
|
|
||||||
static GlobalMacroSettings macroSettings;
|
static GlobalMacroSettings macroSettings;
|
||||||
|
|
||||||
|
static constexpr int addNewDockWindowRole = Qt::UserRole + 1;
|
||||||
|
|
||||||
|
static QStringList GetExistingDockWindowNames()
|
||||||
|
{
|
||||||
|
std::set<std::string> names;
|
||||||
|
for (const auto ¯o : GetAllMacros()) {
|
||||||
|
if (!macro) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const auto &dockSettings = macro->GetDockSettings();
|
||||||
|
if (dockSettings.IsStandaloneDock()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
names.insert(dockSettings.DockWindowName());
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList result;
|
||||||
|
for (const auto &name : names) {
|
||||||
|
result << QString::fromStdString(name);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void PopulateDockWindowNameCombo(QComboBox *combo)
|
||||||
|
{
|
||||||
|
combo->clear();
|
||||||
|
auto names = GetExistingDockWindowNames();
|
||||||
|
combo->addItems(names);
|
||||||
|
if (!names.isEmpty()) {
|
||||||
|
combo->insertSeparator(combo->count());
|
||||||
|
}
|
||||||
|
combo->addItem(obs_module_text(
|
||||||
|
"AdvSceneSwitcher.macroTab.currentDockWindowName.addNew"));
|
||||||
|
combo->setItemData(combo->count() - 1, true, addNewDockWindowRole);
|
||||||
|
}
|
||||||
|
|
||||||
void GlobalMacroSettings::Save(obs_data_t *obj) const
|
void GlobalMacroSettings::Save(obs_data_t *obj) const
|
||||||
{
|
{
|
||||||
auto data = obs_data_create();
|
auto data = obs_data_create();
|
||||||
@@ -96,7 +134,7 @@ MacroSettingsDialog::MacroSettingsDialog(QWidget *parent,
|
|||||||
"AdvSceneSwitcher.macroTab.currentRegisterDock"))),
|
"AdvSceneSwitcher.macroTab.currentRegisterDock"))),
|
||||||
_currentMacroIsStandaloneDock(new QCheckBox(obs_module_text(
|
_currentMacroIsStandaloneDock(new QCheckBox(obs_module_text(
|
||||||
"AdvSceneSwitcher.macroTab.currentIsStandaloneDock"))),
|
"AdvSceneSwitcher.macroTab.currentIsStandaloneDock"))),
|
||||||
_currentMacroDockWindowName(new QLineEdit(this)),
|
_currentMacroDockWindowName(new QComboBox(this)),
|
||||||
_currentMacroDockAddRunButton(new QCheckBox(obs_module_text(
|
_currentMacroDockAddRunButton(new QCheckBox(obs_module_text(
|
||||||
"AdvSceneSwitcher.macroTab.currentDockAddRunButton"))),
|
"AdvSceneSwitcher.macroTab.currentDockAddRunButton"))),
|
||||||
_currentMacroDockAddPauseButton(new QCheckBox(obs_module_text(
|
_currentMacroDockAddPauseButton(new QCheckBox(obs_module_text(
|
||||||
@@ -143,6 +181,17 @@ MacroSettingsDialog::MacroSettingsDialog(QWidget *parent,
|
|||||||
"AdvSceneSwitcher.macroTab.pauseStateSaveBehavior.unpause"),
|
"AdvSceneSwitcher.macroTab.pauseStateSaveBehavior.unpause"),
|
||||||
static_cast<int>(Macro::PauseStateSaveBehavior::UNPAUSE));
|
static_cast<int>(Macro::PauseStateSaveBehavior::UNPAUSE));
|
||||||
|
|
||||||
|
_currentMacroDockWindowName->setEditable(true);
|
||||||
|
PopulateDockWindowNameCombo(_currentMacroDockWindowName);
|
||||||
|
connect(_currentMacroDockWindowName,
|
||||||
|
qOverload<int>(&QComboBox::activated), this, [this](int index) {
|
||||||
|
if (_currentMacroDockWindowName
|
||||||
|
->itemData(index, addNewDockWindowRole)
|
||||||
|
.toBool()) {
|
||||||
|
_currentMacroDockWindowName->setCurrentText("");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
auto highlightOptions = new QGroupBox(
|
auto highlightOptions = new QGroupBox(
|
||||||
obs_module_text("AdvSceneSwitcher.macroTab.highlightSettings"));
|
obs_module_text("AdvSceneSwitcher.macroTab.highlightSettings"));
|
||||||
auto highlightLayout = new QVBoxLayout;
|
auto highlightLayout = new QVBoxLayout;
|
||||||
@@ -348,7 +397,7 @@ MacroSettingsDialog::MacroSettingsDialog(QWidget *parent,
|
|||||||
_currentMacroRegisterDock->setChecked(dockEnabled);
|
_currentMacroRegisterDock->setChecked(dockEnabled);
|
||||||
_currentMacroIsStandaloneDock->setChecked(
|
_currentMacroIsStandaloneDock->setChecked(
|
||||||
dockSettings.IsStandaloneDock());
|
dockSettings.IsStandaloneDock());
|
||||||
_currentMacroDockWindowName->setText(
|
_currentMacroDockWindowName->setCurrentText(
|
||||||
QString::fromStdString(dockSettings.DockWindowName()));
|
QString::fromStdString(dockSettings.DockWindowName()));
|
||||||
_currentMacroDockAddRunButton->setChecked(dockSettings.HasRunButton());
|
_currentMacroDockAddRunButton->setChecked(dockSettings.HasRunButton());
|
||||||
_currentMacroDockAddPauseButton->setChecked(
|
_currentMacroDockAddPauseButton->setChecked(
|
||||||
@@ -486,7 +535,7 @@ bool MacroSettingsDialog::AskForSettings(QWidget *parent,
|
|||||||
dockSettings.SetIsStandaloneDock(
|
dockSettings.SetIsStandaloneDock(
|
||||||
dialog._currentMacroIsStandaloneDock->isChecked());
|
dialog._currentMacroIsStandaloneDock->isChecked());
|
||||||
dockSettings.SetDockWindowName(
|
dockSettings.SetDockWindowName(
|
||||||
dialog._currentMacroDockWindowName->text().toStdString());
|
dialog._currentMacroDockWindowName->currentText().toStdString());
|
||||||
dockSettings.SetHasRunButton(
|
dockSettings.SetHasRunButton(
|
||||||
dialog._currentMacroDockAddRunButton->isChecked());
|
dialog._currentMacroDockAddRunButton->isChecked());
|
||||||
dockSettings.SetHasPauseButton(
|
dockSettings.SetHasPauseButton(
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
|
#include <QComboBox>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
@@ -71,7 +72,7 @@ private:
|
|||||||
MacroInputSelection *_currentInputs;
|
MacroInputSelection *_currentInputs;
|
||||||
QCheckBox *_currentMacroRegisterDock;
|
QCheckBox *_currentMacroRegisterDock;
|
||||||
QCheckBox *_currentMacroIsStandaloneDock;
|
QCheckBox *_currentMacroIsStandaloneDock;
|
||||||
QLineEdit *_currentMacroDockWindowName;
|
QComboBox *_currentMacroDockWindowName;
|
||||||
QCheckBox *_currentMacroDockAddRunButton;
|
QCheckBox *_currentMacroDockAddRunButton;
|
||||||
QCheckBox *_currentMacroDockAddPauseButton;
|
QCheckBox *_currentMacroDockAddPauseButton;
|
||||||
QCheckBox *_currentMacroDockAddStatusLabel;
|
QCheckBox *_currentMacroDockAddStatusLabel;
|
||||||
|
|||||||
Reference in New Issue
Block a user