#include "rumblefileviewer.h" #include "ui_rumblefileviewer.h" RumbleFileViewer::RumbleFileViewer(QWidget *parent) : QWidget(parent) , ui(new Ui::RumbleFileViewer) , mPropertyCount() , mRumbleFile(nullptr) { ui->setupUi(this); ui->tableWidget_Properties->setColumnCount(2); ui->tableWidget_Properties->setRowCount(0); ui->tableWidget_Properties->setColumnWidth(0, 200); ui->tableWidget_Properties->horizontalHeader()->setStretchLastSection(true); } RumbleFileViewer::~RumbleFileViewer() { delete ui; } void RumbleFileViewer::SetRumbleFile(std::shared_ptr aRumbleFile) { mRumbleFile = aRumbleFile; ui->tableWidget_Properties->clear(); const QString magic = aRumbleFile->contents.left(6); if (magic != "RUMBLE") { qDebug() << "Rumble file has invalid magic: " << magic; return; } int firstIndex = 0; int secondIndex = 0; int thirdIndex = 0; int startIndex = 0; for (int i = 0; i < aRumbleFile->contents.count("\\") / 2; i++) { ui->tableWidget_Properties->setRowCount(i + 1); ui->spinBox_Entries->setValue(i + 1); firstIndex = aRumbleFile->contents.indexOf("\\", startIndex); secondIndex = aRumbleFile->contents.indexOf("\\", firstIndex + 1); thirdIndex = aRumbleFile->contents.indexOf("\\", secondIndex + 1); if (thirdIndex == -1) { thirdIndex = aRumbleFile->contents.size(); } const QString keyStr = aRumbleFile->contents.mid(firstIndex + 1, secondIndex - firstIndex - 1); QTableWidgetItem *keyItem = new QTableWidgetItem(keyStr); ui->tableWidget_Properties->setItem(i, 0, keyItem); const QString valStr = aRumbleFile->contents.mid(secondIndex + 1, thirdIndex - secondIndex - 1); QTableWidgetItem *valueItem = new QTableWidgetItem(valStr); ui->tableWidget_Properties->setItem(i, 1, valueItem); startIndex = thirdIndex; } }