mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 16:25:16 +03:00
Virtual Inputs added inside Companion
This commit is contained in:
parent
efa484a710
commit
6bba2b14ca
13 changed files with 101 additions and 64 deletions
|
@ -8,7 +8,8 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
switch (contest) {
|
switch (contest) {
|
||||||
case 0: {
|
case 0:
|
||||||
|
{
|
||||||
QFile file(":/DONATIONS.txt");
|
QFile file(":/DONATIONS.txt");
|
||||||
QString str;
|
QString str;
|
||||||
str.append("<html><head>");
|
str.append("<html><head>");
|
||||||
|
@ -20,7 +21,7 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
str.append("<tr><td class=\"myhead\">"+tr("People who have contributed to this project")+"</td></tr>");
|
str.append("<tr><td class=\"myhead\">"+tr("People who have contributed to this project")+"</td></tr>");
|
||||||
str.append("</table>");
|
str.append("</table>");
|
||||||
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
|
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
|
||||||
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
int columns=6;
|
int columns=6;
|
||||||
float cwidth=100.0/columns;
|
float cwidth=100.0/columns;
|
||||||
while (!file.atEnd()) {
|
while (!file.atEnd()) {
|
||||||
|
@ -66,26 +67,29 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
str.append("<tr><td class=\"mycss\"> </td></tr>");
|
str.append("<tr><td class=\"mycss\"> </td></tr>");
|
||||||
str.append("<tr><td colspan=3 class=\"mycss\">"+tr("Honors go to Rafal Tomczak (RadioClone) and Thomas Husterer (th9x) \nof course. Also to Erez Raviv (er9x) and it's fantastic eePe, from which\nOpenTX Companion was forked out.")+"</td></tr>");
|
str.append("<tr><td colspan=3 class=\"mycss\">" + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + "<br/></td></tr>");
|
||||||
str.append("<tr><td colspan=3 class=\"mycss\">"+tr("Thank you all !!!")+"</td></tr>");
|
str.append("<tr><td colspan=3 class=\"mycss\">" + tr("Thank you all !!!") + "</td></tr>");
|
||||||
str.append("</table>");
|
str.append("</table>");
|
||||||
str.append("</body></html>");
|
str.append("</body></html>");
|
||||||
ui->textEditor->setHtml(str);
|
ui->textEditor->setHtml(str);
|
||||||
ui->textEditor->scroll(0,0);
|
ui->textEditor->scroll(0, 0);
|
||||||
this->setWindowTitle(tr("Contributors"));
|
setWindowTitle(tr("Contributors"));
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 1:{
|
case 1:
|
||||||
|
{
|
||||||
QFile file(":/releasenotes.txt");
|
QFile file(":/releasenotes.txt");
|
||||||
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
||||||
ui->textEditor->setHtml(file.readAll());
|
ui->textEditor->setHtml(file.readAll());
|
||||||
}
|
}
|
||||||
ui->textEditor->scroll(0,0);
|
ui->textEditor->scroll(0,0);
|
||||||
this->setWindowTitle(tr("Companion Release Notes"));
|
setWindowTitle(tr("Companion Release Notes"));
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 2:{
|
}
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
if (!rnurl.isEmpty()) {
|
if (!rnurl.isEmpty()) {
|
||||||
this->setWindowTitle(tr("OpenTX Release Notes"));
|
this->setWindowTitle(tr("OpenTX Release Notes"));
|
||||||
manager = new QNetworkAccessManager(this);
|
manager = new QNetworkAccessManager(this);
|
||||||
|
@ -94,7 +98,8 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
|
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
|
||||||
manager->get(request);
|
manager->get(request);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
QTimer::singleShot(0, this, SLOT(forceClose()));
|
QTimer::singleShot(0, this, SLOT(forceClose()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -104,7 +109,7 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
|
|
||||||
void contributorsDialog::showEvent ( QShowEvent * )
|
void contributorsDialog::showEvent ( QShowEvent * )
|
||||||
{
|
{
|
||||||
ui->textEditor->scroll(0,0);
|
ui->textEditor->scroll(0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
contributorsDialog::~contributorsDialog()
|
contributorsDialog::~contributorsDialog()
|
||||||
|
@ -117,6 +122,7 @@ void contributorsDialog::replyFinished(QNetworkReply * reply)
|
||||||
ui->textEditor->setHtml(reply->readAll());
|
ui->textEditor->setHtml(reply->readAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
void contributorsDialog::forceClose() {
|
void contributorsDialog::forceClose()
|
||||||
|
{
|
||||||
accept();;
|
accept();;
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,7 +287,12 @@ QString RawSource::toString()
|
||||||
if (index<0) {
|
if (index<0) {
|
||||||
return QObject::tr("----");
|
return QObject::tr("----");
|
||||||
}
|
}
|
||||||
switch(type) {
|
switch (type) {
|
||||||
|
case SOURCE_TYPE_VIRTUAL_INPUT:
|
||||||
|
if (model && strlen(model->inputNames[index]) > 0)
|
||||||
|
return QString(model->inputNames[index]);
|
||||||
|
else
|
||||||
|
return QObject::tr("Virtual Input %1").arg(index+1);
|
||||||
case SOURCE_TYPE_STICK:
|
case SOURCE_TYPE_STICK:
|
||||||
return AnalogString(index);
|
return AnalogString(index);
|
||||||
case SOURCE_TYPE_TRIM:
|
case SOURCE_TYPE_TRIM:
|
||||||
|
|
|
@ -286,19 +286,22 @@ class RawSource {
|
||||||
public:
|
public:
|
||||||
RawSource():
|
RawSource():
|
||||||
type(SOURCE_TYPE_NONE),
|
type(SOURCE_TYPE_NONE),
|
||||||
index(0)
|
index(0),
|
||||||
|
model(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
RawSource(int value):
|
RawSource(int value, const ModelData * model=NULL):
|
||||||
type(RawSourceType(abs(value)/65536)),
|
type(RawSourceType(abs(value)/65536)),
|
||||||
index(value >= 0 ? abs(value)%65536 : -(abs(value)%65536))
|
index(value >= 0 ? abs(value)%65536 : -(abs(value)%65536)),
|
||||||
|
model(model)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
RawSource(RawSourceType type, int index=0):
|
RawSource(RawSourceType type, int index=0, const ModelData * model=NULL):
|
||||||
type(type),
|
type(type),
|
||||||
index(index)
|
index(index),
|
||||||
|
model(model)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,6 +325,7 @@ class RawSource {
|
||||||
|
|
||||||
RawSourceType type;
|
RawSourceType type;
|
||||||
int index;
|
int index;
|
||||||
|
const ModelData * model;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum RawSwitchType {
|
enum RawSwitchType {
|
||||||
|
|
|
@ -399,7 +399,7 @@ void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsigned int adjustmode)
|
void populateFuncParamCB(QComboBox *b, const ModelData & model, uint function, unsigned int value, unsigned int adjustmode)
|
||||||
{
|
{
|
||||||
QStringList qs;
|
QStringList qs;
|
||||||
b->clear();
|
b->clear();
|
||||||
|
@ -423,18 +423,18 @@ void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsign
|
||||||
b->setCurrentIndex(value);
|
b->setCurrentIndex(value);
|
||||||
}
|
}
|
||||||
else if (function==FuncVolume) {
|
else if (function==FuncVolume) {
|
||||||
populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_TRIMS);
|
populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_TRIMS);
|
||||||
}
|
}
|
||||||
else if (function==FuncPlayValue) {
|
else if (function==FuncPlayValue) {
|
||||||
populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT);
|
populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT);
|
||||||
}
|
}
|
||||||
else if (function>=FuncAdjustGV1 && function<=FuncAdjustGVLast) {
|
else if (function>=FuncAdjustGV1 && function<=FuncAdjustGVLast) {
|
||||||
switch (adjustmode) {
|
switch (adjustmode) {
|
||||||
case 1:
|
case 1:
|
||||||
populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES);
|
populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
populateSourceCB(b, RawSource(value), POPULATE_GVARS);
|
populateSourceCB(b, RawSource(value), model, POPULATE_GVARS);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
b->clear();
|
b->clear();
|
||||||
|
@ -998,8 +998,7 @@ void populateGVCB(QComboBox *b, int value)
|
||||||
b->setCurrentIndex(nullitem);
|
b->setCurrentIndex(nullitem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData & model, unsigned int flags)
|
||||||
void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags)
|
|
||||||
{
|
{
|
||||||
RawSource item;
|
RawSource item;
|
||||||
|
|
||||||
|
@ -1009,7 +1008,18 @@ void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags)
|
||||||
item = RawSource(SOURCE_TYPE_NONE);
|
item = RawSource(SOURCE_TYPE_NONE);
|
||||||
b->addItem(item.toString(), item.toValue());
|
b->addItem(item.toString(), item.toValue());
|
||||||
if (item == source) b->setCurrentIndex(b->count()-1);
|
if (item == source) b->setCurrentIndex(b->count()-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & POPULATE_VIRTUAL_INPUTS) {
|
||||||
|
int virtualInputs = GetEepromInterface()->getCapability(VirtualInputs);
|
||||||
|
for (int i=0; i<virtualInputs; i++) {
|
||||||
|
item = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, i, &model);
|
||||||
|
b->addItem(item.toString(), item.toValue());
|
||||||
|
if (item == source) b->setCurrentIndex(b->count()-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & POPULATE_SOURCES) {
|
||||||
for (int i=0; i<4+GetEepromInterface()->getCapability(Pots); i++) {
|
for (int i=0; i<4+GetEepromInterface()->getCapability(Pots); i++) {
|
||||||
item = RawSource(SOURCE_TYPE_STICK, i);
|
item = RawSource(SOURCE_TYPE_STICK, i);
|
||||||
b->addItem(item.toString(), item.toValue());
|
b->addItem(item.toString(), item.toValue());
|
||||||
|
|
|
@ -87,7 +87,7 @@ void populateFuncCB(QComboBox *b, unsigned int value);
|
||||||
void populateRepeatCB(QComboBox *b, unsigned int value);
|
void populateRepeatCB(QComboBox *b, unsigned int value);
|
||||||
void populateGVmodeCB(QComboBox *b, unsigned int value);
|
void populateGVmodeCB(QComboBox *b, unsigned int value);
|
||||||
QString FuncParam(uint function, int value, QString paramT="",unsigned int adjustmode=0);
|
QString FuncParam(uint function, int value, QString paramT="",unsigned int adjustmode=0);
|
||||||
void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsigned int adjustmode=0);
|
void populateFuncParamCB(QComboBox *b, const ModelData & model, uint function, unsigned int value, unsigned int adjustmode=0);
|
||||||
void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QStringList & paramsList);
|
void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QStringList & paramsList);
|
||||||
void populatePhasesCB(QComboBox *b, int value);
|
void populatePhasesCB(QComboBox *b, int value);
|
||||||
void populateTrimUseCB(QComboBox *b, unsigned int phase);
|
void populateTrimUseCB(QComboBox *b, unsigned int phase);
|
||||||
|
@ -98,19 +98,20 @@ QString getCustomSwitchStr(CustomSwData * customSw, const ModelData & model);
|
||||||
QString getProtocolStr(const int proto);
|
QString getProtocolStr(const int proto);
|
||||||
QString getPhasesStr(unsigned int phases, ModelData & model);
|
QString getPhasesStr(unsigned int phases, ModelData & model);
|
||||||
|
|
||||||
#define POPULATE_SOURCES 1
|
#define POPULATE_SOURCES 1
|
||||||
#define POPULATE_TRIMS 2
|
#define POPULATE_TRIMS 2
|
||||||
#define POPULATE_SWITCHES 4
|
#define POPULATE_SWITCHES 4
|
||||||
#define POPULATE_GVARS 8
|
#define POPULATE_GVARS 8
|
||||||
#define POPULATE_TELEMETRY 16
|
#define POPULATE_TELEMETRY 16
|
||||||
#define POPULATE_TELEMETRYEXT 32
|
#define POPULATE_TELEMETRYEXT 32
|
||||||
|
#define POPULATE_VIRTUAL_INPUTS 64
|
||||||
|
|
||||||
#define GVARS_VARIANT 0x0001
|
#define GVARS_VARIANT 0x0001
|
||||||
#define FRSKY_VARIANT 0x0002
|
#define FRSKY_VARIANT 0x0002
|
||||||
|
|
||||||
// void populateGVarCB(QComboBox *b, int value, int min, int max,int pgvars=5); //TODO: Clean Up
|
// void populateGVarCB(QComboBox *b, int value, int min, int max,int pgvars=5); //TODO: Clean Up
|
||||||
void populateGVCB(QComboBox *b, int value);
|
void populateGVCB(QComboBox *b, int value);
|
||||||
void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags);
|
void populateSourceCB(QComboBox *b, const RawSource &source, const ModelData & model, unsigned int flags);
|
||||||
void populateCSWCB(QComboBox *b, int value);
|
void populateCSWCB(QComboBox *b, int value);
|
||||||
QString getTimerMode(int tm);
|
QString getTimerMode(int tm);
|
||||||
QString getTimerModeB(int tm);
|
QString getTimerModeB(int tm);
|
||||||
|
|
|
@ -1537,7 +1537,7 @@ void MainWindow::about()
|
||||||
QString aboutStr = "<center><img src=\":/images/companion-title.png\"></center><br/>";
|
QString aboutStr = "<center><img src=\":/images/companion-title.png\"></center><br/>";
|
||||||
aboutStr.append(tr("OpenTX Home Page: <a href='%1'>%1</a>").arg("http://www.open-tx.org"));
|
aboutStr.append(tr("OpenTX Home Page: <a href='%1'>%1</a>").arg("http://www.open-tx.org"));
|
||||||
aboutStr.append("<br/><br/>");
|
aboutStr.append("<br/><br/>");
|
||||||
aboutStr.append(tr("The OpenTX Companion project was originally forked from <a href='%1'>companion9x</a> and <a href='%2'>eePe</a>").arg("http://code.google.com/p/companion9x").arg("http://code.google.com/p/eepe"));
|
aboutStr.append(tr("The OpenTX Companion project was originally forked from <a href='%2'>eePe</a>").arg("http://code.google.com/p/eepe"));
|
||||||
aboutStr.append("<br/><br/>");
|
aboutStr.append("<br/><br/>");
|
||||||
aboutStr.append(tr("If you've found this program useful, please support by <a href='%1'>donating</a>").arg(DONATE_STR));
|
aboutStr.append(tr("If you've found this program useful, please support by <a href='%1'>donating</a>").arg(DONATE_STR));
|
||||||
aboutStr.append("<br/><br/>");
|
aboutStr.append("<br/><br/>");
|
||||||
|
|
|
@ -110,7 +110,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model,
|
||||||
fswtchParamT[i] = new QComboBox(this);
|
fswtchParamT[i] = new QComboBox(this);
|
||||||
fswtchParamT[i]->setProperty("index", i);
|
fswtchParamT[i]->setProperty("index", i);
|
||||||
paramLayout->addWidget(fswtchParamT[i]);
|
paramLayout->addWidget(fswtchParamT[i]);
|
||||||
populateFuncParamCB(fswtchParamT[i], func, model.funcSw[i].param, model.funcSw[i].adjustMode);
|
populateFuncParamCB(fswtchParamT[i], model, func, model.funcSw[i].param, model.funcSw[i].adjustMode);
|
||||||
connect(fswtchParamT[i], SIGNAL(currentIndexChanged(int)), this, SLOT(customFunctionEdited()));
|
connect(fswtchParamT[i], SIGNAL(currentIndexChanged(int)), this, SLOT(customFunctionEdited()));
|
||||||
|
|
||||||
fswtchParamArmT[i] = new QComboBox(this);
|
fswtchParamArmT[i] = new QComboBox(this);
|
||||||
|
@ -295,20 +295,24 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
|
||||||
fswtchParam[i]->setMaximum(125);
|
fswtchParam[i]->setMaximum(125);
|
||||||
fswtchParam[i]->setValue(model.funcSw[i].param);
|
fswtchParam[i]->setValue(model.funcSw[i].param);
|
||||||
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM;
|
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
|
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
|
||||||
populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param, model.funcSw[i].adjustMode);
|
populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param, model.funcSw[i].adjustMode);
|
||||||
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
||||||
}
|
}
|
||||||
} else if (index==FuncReset) {
|
}
|
||||||
|
else if (index==FuncReset) {
|
||||||
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
|
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
|
||||||
populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
|
populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
|
||||||
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
||||||
} else if (index==FuncVolume) {
|
}
|
||||||
|
else if (index==FuncVolume) {
|
||||||
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
|
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
|
||||||
populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
|
populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
|
||||||
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_ENABLE;
|
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_ENABLE;
|
||||||
} else if (index==FuncPlaySound || index==FuncPlayHaptic || index==FuncPlayValue || index==FuncPlayPrompt || index==FuncPlayBoth || index==FuncBackgroundMusic) {
|
}
|
||||||
|
else if (index==FuncPlaySound || index==FuncPlayHaptic || index==FuncPlayValue || index==FuncPlayPrompt || index==FuncPlayBoth || index==FuncBackgroundMusic) {
|
||||||
if (modified) model.funcSw[i].repeatParam = fswtchRepeat[i]->itemData(fswtchRepeat[i]->currentIndex()).toInt();
|
if (modified) model.funcSw[i].repeatParam = fswtchRepeat[i]->itemData(fswtchRepeat[i]->currentIndex()).toInt();
|
||||||
if (index != FuncBackgroundMusic) {
|
if (index != FuncBackgroundMusic) {
|
||||||
if (GetEepromInterface()->getCapability(HasFuncRepeat)) {
|
if (GetEepromInterface()->getCapability(HasFuncRepeat)) {
|
||||||
|
@ -317,7 +321,7 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
|
||||||
}
|
}
|
||||||
if (index==FuncPlayValue) {
|
if (index==FuncPlayValue) {
|
||||||
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
|
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
|
||||||
populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
|
populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
|
||||||
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_REPEAT;
|
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_REPEAT;
|
||||||
} else if (index==FuncPlayPrompt || index==FuncPlayBoth) {
|
} else if (index==FuncPlayPrompt || index==FuncPlayBoth) {
|
||||||
if (GetEepromInterface()->getCapability(VoicesAsNumbers)) {
|
if (GetEepromInterface()->getCapability(VoicesAsNumbers)) {
|
||||||
|
@ -374,16 +378,19 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (index==FuncPlaySound) {
|
}
|
||||||
|
else if (index==FuncPlaySound) {
|
||||||
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
|
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
|
||||||
populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
|
populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
|
||||||
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
|
||||||
} else if (index==FuncPlayHaptic) {
|
|
||||||
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
|
|
||||||
populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
|
|
||||||
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
||||||
}
|
}
|
||||||
} else if (model.funcSw[i].swtch.type!=SWITCH_TYPE_NONE) {
|
else if (index==FuncPlayHaptic) {
|
||||||
|
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
|
||||||
|
populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
|
||||||
|
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (model.funcSw[i].swtch.type!=SWITCH_TYPE_NONE) {
|
||||||
if (modified) model.funcSw[i].param = fswtchParam[i]->value();
|
if (modified) model.funcSw[i].param = fswtchParam[i]->value();
|
||||||
fswtchParam[i]->setDecimals(0);
|
fswtchParam[i]->setDecimals(0);
|
||||||
fswtchParam[i]->setSingleStep(1);
|
fswtchParam[i]->setSingleStep(1);
|
||||||
|
|
|
@ -254,7 +254,7 @@ void CustomSwitchesPanel::setSwitchWidgetVisibility(int i)
|
||||||
cswitchSource2[i]->setVisible(false);
|
cswitchSource2[i]->setVisible(false);
|
||||||
cswitchValue[i]->setVisible(false);
|
cswitchValue[i]->setVisible(false);
|
||||||
cswitchOffset[i]->setVisible(true);
|
cswitchOffset[i]->setVisible(true);
|
||||||
populateSourceCB(cswitchSource1[i], source, POPULATE_SOURCES | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
populateSourceCB(cswitchSource1[i], source, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||||
cswitchOffset[i]->setDecimals(source.getDecimals(model));
|
cswitchOffset[i]->setDecimals(source.getDecimals(model));
|
||||||
cswitchOffset[i]->setSingleStep(source.getStep(model));
|
cswitchOffset[i]->setSingleStep(source.getStep(model));
|
||||||
if (model.customSw[i].func>CS_FN_ELESS && model.customSw[i].func<CS_FN_VEQUAL) {
|
if (model.customSw[i].func>CS_FN_ELESS && model.customSw[i].func<CS_FN_VEQUAL) {
|
||||||
|
@ -280,8 +280,8 @@ void CustomSwitchesPanel::setSwitchWidgetVisibility(int i)
|
||||||
cswitchSource2[i]->setVisible(true);
|
cswitchSource2[i]->setVisible(true);
|
||||||
cswitchValue[i]->setVisible(false);
|
cswitchValue[i]->setVisible(false);
|
||||||
cswitchOffset[i]->setVisible(false);
|
cswitchOffset[i]->setVisible(false);
|
||||||
populateSourceCB(cswitchSource1[i], RawSource(model.customSw[i].val1), POPULATE_SOURCES | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
populateSourceCB(cswitchSource1[i], RawSource(model.customSw[i].val1), model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||||
populateSourceCB(cswitchSource2[i], RawSource(model.customSw[i].val2), POPULATE_SOURCES | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
populateSourceCB(cswitchSource2[i], RawSource(model.customSw[i].val2), model, POPULATE_SOURCES | POPULATE_TRIMS | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
|
||||||
break;
|
break;
|
||||||
case CS_FAMILY_TIMERS:
|
case CS_FAMILY_TIMERS:
|
||||||
cswitchSource1[i]->setVisible(false);
|
cswitchSource1[i]->setVisible(false);
|
||||||
|
|
|
@ -48,7 +48,7 @@ ExpoDialog::ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expoData, i
|
||||||
ui->sideLabel->hide();
|
ui->sideLabel->hide();
|
||||||
ui->sideCB->hide();
|
ui->sideCB->hide();
|
||||||
ui->inputName->setMaxLength(4);
|
ui->inputName->setMaxLength(4);
|
||||||
populateSourceCB(ui->sourceCB, ed->srcRaw, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0));
|
populateSourceCB(ui->sourceCB, ed->srcRaw, model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0));
|
||||||
ui->sourceCB->removeItem(0);
|
ui->sourceCB->removeItem(0);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -26,7 +26,7 @@ void HeliPanel::update()
|
||||||
lock = true;
|
lock = true;
|
||||||
|
|
||||||
ui->swashTypeCB->setCurrentIndex(model.swashRingData.type);
|
ui->swashTypeCB->setCurrentIndex(model.swashRingData.type);
|
||||||
populateSourceCB(ui->swashCollectiveCB, model.swashRingData.collectiveSource, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS);
|
populateSourceCB(ui->swashCollectiveCB, model.swashRingData.collectiveSource, model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS);
|
||||||
ui->swashRingValSB->setValue(model.swashRingData.value);
|
ui->swashRingValSB->setValue(model.swashRingData.value);
|
||||||
ui->swashInvertELE->setChecked(model.swashRingData.invertELE);
|
ui->swashInvertELE->setChecked(model.swashRingData.invertELE);
|
||||||
ui->swashInvertAIL->setChecked(model.swashRingData.invertAIL);
|
ui->swashInvertAIL->setChecked(model.swashRingData.invertAIL);
|
||||||
|
|
|
@ -3,9 +3,10 @@
|
||||||
#include "eeprominterface.h"
|
#include "eeprominterface.h"
|
||||||
#include "helpers.h"
|
#include "helpers.h"
|
||||||
|
|
||||||
MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) :
|
MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, int stickMode) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::MixerDialog),
|
ui(new Ui::MixerDialog),
|
||||||
|
model(model),
|
||||||
md(mixdata),
|
md(mixdata),
|
||||||
lock(false)
|
lock(false)
|
||||||
{
|
{
|
||||||
|
@ -19,7 +20,7 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) :
|
||||||
else
|
else
|
||||||
this->setWindowTitle(tr("DEST -> CH%1%2").arg(md->destCh/10).arg(md->destCh%10));
|
this->setWindowTitle(tr("DEST -> CH%1%2").arg(md->destCh/10).arg(md->destCh%10));
|
||||||
|
|
||||||
populateSourceCB(ui->sourceCB, md->srcRaw, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0));
|
populateSourceCB(ui->sourceCB, md->srcRaw, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0));
|
||||||
ui->sourceCB->removeItem(0);
|
ui->sourceCB->removeItem(0);
|
||||||
|
|
||||||
int limit = GetEepromInterface()->getCapability(OffsetWeight);
|
int limit = GetEepromInterface()->getCapability(OffsetWeight);
|
||||||
|
@ -145,16 +146,18 @@ void MixerDialog::valuesChanged()
|
||||||
if (!lock) {
|
if (!lock) {
|
||||||
lock = true;
|
lock = true;
|
||||||
QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 };
|
QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 };
|
||||||
md->srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt());
|
md->srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt(), &model);
|
||||||
if ((ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt()-65536)<4) {
|
if ((ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt()-65536)<4) {
|
||||||
if (!GetEepromInterface()->getCapability(MixesWithoutExpo)) {
|
if (!GetEepromInterface()->getCapability(MixesWithoutExpo)) {
|
||||||
ui->MixDR_CB->hide();
|
ui->MixDR_CB->hide();
|
||||||
ui->label_MixDR->hide();
|
ui->label_MixDR->hide();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->MixDR_CB->setVisible(true);
|
ui->MixDR_CB->setVisible(true);
|
||||||
ui->label_MixDR->setVisible(true);
|
ui->label_MixDR->setVisible(true);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->MixDR_CB->setHidden(true);
|
ui->MixDR_CB->setHidden(true);
|
||||||
ui->label_MixDR->setHidden(true);
|
ui->label_MixDR->setHidden(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace Ui {
|
||||||
class MixerDialog : public QDialog {
|
class MixerDialog : public QDialog {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
MixerDialog(QWidget *parent, MixData *mixdata, int stickMode);
|
MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, int stickMode);
|
||||||
~MixerDialog();
|
~MixerDialog();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -26,6 +26,7 @@ class MixerDialog : public QDialog {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MixerDialog *ui;
|
Ui::MixerDialog *ui;
|
||||||
|
ModelData & model;
|
||||||
MixData *md;
|
MixData *md;
|
||||||
bool lock;
|
bool lock;
|
||||||
GVarGroup * gvWeightGroup;
|
GVarGroup * gvWeightGroup;
|
||||||
|
|
|
@ -204,7 +204,7 @@ void MixesPanel::gm_openMix(int index)
|
||||||
emit modified();
|
emit modified();
|
||||||
update();
|
update();
|
||||||
|
|
||||||
MixerDialog *g = new MixerDialog(this, &mixd, generalSettings.stickMode);
|
MixerDialog *g = new MixerDialog(this, model, &mixd, generalSettings.stickMode);
|
||||||
if(g->exec()) {
|
if(g->exec()) {
|
||||||
model.mixData[index] = mixd;
|
model.mixData[index] = mixd;
|
||||||
emit modified();
|
emit modified();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue