1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-24 21:07:46 +00:00
novus/mdlviewer/include/singlegearview.h
Joshua Goins 47d612eb8f Add file cache and concurrent item loading to speed up mdlviewer
Instead of extracting item sheets one at a time, it's now done on
multiple threads. Loading gear is now faster since reused files are
cached, switching between races is still wasteful, but it's a good
enough improvement for now.
2023-07-09 10:54:27 -04:00

52 lines
No EOL
1.1 KiB
C++

#pragma once
#include "filecache.h"
#include "gearview.h"
#include <QPushButton>
#include <QWidget>
struct GameData;
class SingleGearView : public QWidget {
Q_OBJECT
public:
explicit SingleGearView(GameData* data, FileCache& cache);
Q_SIGNALS:
void gearChanged();
void raceChanged();
void subraceChanged();
void genderChanged();
void levelOfDetailChanged();
void addToFullModelViewer(GearInfo& info);
public Q_SLOTS:
void clear();
void setGear(const GearInfo& info);
void setRace(Race race);
void setSubrace(Subrace subrace);
void setGender(Gender gender);
void setLevelOfDetail(int lod);
private Q_SLOTS:
void reloadGear();
private:
std::optional<GearInfo> currentGear;
Race currentRace = Race::Hyur;
Subrace currentSubrace = Subrace::Midlander;
Gender currentGender = Gender::Female;
int currentLod = 0;
GearView* gearView = nullptr;
QComboBox *raceCombo, *subraceCombo, *genderCombo, *lodCombo;
QPushButton *addToFMVButton, *exportButton;
bool loadingComboData = false;
GameData* data = nullptr;
};