Add tabs for rumble and shock file viewing.
This commit is contained in:
parent
9dd0bd9897
commit
c056b45184
@ -1,13 +1,18 @@
|
|||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "aboutdialog.h"
|
#include "aboutdialog.h"
|
||||||
#include "fastfile.h"
|
#include "fastfile.h"
|
||||||
|
#include "highlighter_gsc.h"
|
||||||
|
#include "highlighter_cfg.h"
|
||||||
|
#include "highlighter_shock.h"
|
||||||
|
#include "highlighter_rumble.h"
|
||||||
#include "materialviewer.h"
|
#include "materialviewer.h"
|
||||||
#include "preferenceeditor.h"
|
#include "preferenceeditor.h"
|
||||||
|
#include "rumblefileviewer.h"
|
||||||
|
#include "rumblegraphviewer.h"
|
||||||
#include "soundviewer.h"
|
#include "soundviewer.h"
|
||||||
#include "stringtableviewer.h"
|
#include "stringtableviewer.h"
|
||||||
#include "techsetviewer.h"
|
#include "techsetviewer.h"
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
#include "compression.h"
|
|
||||||
#include "fastfile_factory.h"
|
#include "fastfile_factory.h"
|
||||||
#include "iwifile.h"
|
#include "iwifile.h"
|
||||||
#include "ddsfile.h"
|
#include "ddsfile.h"
|
||||||
@ -144,9 +149,13 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
});
|
});
|
||||||
|
|
||||||
connect(mTreeWidget, &XTreeWidget::RawFileSelected, this, [this](std::shared_ptr<RawFile> rawFile, const QString aParentName) {
|
connect(mTreeWidget, &XTreeWidget::RawFileSelected, this, [this](std::shared_ptr<RawFile> rawFile, const QString aParentName) {
|
||||||
QPlainTextEdit *scriptEditor = new QPlainTextEdit(this);
|
QTabWidget *rawTabWidget = new QTabWidget(this);
|
||||||
|
rawTabWidget->setProperty("PARENT_NAME", QVariant::fromValue(aParentName));
|
||||||
|
|
||||||
|
QPlainTextEdit *scriptEditor = new QPlainTextEdit(rawTabWidget);
|
||||||
scriptEditor->setAcceptDrops(false);
|
scriptEditor->setAcceptDrops(false);
|
||||||
scriptEditor->setProperty("PARENT_NAME", QVariant::fromValue(aParentName));
|
scriptEditor->setProperty("PARENT_NAME", QVariant::fromValue(aParentName));
|
||||||
|
scriptEditor->setFont(QFont("Consolas"));
|
||||||
|
|
||||||
if (rawFile->contents.isEmpty()) {
|
if (rawFile->contents.isEmpty()) {
|
||||||
scriptEditor->setPlainText("EMPTY");
|
scriptEditor->setPlainText("EMPTY");
|
||||||
@ -157,15 +166,52 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
QString fileStem = rawFile->path.split('/').last();
|
QString fileStem = rawFile->path.split('/').last();
|
||||||
for (int i = 0; i < ui->tabWidget->count(); i++) {
|
for (int i = 0; i < ui->tabWidget->count(); i++) {
|
||||||
if (ui->tabWidget->tabText(i) == fileStem) {
|
if (ui->tabWidget->tabText(i) == fileStem) {
|
||||||
|
delete scriptEditor;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QScrollArea *scrollArea = new QScrollArea(ui->tabWidget);
|
const int tabStopSpaces = 4;
|
||||||
scrollArea->layout()->addWidget(scriptEditor);
|
QFontMetrics metrics(scriptEditor->font());
|
||||||
|
scriptEditor->setTabStopDistance(tabStopSpaces * metrics.horizontalAdvance(' '));
|
||||||
|
|
||||||
ui->tabWidget->addTab(scrollArea, fileStem);
|
QSyntaxHighlighter *highlighter;
|
||||||
ui->tabWidget->setTabIcon(ui->tabWidget->count() - 1, QIcon(":/icons/icons/Icon_GSCFile.png"));
|
if (fileStem.contains(".gsc")) {
|
||||||
|
highlighter = new Highlighter_GSC(scriptEditor->document());
|
||||||
|
} else if (fileStem.contains(".cfg")) {
|
||||||
|
highlighter = new Highlighter_CFG(scriptEditor->document());
|
||||||
|
} else if (fileStem.contains(".rmb")) {
|
||||||
|
highlighter = new Highlighter_Rumble(scriptEditor->document());
|
||||||
|
|
||||||
|
RumbleGraphViewer *rmbGraphViewer = new RumbleGraphViewer(this);
|
||||||
|
rmbGraphViewer->setProperty("PARENT_NAME", QVariant::fromValue(aParentName));
|
||||||
|
rmbGraphViewer->SetRumbleGraphFile(rawFile);
|
||||||
|
|
||||||
|
rawTabWidget->addTab(rmbGraphViewer, "UI Editor");
|
||||||
|
rawTabWidget->addTab(scriptEditor, "Text Editor");
|
||||||
|
|
||||||
|
ui->tabWidget->addTab(rawTabWidget, fileStem);
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->count() - 1, ZoneFile::AssetTypeToIcon(ASSET_RUMBLE));
|
||||||
|
ui->tabWidget->setCurrentIndex(ui->tabWidget->count() - 1);
|
||||||
|
return;
|
||||||
|
} else if (fileStem.contains(".shock")) {
|
||||||
|
highlighter = new Highlighter_Shock(scriptEditor->document());
|
||||||
|
} else if (rawFile->contents.left(6) == "RUMBLE") {
|
||||||
|
RumbleFileViewer *rmbFileViewer = new RumbleFileViewer(this);
|
||||||
|
rmbFileViewer->setProperty("PARENT_NAME", QVariant::fromValue(aParentName));
|
||||||
|
rmbFileViewer->SetRumbleFile(rawFile);
|
||||||
|
|
||||||
|
rawTabWidget->addTab(rmbFileViewer, "UI Editor");
|
||||||
|
rawTabWidget->addTab(scriptEditor, "Text Editor");
|
||||||
|
|
||||||
|
ui->tabWidget->addTab(rawTabWidget, fileStem);
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->count() - 1, ZoneFile::AssetTypeToIcon(ASSET_RUMBLE));
|
||||||
|
ui->tabWidget->setCurrentIndex(ui->tabWidget->count() - 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->tabWidget->addTab(scriptEditor, fileStem);
|
||||||
|
ui->tabWidget->setTabIcon(ui->tabWidget->count() - 1, ZoneFile::AssetTypeToIcon(ASSET_RAW_FILE));
|
||||||
ui->tabWidget->setCurrentIndex(ui->tabWidget->count() - 1);
|
ui->tabWidget->setCurrentIndex(ui->tabWidget->count() - 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user