mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 16:25:16 +03:00
Now the wizard is able to configure a simple 4CH plane
This commit is contained in:
parent
e0582cd398
commit
383475a6ed
7 changed files with 131 additions and 73 deletions
|
@ -893,7 +893,7 @@ GeneralSettings::GeneralSettings()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RawSource GeneralSettings::getDefaultSource(unsigned int channel)
|
RawSource GeneralSettings::getDefaultSource(unsigned int channel) const
|
||||||
{
|
{
|
||||||
unsigned int stick_index = chout_ar[4*templateSetup + channel] - 1;
|
unsigned int stick_index = chout_ar[4*templateSetup + channel] - 1;
|
||||||
return RawSource(SOURCE_TYPE_STICK, stick_index);
|
return RawSource(SOURCE_TYPE_STICK, stick_index);
|
||||||
|
@ -904,6 +904,24 @@ ModelData::ModelData()
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ModelData::ModelData(const ModelData & src)
|
||||||
|
{
|
||||||
|
*this = src;
|
||||||
|
}
|
||||||
|
|
||||||
|
ModelData & ModelData::operator = (const ModelData & src)
|
||||||
|
{
|
||||||
|
memcpy(this, &src, sizeof(ModelData));
|
||||||
|
|
||||||
|
for (int i=0; i<C9X_MAX_MIXERS; i++)
|
||||||
|
mixData[i].srcRaw.model = this;
|
||||||
|
for (int i=0; i<C9X_MAX_EXPOS; i++)
|
||||||
|
expoData[i].srcRaw.model = this;
|
||||||
|
swashRingData.collectiveSource.model = this;
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
ExpoData * ModelData::insertInput(const int idx)
|
ExpoData * ModelData::insertInput(const int idx)
|
||||||
{
|
{
|
||||||
memmove(&expoData[idx+1], &expoData[idx], (C9X_MAX_EXPOS-(idx+1))*sizeof(ExpoData));
|
memmove(&expoData[idx+1], &expoData[idx], (C9X_MAX_EXPOS-(idx+1))*sizeof(ExpoData));
|
||||||
|
@ -972,7 +990,7 @@ bool ModelData::isempty()
|
||||||
return !used;
|
return !used;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModelData::setDefaultMixes(GeneralSettings & settings)
|
void ModelData::setDefaultInputs(const GeneralSettings & settings)
|
||||||
{
|
{
|
||||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
for (int i=0; i<NUM_STICKS; i++) {
|
for (int i=0; i<NUM_STICKS; i++) {
|
||||||
|
@ -982,22 +1000,30 @@ void ModelData::setDefaultMixes(GeneralSettings & settings)
|
||||||
expo->srcRaw = settings.getDefaultSource(i);
|
expo->srcRaw = settings.getDefaultSource(i);
|
||||||
expo->weight = 100;
|
expo->weight = 100;
|
||||||
strncpy(inputNames[i], expo->srcRaw.toString().toLatin1().constData(), sizeof(inputNames[i])-1);
|
strncpy(inputNames[i], expo->srcRaw.toString().toLatin1().constData(), sizeof(inputNames[i])-1);
|
||||||
MixData * mix = &mixData[i];
|
|
||||||
mix->destCh = i+1;
|
|
||||||
mix->weight = 100;
|
|
||||||
mix->srcRaw = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, i, this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
for (int i=0; i<NUM_STICKS; i++) {
|
|
||||||
mixData[i].destCh = i+1;
|
|
||||||
mixData[i].srcRaw = RawSource(SOURCE_TYPE_STICK, i);
|
|
||||||
mixData[i].weight = 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModelData::setDefaultValues(unsigned int id, GeneralSettings & settings)
|
void ModelData::setDefaultMixes(const GeneralSettings & settings)
|
||||||
|
{
|
||||||
|
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
|
setDefaultInputs(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i=0; i<NUM_STICKS; i++) {
|
||||||
|
MixData * mix = &mixData[i];
|
||||||
|
mix->destCh = i+1;
|
||||||
|
mix->weight = 100;
|
||||||
|
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
|
mix->srcRaw = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, i, this);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mix->srcRaw = RawSource(SOURCE_TYPE_STICK, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModelData::setDefaultValues(unsigned int id, const GeneralSettings & settings)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
used = true;
|
used = true;
|
||||||
|
|
|
@ -402,7 +402,7 @@ class GeneralSettings {
|
||||||
public:
|
public:
|
||||||
GeneralSettings();
|
GeneralSettings();
|
||||||
|
|
||||||
RawSource getDefaultSource(unsigned int channel);
|
RawSource getDefaultSource(unsigned int channel) const;
|
||||||
|
|
||||||
unsigned int version;
|
unsigned int version;
|
||||||
unsigned int variant;
|
unsigned int variant;
|
||||||
|
@ -891,6 +891,8 @@ class ScriptData {
|
||||||
class ModelData {
|
class ModelData {
|
||||||
public:
|
public:
|
||||||
ModelData();
|
ModelData();
|
||||||
|
ModelData(const ModelData & src);
|
||||||
|
ModelData & operator = (const ModelData & src);
|
||||||
|
|
||||||
ExpoData * insertInput(const int idx);
|
ExpoData * insertInput(const int idx);
|
||||||
void removeInput(const int idx);
|
void removeInput(const int idx);
|
||||||
|
@ -950,8 +952,9 @@ class ModelData {
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
bool isempty();
|
bool isempty();
|
||||||
void setDefaultMixes(GeneralSettings & settings);
|
void setDefaultInputs(const GeneralSettings & settings);
|
||||||
void setDefaultValues(unsigned int id, GeneralSettings & settings);
|
void setDefaultMixes(const GeneralSettings & settings);
|
||||||
|
void setDefaultValues(unsigned int id, const GeneralSettings & settings);
|
||||||
|
|
||||||
int getTrimValue(int phaseIdx, int trimIdx);
|
int getTrimValue(int phaseIdx, int trimIdx);
|
||||||
void setTrimValue(int phaseIdx, int trimIdx, int value);
|
void setTrimValue(int phaseIdx, int trimIdx, int value);
|
||||||
|
|
|
@ -185,7 +185,7 @@ void MdiChild::wizardEdit()
|
||||||
int row = ui->modelsList->currentRow();
|
int row = ui->modelsList->currentRow();
|
||||||
if (row > 0) {
|
if (row > 0) {
|
||||||
checkAndInitModel(row);
|
checkAndInitModel(row);
|
||||||
WizardDialog * wizard = new WizardDialog(row, this);
|
WizardDialog * wizard = new WizardDialog(radioData.generalSettings, row, this);
|
||||||
wizard->exec();
|
wizard->exec();
|
||||||
if (wizard->mix.complete /*TODO rather test the exec() result?*/) {
|
if (wizard->mix.complete /*TODO rather test the exec() result?*/) {
|
||||||
radioData.models[row - 1] = wizard->mix;
|
radioData.models[row - 1] = wizard->mix;
|
||||||
|
|
|
@ -21,16 +21,17 @@ Channel::Channel()
|
||||||
|
|
||||||
void Channel::clear()
|
void Channel::clear()
|
||||||
{
|
{
|
||||||
sourceDlg = -1;
|
page = Page_None;
|
||||||
input1 = NOINPUT;
|
input1 = NOINPUT;
|
||||||
input2 = NOINPUT;
|
input2 = NOINPUT;
|
||||||
weight1 = 0;
|
weight1 = 0;
|
||||||
weight2 = 0;
|
weight2 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WizMix::WizMix(const unsigned int modelId):
|
WizMix::WizMix(const GeneralSettings & settings, const unsigned int modelId):
|
||||||
complete(false),
|
complete(false),
|
||||||
modelId(modelId),
|
modelId(modelId),
|
||||||
|
settings(settings),
|
||||||
vehicle(NOVEHICLE)
|
vehicle(NOVEHICLE)
|
||||||
{
|
{
|
||||||
strcpy(name, " ");
|
strcpy(name, " ");
|
||||||
|
@ -42,6 +43,7 @@ WizMix::operator ModelData()
|
||||||
|
|
||||||
model.used = true;
|
model.used = true;
|
||||||
model.modelId = modelId;
|
model.modelId = modelId;
|
||||||
|
model.setDefaultInputs(settings);
|
||||||
|
|
||||||
// Safe copy model name
|
// Safe copy model name
|
||||||
strncpy(model.name, name, WIZ_MODEL_NAME_LENGTH);
|
strncpy(model.name, name, WIZ_MODEL_NAME_LENGTH);
|
||||||
|
@ -49,8 +51,17 @@ WizMix::operator ModelData()
|
||||||
|
|
||||||
for (int i=0; i<WIZ_MAX_CHANNELS; i++ ) {
|
for (int i=0; i<WIZ_MAX_CHANNELS; i++ ) {
|
||||||
Channel ch = channel[i];
|
Channel ch = channel[i];
|
||||||
if (ch.sourceDlg > 0) {
|
if (ch.page != Page_None) {
|
||||||
//**** INSERT MIXER HERE ****
|
// qDebug() << "channel" << i << "page" << ch.page << ch.input1 << ch.input2;
|
||||||
|
MixData & mix = model.mixData[i];
|
||||||
|
mix.destCh = i+1;
|
||||||
|
if (ch.input1 >= RUDDER && ch.input1 <= AILERON) {
|
||||||
|
if (IS_TARANIS(GetEepromInterface()->getBoard()))
|
||||||
|
mix.srcRaw = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, ch.input1-1, &model);
|
||||||
|
else
|
||||||
|
mix.srcRaw = RawSource(SOURCE_TYPE_STICK, ch.input1-1);
|
||||||
|
}
|
||||||
|
mix.weight = ch.weight1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,9 @@
|
||||||
|
|
||||||
enum Input {
|
enum Input {
|
||||||
NOINPUT,
|
NOINPUT,
|
||||||
THROTTLE,
|
|
||||||
RUDDER,
|
RUDDER,
|
||||||
ELEVATOR,
|
ELEVATOR,
|
||||||
|
THROTTLE,
|
||||||
AILERON,
|
AILERON,
|
||||||
FLAP,
|
FLAP,
|
||||||
AIRBREAK
|
AIRBREAK
|
||||||
|
@ -40,10 +40,33 @@ enum Vehicle {
|
||||||
HELICOPTER
|
HELICOPTER
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum WizardPage {
|
||||||
|
Page_None = -1,
|
||||||
|
Page_Models,
|
||||||
|
Page_Throttle,
|
||||||
|
Page_Wingtypes,
|
||||||
|
Page_Ailerons,
|
||||||
|
Page_Flaps,
|
||||||
|
Page_Airbrakes,
|
||||||
|
Page_Bank,
|
||||||
|
Page_Rudder,
|
||||||
|
Page_Tails,
|
||||||
|
Page_Tail,
|
||||||
|
Page_Vtail,
|
||||||
|
Page_Simpletail,
|
||||||
|
Page_Cyclic,
|
||||||
|
Page_Gyro,
|
||||||
|
Page_Flybar,
|
||||||
|
Page_Fblheli,
|
||||||
|
Page_Helictrl,
|
||||||
|
Page_Multirotor,
|
||||||
|
Page_Conclusion
|
||||||
|
};
|
||||||
|
|
||||||
class Channel
|
class Channel
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int sourceDlg; // Originating dialog, only of interest for producer
|
WizardPage page; // Originating dialog, only of interest for producer
|
||||||
Input input1;
|
Input input1;
|
||||||
Input input2;
|
Input input2;
|
||||||
int weight1;
|
int weight1;
|
||||||
|
@ -59,10 +82,11 @@ class WizMix
|
||||||
bool complete;
|
bool complete;
|
||||||
char name[WIZ_MODEL_NAME_LENGTH + 1];
|
char name[WIZ_MODEL_NAME_LENGTH + 1];
|
||||||
unsigned int modelId;
|
unsigned int modelId;
|
||||||
|
const GeneralSettings & settings;
|
||||||
Vehicle vehicle;
|
Vehicle vehicle;
|
||||||
Channel channel[WIZ_MAX_CHANNELS];
|
Channel channel[WIZ_MAX_CHANNELS];
|
||||||
|
|
||||||
explicit WizMix(const unsigned int modelId);
|
WizMix(const GeneralSettings & settings, const unsigned int modelId);
|
||||||
operator ModelData();
|
operator ModelData();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
#include "wizarddialog.h"
|
#include "wizarddialog.h"
|
||||||
#include "wizarddata.h"
|
#include "wizarddata.h"
|
||||||
|
|
||||||
WizardDialog::WizardDialog(unsigned int modelId, QWidget *parent)
|
WizardDialog::WizardDialog(const GeneralSettings & settings, unsigned int modelId, QWidget *parent)
|
||||||
: QWizard(parent),
|
: QWizard(parent),
|
||||||
mix(modelId)
|
mix(settings, modelId)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Model Wizard"));
|
setWindowTitle(tr("Model Wizard"));
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ void WizardDialog::showHelp()
|
||||||
QMessageBox::information(this, tr("Model Wizard Help"), message);
|
QMessageBox::information(this, tr("Model Wizard Help"), message);
|
||||||
}
|
}
|
||||||
|
|
||||||
StandardPage::StandardPage(int currentPage, WizardDialog *dlg, QString image, QString title, QString text, int nextPage )
|
StandardPage::StandardPage(WizardPage currentPage, WizardDialog *dlg, QString image, QString title, QString text, int nextPage )
|
||||||
: QWizardPage()
|
: QWizardPage()
|
||||||
{
|
{
|
||||||
pageCurrent = currentPage;
|
pageCurrent = currentPage;
|
||||||
|
@ -144,10 +144,9 @@ void StandardPage::populateCB( QComboBox *CB )
|
||||||
for (int j=0; j<WIZ_MAX_CHANNELS; j++)
|
for (int j=0; j<WIZ_MAX_CHANNELS; j++)
|
||||||
CB->removeItem(0);
|
CB->removeItem(0);
|
||||||
|
|
||||||
for (int i=0; i<WIZ_MAX_CHANNELS; i++)
|
for (int i=0; i<WIZ_MAX_CHANNELS; i++) {
|
||||||
{
|
if (wizDlg->mix.channel[i].page == Page_None) {
|
||||||
if (wizDlg->mix.channel[i].sourceDlg < 0){
|
CB->addItem(tr("Channel %1").arg(i+1), i);
|
||||||
CB->addItem(tr("Channel ") + QString("%1").arg(i+1), i);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,10 +157,10 @@ bool StandardPage::bookChannel(QString label, Input input1, int weight1, Input i
|
||||||
|
|
||||||
if (index<0 || index >= WIZ_MAX_CHANNELS)
|
if (index<0 || index >= WIZ_MAX_CHANNELS)
|
||||||
return false;
|
return false;
|
||||||
if (!(wizDlg->mix.channel[index].sourceDlg < 0))
|
if (wizDlg->mix.channel[index].page != Page_None)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
wizDlg->mix.channel[index].sourceDlg = pageCurrent;
|
wizDlg->mix.channel[index].page = pageCurrent;
|
||||||
wizDlg->mix.channel[index].input1 = input1;
|
wizDlg->mix.channel[index].input1 = input1;
|
||||||
wizDlg->mix.channel[index].input2 = input2;
|
wizDlg->mix.channel[index].input2 = input2;
|
||||||
wizDlg->mix.channel[index].weight1 = weight1;
|
wizDlg->mix.channel[index].weight1 = weight1;
|
||||||
|
@ -174,7 +173,7 @@ void StandardPage::releaseChannels()
|
||||||
{
|
{
|
||||||
for (int i=0; i<WIZ_MAX_CHANNELS; i++)
|
for (int i=0; i<WIZ_MAX_CHANNELS; i++)
|
||||||
{
|
{
|
||||||
if (wizDlg->mix.channel[i].sourceDlg == pageCurrent){
|
if (wizDlg->mix.channel[i].page == pageCurrent){
|
||||||
wizDlg->mix.channel[i].clear();
|
wizDlg->mix.channel[i].clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -191,7 +190,7 @@ int StandardPage::nextId() const
|
||||||
}
|
}
|
||||||
|
|
||||||
ModelSelectionPage::ModelSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
ModelSelectionPage::ModelSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
||||||
: StandardPage(WizardDialog::Page_Models, dlg, image, title, text)
|
: StandardPage(Page_Models, dlg, image, title, text)
|
||||||
{
|
{
|
||||||
nameLineEdit = new QLineEdit;
|
nameLineEdit = new QLineEdit;
|
||||||
planeRB = new QRadioButton(tr("Plane"));
|
planeRB = new QRadioButton(tr("Plane"));
|
||||||
|
@ -232,15 +231,15 @@ bool ModelSelectionPage::validatePage()
|
||||||
int ModelSelectionPage::nextId() const
|
int ModelSelectionPage::nextId() const
|
||||||
{
|
{
|
||||||
if (helicopterRB->isChecked())
|
if (helicopterRB->isChecked())
|
||||||
return WizardDialog::Page_Cyclic;
|
return Page_Cyclic;
|
||||||
else if (multirotorRB->isChecked())
|
else if (multirotorRB->isChecked())
|
||||||
return WizardDialog::Page_Multirotor;
|
return Page_Multirotor;
|
||||||
else
|
else
|
||||||
return WizardDialog::Page_Throttle;
|
return Page_Throttle;
|
||||||
}
|
}
|
||||||
|
|
||||||
WingtypeSelectionPage::WingtypeSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
WingtypeSelectionPage::WingtypeSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
||||||
: StandardPage(WizardDialog::Page_Wingtypes, dlg, image, title, text)
|
: StandardPage(Page_Wingtypes, dlg, image, title, text)
|
||||||
{
|
{
|
||||||
standardWingRB = new QRadioButton(tr("Standard Wing"));
|
standardWingRB = new QRadioButton(tr("Standard Wing"));
|
||||||
standardWingRB->setChecked(true);
|
standardWingRB->setChecked(true);
|
||||||
|
@ -254,13 +253,13 @@ WingtypeSelectionPage::WingtypeSelectionPage(WizardDialog *dlg, QString image, Q
|
||||||
int WingtypeSelectionPage::nextId() const
|
int WingtypeSelectionPage::nextId() const
|
||||||
{
|
{
|
||||||
if (deltaWingRB->isChecked())
|
if (deltaWingRB->isChecked())
|
||||||
return WizardDialog::Page_Bank;
|
return Page_Bank;
|
||||||
else
|
else
|
||||||
return WizardDialog::Page_Ailerons;
|
return Page_Ailerons;
|
||||||
}
|
}
|
||||||
|
|
||||||
TailSelectionPage::TailSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
TailSelectionPage::TailSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
||||||
: StandardPage(WizardDialog::Page_Tails, dlg, image, title, text)
|
: StandardPage(Page_Tails, dlg, image, title, text)
|
||||||
{
|
{
|
||||||
standardTailRB = new QRadioButton(tr("Elevator and Rudder"));
|
standardTailRB = new QRadioButton(tr("Elevator and Rudder"));
|
||||||
standardTailRB->setChecked(true);
|
standardTailRB->setChecked(true);
|
||||||
|
@ -277,15 +276,15 @@ TailSelectionPage::TailSelectionPage(WizardDialog *dlg, QString image, QString t
|
||||||
int TailSelectionPage::nextId() const
|
int TailSelectionPage::nextId() const
|
||||||
{
|
{
|
||||||
if (simpleTailRB->isChecked())
|
if (simpleTailRB->isChecked())
|
||||||
return WizardDialog::Page_Simpletail;
|
return Page_Simpletail;
|
||||||
else if (vTailRB->isChecked())
|
else if (vTailRB->isChecked())
|
||||||
return WizardDialog::Page_Vtail;
|
return Page_Vtail;
|
||||||
else
|
else
|
||||||
return WizardDialog::Page_Tail;
|
return Page_Tail;
|
||||||
}
|
}
|
||||||
|
|
||||||
FlybarSelectionPage::FlybarSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
FlybarSelectionPage::FlybarSelectionPage(WizardDialog *dlg, QString image, QString title, QString text)
|
||||||
: StandardPage(WizardDialog::Page_Flybar, dlg, image, title, text)
|
: StandardPage(Page_Flybar, dlg, image, title, text)
|
||||||
{
|
{
|
||||||
flybarRB = new QRadioButton(tr("Has Flybar"));
|
flybarRB = new QRadioButton(tr("Has Flybar"));
|
||||||
flybarRB->setChecked(true);
|
flybarRB->setChecked(true);
|
||||||
|
@ -300,13 +299,13 @@ FlybarSelectionPage::FlybarSelectionPage(WizardDialog *dlg, QString image, QStri
|
||||||
int FlybarSelectionPage::nextId() const
|
int FlybarSelectionPage::nextId() const
|
||||||
{
|
{
|
||||||
if (flybarRB->isChecked())
|
if (flybarRB->isChecked())
|
||||||
return WizardDialog::Page_Helictrl;
|
return Page_Helictrl;
|
||||||
else
|
else
|
||||||
return WizardDialog::Page_Fblheli;
|
return Page_Fblheli;
|
||||||
}
|
}
|
||||||
|
|
||||||
ThrottlePage::ThrottlePage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
ThrottlePage::ThrottlePage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Throttle, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Throttle, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
motorRB = new QRadioButton(tr("Yes"));
|
motorRB = new QRadioButton(tr("Yes"));
|
||||||
noMotorRB = new QRadioButton(tr("No"));
|
noMotorRB = new QRadioButton(tr("No"));
|
||||||
|
@ -330,7 +329,7 @@ bool ThrottlePage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
AileronsPage::AileronsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
AileronsPage::AileronsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Ailerons, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Ailerons, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
noAileronsRB = new QRadioButton(tr("No"));
|
noAileronsRB = new QRadioButton(tr("No"));
|
||||||
oneAileronRB = new QRadioButton(tr("Yes, controlled by a single channel"));
|
oneAileronRB = new QRadioButton(tr("Yes, controlled by a single channel"));
|
||||||
|
@ -367,7 +366,7 @@ bool AileronsPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
FlapsPage::FlapsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
FlapsPage::FlapsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Flaps, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Flaps, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
noFlapsRB = new QRadioButton(tr("No"));
|
noFlapsRB = new QRadioButton(tr("No"));
|
||||||
oneFlapRB = new QRadioButton(tr("Yes, controlled by a single channel"));
|
oneFlapRB = new QRadioButton(tr("Yes, controlled by a single channel"));
|
||||||
|
@ -404,7 +403,7 @@ bool FlapsPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
AirbreaksPage::AirbreaksPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
AirbreaksPage::AirbreaksPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Airbrakes, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Airbrakes, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
noAirbreaksRB = new QRadioButton(tr("No"));
|
noAirbreaksRB = new QRadioButton(tr("No"));
|
||||||
oneAirbreakRB = new QRadioButton(tr("Yes, controlled by a single channel"));
|
oneAirbreakRB = new QRadioButton(tr("Yes, controlled by a single channel"));
|
||||||
|
@ -441,7 +440,7 @@ bool AirbreaksPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
BankPage::BankPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
BankPage::BankPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Bank, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Bank, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
oneElevonChRB = new QRadioButton(tr("One"));
|
oneElevonChRB = new QRadioButton(tr("One"));
|
||||||
oneElevonChRB->setChecked(true);
|
oneElevonChRB->setChecked(true);
|
||||||
|
@ -473,7 +472,7 @@ bool BankPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
RudderPage::RudderPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
RudderPage::RudderPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Rudder, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Rudder, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
noRudderRB = new QRadioButton(tr("No"));
|
noRudderRB = new QRadioButton(tr("No"));
|
||||||
noRudderRB->setChecked(true);
|
noRudderRB->setChecked(true);
|
||||||
|
@ -500,7 +499,7 @@ bool RudderPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
VTailPage::VTailPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
VTailPage::VTailPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Tail, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Tail, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
tail1CB = new QComboBox();
|
tail1CB = new QComboBox();
|
||||||
tail2CB = new QComboBox();
|
tail2CB = new QComboBox();
|
||||||
|
@ -524,7 +523,7 @@ bool VTailPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
TailPage::TailPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
TailPage::TailPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Tail, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Tail, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
elevatorCB = new QComboBox();
|
elevatorCB = new QComboBox();
|
||||||
rudderCB = new QComboBox();
|
rudderCB = new QComboBox();
|
||||||
|
@ -548,7 +547,7 @@ bool TailPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
SimpleTailPage::SimpleTailPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
SimpleTailPage::SimpleTailPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Simpletail, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Simpletail, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
elevatorCB = new QComboBox();
|
elevatorCB = new QComboBox();
|
||||||
|
|
||||||
|
@ -567,7 +566,7 @@ bool SimpleTailPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
CyclicPage::CyclicPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
CyclicPage::CyclicPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Cyclic, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Cyclic, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
cyclic90RB = new QRadioButton(tr("90"));
|
cyclic90RB = new QRadioButton(tr("90"));
|
||||||
cyclic90RB->setChecked(true);
|
cyclic90RB->setChecked(true);
|
||||||
|
@ -591,7 +590,7 @@ bool CyclicPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
GyroPage::GyroPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
GyroPage::GyroPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Gyro, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Gyro, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
noGyroRB = new QRadioButton(tr("No"));
|
noGyroRB = new QRadioButton(tr("No"));
|
||||||
noGyroRB->setChecked(true);
|
noGyroRB->setChecked(true);
|
||||||
|
@ -613,7 +612,7 @@ bool GyroPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
FblPage::FblPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
FblPage::FblPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Fblheli, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Fblheli, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
throttleCB = new QComboBox();
|
throttleCB = new QComboBox();
|
||||||
yawCB = new QComboBox();
|
yawCB = new QComboBox();
|
||||||
|
@ -647,7 +646,7 @@ bool FblPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
HeliPage::HeliPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
HeliPage::HeliPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Helictrl, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Helictrl, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
throttleCB = new QComboBox();
|
throttleCB = new QComboBox();
|
||||||
yawCB = new QComboBox();
|
yawCB = new QComboBox();
|
||||||
|
@ -681,7 +680,7 @@ bool HeliPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
MultirotorPage::MultirotorPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
MultirotorPage::MultirotorPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Multirotor, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Multirotor, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
throttleCB = new QComboBox();
|
throttleCB = new QComboBox();
|
||||||
yawCB = new QComboBox();
|
yawCB = new QComboBox();
|
||||||
|
@ -715,7 +714,7 @@ bool MultirotorPage::validatePage() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage)
|
||||||
: StandardPage(WizardDialog::Page_Conclusion, dlg, image, title, text, nextPage)
|
: StandardPage(Page_Conclusion, dlg, image, title, text, nextPage)
|
||||||
{
|
{
|
||||||
textLabel = new QLabel();
|
textLabel = new QLabel();
|
||||||
proceedCB = new QCheckBox(tr("OK, I understand."));
|
proceedCB = new QCheckBox(tr("OK, I understand."));
|
||||||
|
@ -780,7 +779,7 @@ QString WizardPrinter::print()
|
||||||
str = QString(tr("Model Name: ")) + mix->name + "\n";
|
str = QString(tr("Model Name: ")) + mix->name + "\n";
|
||||||
str += QString(tr("Model Type: ")) + vehicleName(mix->vehicle) + "\n";
|
str += QString(tr("Model Type: ")) + vehicleName(mix->vehicle) + "\n";
|
||||||
for (int i=0; i<WIZ_MAX_CHANNELS; i++){
|
for (int i=0; i<WIZ_MAX_CHANNELS; i++){
|
||||||
if (!(mix->channel[i].sourceDlg < 0 )){
|
if (mix->channel[i].page != Page_None) {
|
||||||
Channel ch = mix->channel[i];
|
Channel ch = mix->channel[i];
|
||||||
str += QString(tr("Channel %1: ").arg(i+1));
|
str += QString(tr("Channel %1: ").arg(i+1));
|
||||||
str += printChannel(ch.input1, ch.weight1, ch.input2, ch.weight2 );
|
str += printChannel(ch.input1, ch.weight1, ch.input2, ch.weight2 );
|
||||||
|
|
|
@ -29,14 +29,9 @@ class WizardDialog : public QWizard
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
enum { Page_Models, Page_Throttle, Page_Wingtypes, Page_Ailerons, Page_Flaps,
|
|
||||||
Page_Airbrakes, Page_Bank, Page_Rudder, Page_Tails, Page_Tail,
|
|
||||||
Page_Vtail, Page_Simpletail, Page_Cyclic, Page_Gyro, Page_Flybar,
|
|
||||||
Page_Fblheli, Page_Helictrl, Page_Multirotor,
|
|
||||||
Page_Conclusion };
|
|
||||||
|
|
||||||
WizMix mix;
|
WizMix mix;
|
||||||
WizardDialog(const unsigned int modelId, QWidget *parent = 0);
|
WizardDialog(const GeneralSettings & settings, const unsigned int modelId, QWidget *parent = 0);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void showHelp();
|
void showHelp();
|
||||||
|
@ -46,7 +41,7 @@ class StandardPage: public QWizardPage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
StandardPage(int curPage, WizardDialog *dlg, QString image, QString title, QString text, int nextPage=-1);
|
StandardPage(WizardPage curPage, WizardDialog *dlg, QString image, QString title, QString text, int nextPage=-1);
|
||||||
WizardDialog *wizDlg;
|
WizardDialog *wizDlg;
|
||||||
void populateCB( QComboBox *);
|
void populateCB( QComboBox *);
|
||||||
bool bookChannel(QString label, Input input1, int weight1, Input input2=NOINPUT, int weight2=0 );
|
bool bookChannel(QString label, Input input1, int weight1, Input input2=NOINPUT, int weight2=0 );
|
||||||
|
@ -54,7 +49,7 @@ public:
|
||||||
void cleanupPage();
|
void cleanupPage();
|
||||||
private:
|
private:
|
||||||
QLabel *topLabel;
|
QLabel *topLabel;
|
||||||
int pageCurrent;
|
WizardPage pageCurrent;
|
||||||
int pageFollower;
|
int pageFollower;
|
||||||
int nextId() const;
|
int nextId() const;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue