#include "runedisplay.h" #include "ui_runedisplay.h" #include 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& ri) { runeinfo = ri; } void RuneDisplay::setStyles(const std::vector& 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; }