mirror of
https://github.com/redstrate/Novus.git
synced 2025-04-27 14:17:45 +00:00
Add subrace combo to single gear view
This commit is contained in:
parent
1e423c7792
commit
a9d121d885
2 changed files with 46 additions and 20 deletions
|
@ -15,6 +15,7 @@ Q_SIGNALS:
|
||||||
void gearChanged();
|
void gearChanged();
|
||||||
|
|
||||||
void raceChanged();
|
void raceChanged();
|
||||||
|
void subraceChanged();
|
||||||
void genderChanged();
|
void genderChanged();
|
||||||
void levelOfDetailChanged();
|
void levelOfDetailChanged();
|
||||||
|
|
||||||
|
@ -25,6 +26,7 @@ public Q_SLOTS:
|
||||||
void setGear(GearInfo& info);
|
void setGear(GearInfo& info);
|
||||||
|
|
||||||
void setRace(Race race);
|
void setRace(Race race);
|
||||||
|
void setSubrace(Subrace subrace);
|
||||||
void setGender(Gender gender);
|
void setGender(Gender gender);
|
||||||
void setLevelOfDetail(int lod);
|
void setLevelOfDetail(int lod);
|
||||||
|
|
||||||
|
@ -35,12 +37,13 @@ private:
|
||||||
std::optional<GearInfo> currentGear;
|
std::optional<GearInfo> currentGear;
|
||||||
|
|
||||||
Race currentRace = Race::Hyur;
|
Race currentRace = Race::Hyur;
|
||||||
|
Subrace currentSubrace = Subrace::Midlander;
|
||||||
Gender currentGender = Gender::Female;
|
Gender currentGender = Gender::Female;
|
||||||
int currentLod = 0;
|
int currentLod = 0;
|
||||||
|
|
||||||
GearView* gearView = nullptr;
|
GearView *gearView = nullptr;
|
||||||
QComboBox* raceCombo, *genderCombo, *lodCombo;
|
QComboBox *raceCombo, *subraceCombo, *genderCombo, *lodCombo;
|
||||||
QPushButton* addToFMVButton, *exportButton;
|
QPushButton *addToFMVButton, *exportButton;
|
||||||
|
|
||||||
bool loadingComboData = false;
|
bool loadingComboData = false;
|
||||||
|
|
||||||
|
|
|
@ -17,17 +17,29 @@ SingleGearView::SingleGearView(GameData* data) : data(data) {
|
||||||
layout->addLayout(controlLayout);
|
layout->addLayout(controlLayout);
|
||||||
|
|
||||||
raceCombo = new QComboBox();
|
raceCombo = new QComboBox();
|
||||||
connect(raceCombo, qOverload<int>(&QComboBox::currentIndexChanged), [this](int index) {
|
connect(raceCombo, qOverload<int>(&QComboBox::currentIndexChanged),
|
||||||
if(loadingComboData)
|
[this](int index) {
|
||||||
|
if (loadingComboData)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setRace((Race)index);
|
setRace((Race)index);
|
||||||
});
|
});
|
||||||
controlLayout->addWidget(raceCombo);
|
controlLayout->addWidget(raceCombo);
|
||||||
|
|
||||||
|
subraceCombo = new QComboBox();
|
||||||
|
connect(subraceCombo, qOverload<int>(&QComboBox::currentIndexChanged),
|
||||||
|
[this](int index) {
|
||||||
|
if (loadingComboData)
|
||||||
|
return;
|
||||||
|
|
||||||
|
setSubrace((Subrace)index);
|
||||||
|
});
|
||||||
|
controlLayout->addWidget(subraceCombo);
|
||||||
|
|
||||||
genderCombo = new QComboBox();
|
genderCombo = new QComboBox();
|
||||||
connect(genderCombo, qOverload<int>(&QComboBox::currentIndexChanged), [this](int index) {
|
connect(genderCombo, qOverload<int>(&QComboBox::currentIndexChanged),
|
||||||
if(loadingComboData)
|
[this](int index) {
|
||||||
|
if (loadingComboData)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setGender((Gender)index);
|
setGender((Gender)index);
|
||||||
|
@ -96,6 +108,15 @@ void SingleGearView::setRace(Race race) {
|
||||||
Q_EMIT raceChanged();
|
Q_EMIT raceChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SingleGearView::setSubrace(Subrace subrace) {
|
||||||
|
if (currentSubrace == subrace) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentSubrace = subrace;
|
||||||
|
Q_EMIT subraceChanged();
|
||||||
|
}
|
||||||
|
|
||||||
void SingleGearView::setGender(Gender gender) {
|
void SingleGearView::setGender(Gender gender) {
|
||||||
if (currentGender == gender) {
|
if (currentGender == gender) {
|
||||||
return;
|
return;
|
||||||
|
@ -129,12 +150,14 @@ void SingleGearView::reloadGear() {
|
||||||
loadingComboData = true;
|
loadingComboData = true;
|
||||||
|
|
||||||
raceCombo->clear();
|
raceCombo->clear();
|
||||||
for(auto race : gearView->supportedRaces()) {
|
subraceCombo->clear();
|
||||||
|
for (auto [race, subrace] : gearView->supportedRaces()) {
|
||||||
raceCombo->addItem(magic_enum::enum_name(race).data());
|
raceCombo->addItem(magic_enum::enum_name(race).data());
|
||||||
|
subraceCombo->addItem(magic_enum::enum_name(subrace).data());
|
||||||
}
|
}
|
||||||
|
|
||||||
genderCombo->clear();
|
genderCombo->clear();
|
||||||
for(auto gender : gearView->supportedGenders()) {
|
for (auto gender : gearView->supportedGenders()) {
|
||||||
genderCombo->addItem(magic_enum::enum_name(gender).data());
|
genderCombo->addItem(magic_enum::enum_name(gender).data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue