Add option to export macro as plain json

This commit is contained in:
WarmUpTill
2024-04-19 21:13:35 +02:00
committed by WarmUpTill
parent 9c5051cbf8
commit cbc95e2095
3 changed files with 32 additions and 1 deletions

View File

@@ -8,9 +8,13 @@
namespace advss {
static bool usePlainText = false;
MacroExportImportDialog::MacroExportImportDialog(Type type)
: QDialog(nullptr),
_importExportString(new QPlainTextEdit(this))
_importExportString(new QPlainTextEdit(this)),
_usePlainText(new QCheckBox(obs_module_text(
"AdvSceneSwitcher.macroTab.export.usePlainText")))
{
_importExportString->setReadOnly(type == Type::EXPORT_MACRO);
auto label = new QLabel(obs_module_text(
@@ -30,9 +34,15 @@ MacroExportImportDialog::MacroExportImportDialog(Type type)
connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject);
buttons->setCenterButtons(true);
_usePlainText->setChecked(usePlainText);
_usePlainText->setVisible(type == Type::EXPORT_MACRO);
connect(_usePlainText, &QCheckBox::stateChanged, this,
&MacroExportImportDialog::UsePlainTextChanged);
auto layout = new QVBoxLayout;
layout->addWidget(label);
layout->addWidget(_importExportString);
layout->addWidget(_usePlainText);
layout->addWidget(buttons);
setLayout(layout);
@@ -65,6 +75,21 @@ void MacroExportImportDialog::ExportMacros(const QString &json)
dialog.exec();
}
void MacroExportImportDialog::UsePlainTextChanged(int value)
{
if (usePlainText == (!!value)) {
return;
}
const auto current = _importExportString->toPlainText();
if (usePlainText) {
_importExportString->setPlainText(compressMacroString(current));
} else {
_importExportString->setPlainText(
decompressMacroString(current));
}
usePlainText = value;
}
static bool isValidData(const QString &json)
{
OBSDataAutoRelease data =