diff options
| author | Bryan Galdrikian <[email protected]> | 2017-02-21 12:07:59 -0800 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2017-02-21 12:07:59 -0800 |
| commit | 446ce137c6823ba9eff273bdafdaf266287c7c98 (patch) | |
| tree | d20aab3e2ed08d7b3ca71c2f40db6a93ea00c459 /NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp | |
| download | blast-1.0.0-beta.tar.xz blast-1.0.0-beta.zip | |
first commitv1.0.0-beta
Diffstat (limited to 'NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp')
| -rw-r--r-- | NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp b/NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp new file mode 100644 index 0000000..62b294c --- /dev/null +++ b/NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp @@ -0,0 +1,148 @@ +#include "FileReferencesPanel.h" +#include "ui_FileReferencesPanel.h" +#include "AppMainWindow.h" +#include <QtWidgets/QFileDialog> +#include "ProjectParams.h" +#include <QtCore/QFile> +#include <QtCore/QDebug> +#include "GlobalSettings.h" + +FileReferencesPanel::FileReferencesPanel(QWidget *parent) + : QWidget(parent) + , ui(new Ui::FileReferencesPanel) + , _saveFBX(true) + , _saveBlast(true) + , _saveCollision(true) +{ + ui->setupUi(this); + ui->lineEditFBXSourceAsset->setReadOnly(true); + + ui->checkBoxFBX->setChecked(_saveFBX); + ui->checkBoxBlast->setChecked(_saveBlast); + ui->checkBoxCollision->setChecked(_saveCollision); + + updateValues(); +} + +FileReferencesPanel::~FileReferencesPanel() +{ + delete ui; +} + +void FileReferencesPanel::updateValues() +{ + AppMainWindow& window = AppMainWindow::Inst(); + BPParams& projectParams = BlastProject::ins().getParams(); + BPPFileReferences& fileReferences = projectParams.blast.fileReferences; + if (fileReferences.fbxSourceAsset.buf != nullptr) + ui->lineEditFBXSourceAsset->setText(fileReferences.fbxSourceAsset.buf); + else + ui->lineEditFBXSourceAsset->setText(""); + + GlobalSettings& globalSettings = GlobalSettings::Inst(); + QString projectFileName = globalSettings.m_projectFileName.c_str(); + + if (projectFileName.isEmpty()) + { + ui->lineEditFBX->setText("New.fbx"); + ui->lineEditBlast->setText("New.Blast"); + ui->lineEditCollision->setText("New.repx"); + } + else + { + QFileInfo fileInfo(projectFileName); + + if (fileReferences.fbx.buf != nullptr) + ui->lineEditFBX->setText(fileReferences.fbx.buf); + else + { + ui->lineEditFBX->setText(fileInfo.baseName() + " New.fbx"); + } + + if (fileReferences.blast.buf != nullptr) + ui->lineEditBlast->setText(fileReferences.blast.buf); + else + { + ui->lineEditBlast->setText(fileInfo.baseName() + " New.Blast"); + } + + if (fileReferences.collision.buf != nullptr) + ui->lineEditCollision->setText(fileReferences.collision.buf); + else + { + ui->lineEditCollision->setText(fileInfo.baseName() + " New.repX"); + } + } +} + +void FileReferencesPanel::on_btnOpenFile_clicked() +{ + AppMainWindow& window = AppMainWindow::Inst(); + GlobalSettings& globalSettings = GlobalSettings::Inst(); + + BPParams& projectParams = BlastProject::ins().getParams(); + BPPFileReferences& fileReferences = projectParams.blast.fileReferences; + const char* fbxSourceAsset = fileReferences.fbxSourceAsset.buf; + QString lastDir = (fbxSourceAsset != nullptr ? fbxSourceAsset : window._lastFilePath); + QString fileName = QFileDialog::getOpenFileName(&window, "Open FBX File", lastDir, "FBX File (*.FBX)"); + + ui->lineEditFBXSourceAsset->setText(fileName); +} + +void FileReferencesPanel::on_btnReload_clicked() +{ + +} + +void FileReferencesPanel::on_btnRemove_clicked() +{ + BPParams& projectParams = BlastProject::ins().getParams(); + BPPFileReferences& fileReferences = projectParams.blast.fileReferences; + if (fileReferences.fbxSourceAsset.buf != nullptr) + { + ui->lineEditFBXSourceAsset->setText(""); + freeString(fileReferences.fbxSourceAsset); + // to do: remove source fbx file + } +} + +void FileReferencesPanel::on_checkBoxFBX_stateChanged(int arg1) +{ + _saveFBX = (arg1 == 0 ? false : true); +} + +void FileReferencesPanel::on_checkBoxBlast_stateChanged(int arg1) +{ + _saveBlast = (arg1 == 0 ? false : true); +} + +void FileReferencesPanel::on_checkBoxCollision_stateChanged(int arg1) +{ + _saveCollision = (arg1 == 0 ? false : true); +} + +void FileReferencesPanel::on_btnSave_clicked() +{ + BPParams& projectParams = BlastProject::ins().getParams(); + BPPFileReferences& fileReferences = projectParams.blast.fileReferences; + + copy(fileReferences.fbxSourceAsset, ui->lineEditFBXSourceAsset->text().toUtf8().data()); + + if (_saveFBX) + { + copy(fileReferences.fbx, ui->lineEditFBX->text().toUtf8().data()); + // to do: save fbx file + } + + if (_saveBlast) + { + copy(fileReferences.blast, ui->lineEditBlast->text().toUtf8().data()); + // to do: save blast file + } + + if (_saveCollision) + { + copy(fileReferences.collision, ui->lineEditCollision->text().toUtf8().data()); + // to do: save collision file + } +} |