kopia lustrzana https://gitlab.com/eliggett/wfview
113 wiersze
2.4 KiB
C++
113 wiersze
2.4 KiB
C++
#include "plugingenericgui.h"
|
|
#include "logcategories.h"
|
|
|
|
pluginGenericGUI::pluginGenericGUI(QWidget *parent) : QWidget(parent)
|
|
{
|
|
layout = new QGridLayout();
|
|
bypassChk = new QCheckBox("Bypass");
|
|
|
|
setWindowTitle("Generic plugin window");
|
|
row=0;
|
|
col=0;
|
|
layout->addWidget(bypassChk, row, col);
|
|
row++;
|
|
//col++;
|
|
|
|
connect(bypassChk, &QCheckBox::stateChanged,
|
|
[=](const int &value) {
|
|
emit setBypass((bool)value);
|
|
});
|
|
|
|
}
|
|
|
|
pluginGenericGUI::~pluginGenericGUI()
|
|
{
|
|
delete layout;
|
|
}
|
|
|
|
|
|
void pluginGenericGUI::definePlugin()
|
|
{
|
|
// TODO: make a plugin struct with plugin title and other information
|
|
QString name = QString("Plugin Name");
|
|
setWindowTitle(name);
|
|
}
|
|
|
|
void pluginGenericGUI::addControl(controlsType control)
|
|
{
|
|
(void)control;
|
|
}
|
|
|
|
void pluginGenericGUI::addControls(QVector<controlsType> controls)
|
|
{
|
|
// it is really a lot better if we clear out the vectors safely first.
|
|
|
|
this->controls = controls;
|
|
|
|
for(int i=0; i < controls.size(); i++)
|
|
{
|
|
controlsType c = controls.at(i);
|
|
QSlider *s = new QSlider();
|
|
QLabel *l = new QLabel();
|
|
s->setMinimum(0);
|
|
s->setMaximum(255);
|
|
s->setPageStep(1);
|
|
s->setValue(c.value);
|
|
s->setToolTip(c.label);
|
|
l->setText(c.label);
|
|
sliders.push_back(s);
|
|
labels.push_back(l);
|
|
}
|
|
showControls();
|
|
makeConnections();
|
|
}
|
|
|
|
void pluginGenericGUI::showControls()
|
|
{
|
|
|
|
for(int i=0; i < sliders.size(); i++)
|
|
{
|
|
layout->addWidget(sliders.at(i), row, col);
|
|
layout->addWidget(labels.at(i), row+1, col+0);
|
|
col++;
|
|
}
|
|
|
|
setLayout(layout);
|
|
setWindowTitle(QString("Plugin controls for 0x%1").arg(controls.at(0).instanceId, 16, 16, QChar('0')));
|
|
}
|
|
|
|
void pluginGenericGUI::makeConnections()
|
|
{
|
|
|
|
for(int i=0; i < sliders.length(); i++)
|
|
{
|
|
connect(
|
|
sliders.at(i),
|
|
&QSlider::valueChanged,
|
|
[=](const int &newValue) {
|
|
controlsType c = controls.at(i);
|
|
c.value = convertLevel(newValue, c.min, c.max);
|
|
qDebug() << __PRETTY_FUNCTION__ << "Setting control to: " << c.value;
|
|
emit setControl(c);
|
|
});
|
|
}
|
|
}
|
|
|
|
float pluginGenericGUI::convertLevel(int level, float min, float max)
|
|
{
|
|
|
|
float span = max - min;
|
|
float stepSize = span / 255.0f;
|
|
float amplitude = level * stepSize;
|
|
float absLevel = amplitude + min;
|
|
|
|
return absLevel;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|