1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-22 03:57:45 +00:00

Add support for multiple excel sheet pages

This commit is contained in:
Joshua Goins 2022-04-11 12:09:23 -04:00
parent e3e71c10ad
commit e30ea1b31b

View file

@ -12,20 +12,22 @@
MainWindow::MainWindow(GameData& data) : data(data) { MainWindow::MainWindow(GameData& data) : data(data) {
setWindowTitle("Novus"); setWindowTitle("Novus");
QWidget* dummyWidget = new QWidget(); auto dummyWidget = new QWidget();
setCentralWidget(dummyWidget); setCentralWidget(dummyWidget);
QHBoxLayout* layout = new QHBoxLayout(); auto layout = new QHBoxLayout();
dummyWidget->setLayout(layout); dummyWidget->setLayout(layout);
QListWidget* listWidget = new QListWidget(); auto listWidget = new QListWidget();
for(auto name : data.getAllSheetNames()) { for(auto name : data.getAllSheetNames()) {
listWidget->addItem(name.c_str()); listWidget->addItem(name.c_str());
} }
QTableWidget* tableWidget = new QTableWidget(); auto* pageTabWidget = new QTabWidget();
connect(listWidget, &QListWidget::itemClicked, this, [&data, pageTabWidget](QListWidgetItem* item) {
pageTabWidget->clear();
connect(listWidget, &QListWidget::itemClicked, this, [&data, tableWidget](QListWidgetItem* item) {
auto name = item->text().toStdString(); auto name = item->text().toStdString();
auto nameLowercase = item->text().toLower().toStdString(); auto nameLowercase = item->text().toLower().toStdString();
@ -34,11 +36,11 @@ MainWindow::MainWindow(GameData& data) : data(data) {
fmt::print("type = {}, offset = {}\n", column.type, column.offset); fmt::print("type = {}, offset = {}\n", column.type, column.offset);
} }
for (auto page : exh.pages) {
QTableWidget* tableWidget = new QTableWidget();
tableWidget->setColumnCount(exh.columnDefinitions.size()); tableWidget->setColumnCount(exh.columnDefinitions.size());
tableWidget->setRowCount(exh.header.rowCount); tableWidget->setRowCount(exh.header.rowCount);
for(auto page : exh.pages) {
if(page.startId == 0) {
fmt::print("page, row count = {}, start id = {}\n", page.rowCount, page.startId); fmt::print("page, row count = {}, start id = {}\n", page.rowCount, page.startId);
std::string path; std::string path;
@ -61,10 +63,11 @@ MainWindow::MainWindow(GameData& data) : data(data) {
tableWidget->setHorizontalHeaderItem(j, headerItem); tableWidget->setHorizontalHeaderItem(j, headerItem);
} }
} }
}
pageTabWidget->addTab(tableWidget, QString("Page %1").arg(page.startId));
} }
}); });
layout->addWidget(listWidget); layout->addWidget(listWidget);
layout->addWidget(tableWidget); layout->addWidget(pageTabWidget);
} }