diff --git a/CMakeLists.txt b/CMakeLists.txt index 793524c5..5d782b2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -246,6 +246,7 @@ set(advanced-scene-switcher_HEADERS src/headers/macro-condition-window.hpp src/headers/macro.hpp src/headers/macro-controls.hpp + src/headers/macro-list-entry-widget.hpp src/headers/macro-segment.hpp src/headers/macro-selection.hpp src/headers/curl-helper.hpp @@ -346,6 +347,7 @@ set(advanced-scene-switcher_SOURCES src/macro-condition-window.cpp src/macro.cpp src/macro-controls.cpp + src/macro-list-entry-widget.cpp src/macro-segment.cpp src/macro-selection.cpp src/macro-tab.cpp diff --git a/src/headers/macro-list-entry-widget.hpp b/src/headers/macro-list-entry-widget.hpp new file mode 100644 index 00000000..19b498f8 --- /dev/null +++ b/src/headers/macro-list-entry-widget.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include +#include +#include + +class Macro; + +class MacroListEntryWidget : public QWidget { + Q_OBJECT + +public: + MacroListEntryWidget(std::shared_ptr, QWidget *parent); + void SetName(const QString &); + void SetMacro(std::shared_ptr &); + +private slots: + void PauseChanged(int); + +private: + QLabel *_name; + QCheckBox *_running; + std::shared_ptr _macro; +}; diff --git a/src/macro-list-entry-widget.cpp b/src/macro-list-entry-widget.cpp new file mode 100644 index 00000000..4d29f85d --- /dev/null +++ b/src/macro-list-entry-widget.cpp @@ -0,0 +1,39 @@ +#include "headers/macro-list-entry-widget.hpp" +#include "headers/macro.hpp" + +MacroListEntryWidget::MacroListEntryWidget(std::shared_ptr macro, + QWidget *parent) + : QWidget(parent), _macro(macro) +{ + _name = new QLabel(QString::fromStdString(macro->Name())); + _running = new QCheckBox(); + _running->setChecked(!macro->Paused()); + connect(_running, SIGNAL(stateChanged(int)), this, + SLOT(PauseChanged(int))); + + setStyleSheet("\ + QCheckBox { background-color: rgba(0,0,0,0); }\ + QLabel { background-color: rgba(0,0,0,0); }"); + + auto layout = new QHBoxLayout; + layout->setContentsMargins(3, 3, 3, 3); + layout->addWidget(_running); + layout->addWidget(_name); + layout->addStretch(); + setLayout(layout); +} + +void MacroListEntryWidget::PauseChanged(int state) +{ + _macro->SetPaused(!state); +} + +void MacroListEntryWidget::SetName(const QString &name) +{ + _name->setText(name); +} + +void MacroListEntryWidget::SetMacro(std::shared_ptr &m) +{ + _macro = m; +}