-
Notifications
You must be signed in to change notification settings - Fork 79
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This action will allow you to write custom messages to the OBS log
- Loading branch information
1 parent
4213e4e
commit 074d734
Showing
4 changed files
with
144 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
#include "macro-action-log.hpp" | ||
#include "layout-helpers.hpp" | ||
|
||
namespace advss { | ||
|
||
const std::string MacroActionLog::id = "log"; | ||
|
||
bool MacroActionLog::_registered = MacroActionFactory::Register( | ||
MacroActionLog::id, {MacroActionLog::Create, MacroActionLogEdit::Create, | ||
"AdvSceneSwitcher.action.log"}); | ||
|
||
bool MacroActionLog::PerformAction() | ||
{ | ||
blog(LOG_INFO, "%s", std::string(_logMessage).c_str()); | ||
return true; | ||
} | ||
|
||
bool MacroActionLog::Save(obs_data_t *obj) const | ||
{ | ||
MacroAction::Save(obj); | ||
_logMessage.Save(obj, "logMessage"); | ||
return true; | ||
} | ||
|
||
bool MacroActionLog::Load(obs_data_t *obj) | ||
{ | ||
MacroAction::Load(obj); | ||
_logMessage.Load(obj, "logMessage"); | ||
return true; | ||
} | ||
|
||
std::shared_ptr<MacroAction> MacroActionLog::Create(Macro *m) | ||
{ | ||
return std::make_shared<MacroActionLog>(m); | ||
} | ||
|
||
std::shared_ptr<MacroAction> MacroActionLog::Copy() const | ||
{ | ||
return std::make_shared<MacroActionLog>(*this); | ||
} | ||
|
||
void MacroActionLog::ResolveVariablesToFixedValues() | ||
{ | ||
_logMessage.ResolveVariables(); | ||
} | ||
|
||
MacroActionLogEdit::MacroActionLogEdit( | ||
QWidget *parent, std::shared_ptr<MacroActionLog> entryData) | ||
: QWidget(parent), | ||
_logMessage(new VariableTextEdit(this, 5, 1, 1)) | ||
{ | ||
QWidget::connect(_logMessage, SIGNAL(textChanged()), this, | ||
SLOT(LogMessageChanged())); | ||
|
||
auto layout = new QHBoxLayout(); | ||
PlaceWidgets(obs_module_text("AdvSceneSwitcher.action.log.entry"), | ||
layout, {{"{{logMessage}}", _logMessage}}, false); | ||
setLayout(layout); | ||
|
||
_entryData = entryData; | ||
UpdateEntryData(); | ||
_loading = false; | ||
} | ||
|
||
void MacroActionLogEdit::UpdateEntryData() | ||
{ | ||
if (!_entryData) { | ||
return; | ||
} | ||
|
||
_logMessage->setPlainText(_entryData->_logMessage); | ||
adjustSize(); | ||
updateGeometry(); | ||
} | ||
|
||
void MacroActionLogEdit::LogMessageChanged() | ||
{ | ||
if (_loading || !_entryData) { | ||
return; | ||
} | ||
|
||
auto lock = LockContext(); | ||
_entryData->_logMessage = _logMessage->toPlainText().toStdString(); | ||
|
||
adjustSize(); | ||
updateGeometry(); | ||
} | ||
|
||
} // namespace advss |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#pragma once | ||
#include "macro-action-edit.hpp" | ||
#include "variable-text-edit.hpp" | ||
|
||
namespace advss { | ||
|
||
class MacroActionLog : public MacroAction { | ||
public: | ||
MacroActionLog(Macro *m) : MacroAction(m) {} | ||
bool PerformAction(); | ||
bool Save(obs_data_t *obj) const; | ||
bool Load(obs_data_t *obj); | ||
std::string GetId() const { return id; }; | ||
static std::shared_ptr<MacroAction> Create(Macro *m); | ||
std::shared_ptr<MacroAction> Copy() const; | ||
void ResolveVariablesToFixedValues(); | ||
|
||
StringVariable _logMessage = | ||
obs_module_text("AdvSceneSwitcher.action.log.placeholder"); | ||
|
||
private: | ||
static bool _registered; | ||
static const std::string id; | ||
}; | ||
|
||
class MacroActionLogEdit : public QWidget { | ||
Q_OBJECT | ||
|
||
public: | ||
MacroActionLogEdit(QWidget *parent, | ||
std::shared_ptr<MacroActionLog> entryData = nullptr); | ||
void UpdateEntryData(); | ||
static QWidget *Create(QWidget *parent, | ||
std::shared_ptr<MacroAction> action) | ||
{ | ||
return new MacroActionLogEdit( | ||
parent, | ||
std::dynamic_pointer_cast<MacroActionLog>(action)); | ||
} | ||
|
||
private slots: | ||
void LogMessageChanged(); | ||
|
||
private: | ||
VariableTextEdit *_logMessage; | ||
std::shared_ptr<MacroActionLog> _entryData; | ||
bool _loading = true; | ||
}; | ||
|
||
} // namespace advss |