forked from MrBesen/lolautoaccept
71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
#include "runedisplay.h"
|
|
#include "ui_runedisplay.h"
|
|
|
|
#include <QTextStream>
|
|
|
|
const static QString EMPTY;
|
|
|
|
RuneDisplay::RuneDisplay(QWidget *parent) : QWidget(parent), ui(new Ui::RuneDisplay) {
|
|
ui->setupUi(this);
|
|
}
|
|
|
|
RuneDisplay::~RuneDisplay() {
|
|
delete ui;
|
|
}
|
|
|
|
void RuneDisplay::setRuneMeta(const std::vector<RuneAspekt>& ri) {
|
|
runeinfo = ri;
|
|
}
|
|
|
|
void RuneDisplay::setStyles(const std::vector<RuneStyle>& styleinfos) {
|
|
runestyles = styleinfos;
|
|
}
|
|
|
|
void RuneDisplay::setRunes(const RunePage& rp) {
|
|
runepage = rp;
|
|
|
|
updateText();
|
|
}
|
|
|
|
void RuneDisplay::applyRunesClicked() {
|
|
emit applyRunes();
|
|
}
|
|
|
|
void RuneDisplay::updateText() {
|
|
QString outStr;
|
|
QTextStream out(&outStr);
|
|
|
|
if(! (bool) runepage) {
|
|
ui->runetext->setText("");
|
|
ui->applyRunesBtn->setEnabled(false);
|
|
return;
|
|
}
|
|
|
|
out << getRuneStyleByID(runepage.primaryStyle) << " with " << getRuneStyleByID(runepage.secondaryStyle) << '\n';
|
|
|
|
for(uint32_t rune : runepage.selectedAspects) {
|
|
out << getRuneText(rune) << '\n';
|
|
}
|
|
ui->runetext->setText(outStr);
|
|
ui->applyRunesBtn->setEnabled(true);
|
|
}
|
|
|
|
QString RuneDisplay::getRuneText(uint32_t id) {
|
|
for(const RuneAspekt& ra : runeinfo) {
|
|
if(ra.id == id) {
|
|
return ra.name;
|
|
}
|
|
}
|
|
|
|
return "(" + QString::number(id) + ")";
|
|
}
|
|
|
|
QString RuneDisplay::getRuneStyleByID(uint32_t id) {
|
|
auto it = std::find_if(runestyles.begin(), runestyles.end(), [id](const RuneStyle& rs) { return rs.id == id; });
|
|
if(it == runestyles.end()) {
|
|
return '(' + QString::number(id) + ')';
|
|
}
|
|
|
|
return it->name;
|
|
}
|