aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2017-02-21 12:07:59 -0800
committerBryan Galdrikian <[email protected]>2017-02-21 12:07:59 -0800
commit446ce137c6823ba9eff273bdafdaf266287c7c98 (patch)
treed20aab3e2ed08d7b3ca71c2f40db6a93ea00c459 /NvBlast/tools/ArtistTools/source/BlastPlugin/Window/FileReferencesPanel.cpp
downloadblast-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.cpp148
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
+ }
+}