Merge branch 'main' into hultonha_LYN-2315_camera-phase-2

This commit is contained in:
hultonha
2021-04-29 14:32:57 +01:00
2198 changed files with 2937 additions and 19198 deletions
@@ -19,6 +19,8 @@
#include <QPushButton>
// AzCore
#include <AzCore/Utils/Utils.h>
#include <Pak/CryPakUtils.h>
// Editor
@@ -70,12 +72,13 @@ void CAlembicCompileDialog::OnInitDialog()
SDirectoryEnumeratorHelper dirHelper;
dirHelper.ScanDirectoryRecursive(gEnv->pCryPak, "@engroot@/", "Editor/Presets/GeomCache", filePattern, presetFiles);
auto engineAssetSourceRoot = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets";
dirHelper.ScanDirectoryRecursive(gEnv->pCryPak, engineAssetSourceRoot.c_str(), "Editor/Presets/GeomCache", filePattern, presetFiles);
for (auto iter = presetFiles.begin(); iter != presetFiles.end(); ++iter)
{
const auto& file = *iter;
const AZStd::string filePath = "@engroot@/" + file;
const AZ::IO::FixedMaxPath filePath = engineAssetSourceRoot / file;
m_presets.push_back(LoadConfig(Path::GetFileName(file.c_str()), XmlHelpers::LoadXmlFromFile(filePath.c_str())));
m_ui->m_presetComboBox->addItem(m_presets.back().m_name);
}
+4 -144
View File
@@ -149,7 +149,6 @@ AZ_POP_DISABLE_WARNING
#include "LevelFileDialog.h"
#include "LevelIndependentFileMan.h"
#include "WelcomeScreen/WelcomeScreenDialog.h"
#include "Dialogs/DuplicatedObjectsHandlerDlg.h"
#include "Controls/ReflectedPropertyControl/PropertyCtrl.h"
#include "Controls/ReflectedPropertyControl/ReflectedVar.h"
@@ -400,9 +399,7 @@ void CCryEditApp::RegisterActionHandlers()
ON_COMMAND(ID_OBJECTMODIFY_UNFREEZE, OnObjectmodifyUnfreeze)
ON_COMMAND(ID_UNDO, OnUndo)
ON_COMMAND(ID_TOOLBAR_WIDGET_REDO, OnUndo) // Can't use the same ID, because for the menu we can't have a QWidgetAction, while for the toolbar we want one
ON_COMMAND(ID_SELECTION_SAVE, OnSelectionSave)
ON_COMMAND(ID_IMPORT_ASSET, OnOpenAssetImporter)
ON_COMMAND(ID_SELECTION_LOAD, OnSelectionLoad)
ON_COMMAND(ID_LOCK_SELECTION, OnLockSelection)
ON_COMMAND(ID_EDIT_LEVELDATA, OnEditLevelData)
ON_COMMAND(ID_FILE_EDITLOGFILE, OnFileEditLogFile)
@@ -1157,9 +1154,9 @@ BOOL CCryEditApp::CheckIfAlreadyRunning()
m_mutexApplication = new QSharedMemory(O3DEApplicationName);
if (!m_mutexApplication->create(16))
{
// Don't prompt the user in non-interactive export mode. Instead, default to allowing multiple instances to
// run simultaneously, so that multiple level exports can be run in parallel on the same machine.
// NOTE: If you choose to do this, be sure to export *different* levels, since nothing prevents multiple runs
// Don't prompt the user in non-interactive export mode. Instead, default to allowing multiple instances to
// run simultaneously, so that multiple level exports can be run in parallel on the same machine.
// NOTE: If you choose to do this, be sure to export *different* levels, since nothing prevents multiple runs
// from trying to write to the same level at the same time.
// If we're running interactively, let's ask and make sure the user actually intended to do this.
if (!m_bExportMode && QMessageBox::question(AzToolsFramework::GetActiveWindow(), QObject::tr("Too many apps"), QObject::tr("There is already an Open 3D Engine application running\nDo you want to start another one?")) != QMessageBox::Yes)
@@ -1720,7 +1717,7 @@ BOOL CCryEditApp::InitInstance()
AzQtComponents::StyleManager::addSearchPaths(
QStringLiteral("style"),
engineRoot.filePath(QStringLiteral("Code/Sandbox/Editor/Style")),
QStringLiteral(":/Editor/Style"),
QStringLiteral(":/Assets/Editor/Style"),
engineRootPath);
AzQtComponents::StyleManager::setStyleSheet(mainWindow, QStringLiteral("style:Editor.qss"));
@@ -3019,149 +3016,12 @@ void CCryEditApp::OnFileExportOcclusionMesh()
pExportManager->Export(levelName.toUtf8().data(), "ocm", levelPath.toUtf8().data(), false, false, true);
}
void CCryEditApp::OnSelectionSave()
{
char szFilters[] = "Object Group Files (*.grp)";
QtUtil::QtMFCScopedHWNDCapture cap;
CAutoDirectoryRestoreFileDialog dlg(QFileDialog::AcceptSave, QFileDialog::AnyFile, "grp", {}, szFilters, {}, {}, cap);
if (dlg.exec())
{
QWaitCursor wait;
CSelectionGroup* sel = GetIEditor()->GetSelection();
//CXmlArchive xmlAr( "Objects" );
XmlNodeRef root = XmlHelpers::CreateXmlNode("Objects");
CObjectArchive ar(GetIEditor()->GetObjectManager(), root, false);
// Save all objects to XML.
for (int i = 0; i < sel->GetCount(); i++)
{
ar.SaveObject(sel->GetObject(i));
}
QString fileName = dlg.selectedFiles().first();
XmlHelpers::SaveXmlNode(GetIEditor()->GetFileUtil(), root, fileName.toStdString().c_str());
//xmlAr.Save( dlg.GetPathName() );
}
}
//////////////////////////////////////////////////////////////////////////
struct SDuplicatedObject
{
SDuplicatedObject(const QString& name, const GUID& id)
{
m_name = name;
m_id = id;
}
QString m_name;
GUID m_id;
};
void GatherAllObjects(XmlNodeRef node, std::vector<SDuplicatedObject>& outDuplicatedObjects)
{
if (!azstricmp(node->getTag(), "Object"))
{
GUID guid;
if (node->getAttr("Id", guid))
{
if (GetIEditor()->GetObjectManager()->FindObject(guid))
{
QString name;
node->getAttr("Name", name);
outDuplicatedObjects.push_back(SDuplicatedObject(name, guid));
}
}
}
for (int i = 0, nChildCount(node->getChildCount()); i < nChildCount; ++i)
{
XmlNodeRef childNode = node->getChild(i);
if (childNode == NULL)
{
continue;
}
GatherAllObjects(childNode, outDuplicatedObjects);
}
}
void CCryEditApp::OnOpenAssetImporter()
{
QtViewPaneManager::instance()->OpenPane(LyViewPane::SceneSettings);
}
void CCryEditApp::OnSelectionLoad()
{
// Load objects from .grp file.
QtUtil::QtMFCScopedHWNDCapture cap;
CAutoDirectoryRestoreFileDialog dlg(QFileDialog::AcceptOpen, QFileDialog::ExistingFile, "grp", {}, "Object Group Files (*.grp)", {}, {}, cap);
if (dlg.exec() != QDialog::Accepted)
{
return;
}
QWaitCursor wait;
XmlNodeRef root = XmlHelpers::LoadXmlFromFile(dlg.selectedFiles().first().toStdString().c_str());
if (!root)
{
QMessageBox::critical(AzToolsFramework::GetActiveWindow(), QString(), QObject::tr("Error at loading group file."));
return;
}
std::vector<SDuplicatedObject> duplicatedObjects;
GatherAllObjects(root, duplicatedObjects);
CDuplicatedObjectsHandlerDlg::EResult result(CDuplicatedObjectsHandlerDlg::eResult_None);
int nDuplicatedObjectSize(duplicatedObjects.size());
if (!duplicatedObjects.empty())
{
QString msg = QObject::tr("The following object(s) already exist(s) in the level.\r\n\r\n");
for (int i = 0; i < nDuplicatedObjectSize; ++i)
{
msg += QStringLiteral("\t");
msg += duplicatedObjects[i].m_name;
if (i < nDuplicatedObjectSize - 1)
{
msg += QStringLiteral("\r\n");
}
}
CDuplicatedObjectsHandlerDlg confirmDlg(msg);
if (confirmDlg.exec() == QDialog::Rejected)
{
return;
}
result = confirmDlg.GetResult();
}
CUndo undo("Load Objects");
GetIEditor()->ClearSelection();
CObjectArchive ar(GetIEditor()->GetObjectManager(), root, true);
if (result == CDuplicatedObjectsHandlerDlg::eResult_Override)
{
for (int i = 0; i < nDuplicatedObjectSize; ++i)
{
CBaseObject* pObj = GetIEditor()->GetObjectManager()->FindObject(duplicatedObjects[i].m_id);
if (pObj)
{
GetIEditor()->GetObjectManager()->DeleteObject(pObj);
}
}
}
else if (result == CDuplicatedObjectsHandlerDlg::eResult_CreateCopies)
{
ar.MakeNewIds(true);
}
GetIEditor()->GetObjectManager()->LoadObjects(ar, true);
GetIEditor()->SetModifiedFlag();
GetIEditor()->SetModifiedModule(eModifiedBrushes);
}
//////////////////////////////////////////////////////////////////////////
void CCryEditApp::OnUpdateSelected(QAction* action)
{
-2
View File
@@ -232,9 +232,7 @@ public:
void OnObjectmodifyFreeze();
void OnObjectmodifyUnfreeze();
void OnUndo();
void OnSelectionSave();
void OnOpenAssetImporter();
void OnSelectionLoad();
void OnUpdateSelected(QAction* action);
void OnLockSelection();
void OnEditLevelData();
+9 -8
View File
@@ -83,7 +83,7 @@ static const char* kHoldFolder = "$tmp_hold"; // conform to the ignored file typ
static const char* kSaveBackupFolder = "_savebackup";
static const char* kResizeTempFolder = "$tmp_resize"; // conform to the ignored file types $tmp[0-9]*_ regex
static const char* kBackupOrTempFolders[] =
static const char* kBackupOrTempFolders[] =
{
kAutoBackupFolder,
kHoldFolder,
@@ -1164,7 +1164,7 @@ bool CCryEditDoc::OnSaveDocument(const QString& lpszPathName)
{
DoSaveDocument(lpszPathName, context);
saveSuccess = AfterSaveDocument(lpszPathName, context);
}
}
}
return saveSuccess;
@@ -1436,7 +1436,7 @@ bool CCryEditDoc::SaveLevel(const QString& filename)
// Save AZ entities to the editor level.
bool contentsAllSaved = false; // abort level save if anything within it fails
auto tempFilenameStrData = tempSaveFile.toStdString();
auto filenameStrData = fullPathName.toStdString();
@@ -1458,7 +1458,7 @@ bool CCryEditDoc::SaveLevel(const QString& filename)
}
}
AZStd::vector<AZ::Entity*> editorEntities;
AzToolsFramework::EditorEntityContextRequestBus::Broadcast(
&AzToolsFramework::EditorEntityContextRequestBus::Events::GetLooseEditorEntities,
@@ -1815,7 +1815,7 @@ bool CCryEditDoc::LoadLevel(TDocMultiArchive& arrXmlAr, const QString& absoluteC
AzFramework::ApplicationRequests::Bus::BroadcastResult(isPrefabEnabled, &AzFramework::ApplicationRequests::IsPrefabSystemEnabled);
auto pIPak = GetIEditor()->GetSystem()->GetIPak();
QString folderPath = QFileInfo(absoluteCryFilePath).absolutePath();
OnStartLevelResourceList();
@@ -2391,7 +2391,8 @@ void CCryEditDoc::InitEmptyLevel(int /*resolution*/, int /*unitSize*/, bool /*bU
GetIEditor()->GetGameEngine()->SetLevelCreated(false);
// Default time of day.
XmlNodeRef root = GetISystem()->LoadXmlFromFile("@engroot@/Editor/default_time_of_day.xml");
auto defaultTimeOfDayPath = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets" / "Editor" / "default_time_of_day.xml";
XmlNodeRef root = GetISystem()->LoadXmlFromFile(defaultTimeOfDayPath.c_str());
if (root)
{
ITimeOfDay* pTimeOfDay = gEnv->p3DEngine ? gEnv->p3DEngine->GetTimeOfDay() : nullptr;
@@ -2454,7 +2455,7 @@ void CCryEditDoc::CreateDefaultLevelAssets(int resolution, int unitSize)
AZ::Transform worldTransform = AZ::Transform::CreateIdentity();
worldTransform = AZ::Transform::CreateTranslation(AZ::Vector3(halfTerrainSize, halfTerrainSize, m_envProbeHeight / 2));
AzToolsFramework::SliceEditorEntityOwnershipServiceNotificationBus::Handler::BusConnect();
GetIEditor()->SuspendUndo();
AzToolsFramework::SliceEditorEntityOwnershipServiceRequestBus::Broadcast(
@@ -2613,7 +2614,7 @@ void CCryEditDoc::OnSliceInstantiated(const AZ::Data::AssetId& sliceAssetId, AZ:
sliceAddress.SetReference(nullptr);
SetModifiedFlag(true);
SetModifiedModules(eModifiedEntities);
AzToolsFramework::SliceEditorEntityOwnershipServiceNotificationBus::Handler::BusDisconnect();
//save after level default slice fully instantiated
@@ -1,51 +0,0 @@
/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
// Original file Copyright Crytek GMBH or its affiliates, used under license.
#include "EditorDefs.h"
#include "DuplicatedObjectsHandlerDlg.h"
AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
#include <Dialogs/ui_DuplicatedObjectsHandlerDlg.h>
AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
CDuplicatedObjectsHandlerDlg::CDuplicatedObjectsHandlerDlg(const QString& msg, QWidget* pParent)
: QDialog(pParent)
, m_ui(new Ui::DuplicatedObjectsHandlerDlg)
{
m_ui->setupUi(this);
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
m_ui->textBrowser->setPlainText(msg);
connect(m_ui->buttonOverride, &QPushButton::clicked, this, &CDuplicatedObjectsHandlerDlg::OnBnClickedOverrideBtn);
connect(m_ui->buttonCreateCopies, &QPushButton::clicked, this, &CDuplicatedObjectsHandlerDlg::OnBnClickedCreateCopiesBtn);
}
CDuplicatedObjectsHandlerDlg::~CDuplicatedObjectsHandlerDlg()
{
}
void CDuplicatedObjectsHandlerDlg::OnBnClickedOverrideBtn()
{
m_result = eResult_Override;
accept();
}
void CDuplicatedObjectsHandlerDlg::OnBnClickedCreateCopiesBtn()
{
m_result = eResult_CreateCopies;
accept();
}
#include <Dialogs/moc_DuplicatedObjectsHandlerDlg.cpp>
@@ -1,57 +0,0 @@
/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
// Original file Copyright Crytek GMBH or its affiliates, used under license.
#ifndef CRYINCLUDE_EDITOR_DIALOGS_DUPLICATEDOBJECTSHANDLERDLG_H
#define CRYINCLUDE_EDITOR_DIALOGS_DUPLICATEDOBJECTSHANDLERDLG_H
#pragma once
#if !defined(Q_MOC_RUN)
#include <QDialog>
#endif
namespace Ui
{
class DuplicatedObjectsHandlerDlg;
}
class CDuplicatedObjectsHandlerDlg
: public QDialog
{
Q_OBJECT
public:
CDuplicatedObjectsHandlerDlg(const QString& msg, QWidget* pParent = nullptr);
virtual ~CDuplicatedObjectsHandlerDlg();
enum EResult
{
eResult_None,
eResult_Override,
eResult_CreateCopies
};
EResult GetResult() const
{
return m_result;
}
protected:
EResult m_result;
void OnBnClickedOverrideBtn();
void OnBnClickedCreateCopiesBtn();
QScopedPointer<Ui::DuplicatedObjectsHandlerDlg> m_ui;
};
#endif // CRYINCLUDE_EDITOR_DIALOGS_DUPLICATEDOBJECTSHANDLERDLG_H
@@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DuplicatedObjectsHandlerDlg</class>
<widget class="QDialog" name="DuplicatedObjectsHandlerDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>474</width>
<height>204</height>
</rect>
</property>
<property name="windowTitle">
<string>Duplicated Objects Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTextBrowser" name="textBrowser">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="buttonOverride">
<property name="text">
<string>Override</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="buttonCreateCopies">
<property name="text">
<string>Create Copies</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>DuplicatedObjectsHandlerDlg</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>258</x>
<y>183</y>
</hint>
<hint type="destinationlabel">
<x>190</x>
<y>184</y>
</hint>
</hints>
</connection>
</connections>
</ui>
@@ -71,24 +71,8 @@ CPythonScriptsDialog::CPythonScriptsDialog(QWidget* parent)
AzQtComponents::LineEdit::applySearchStyle(ui->searchField);
QStringList scriptFolders;
const auto editorEnvStr = gSettings.strEditorEnv.toLocal8Bit();
AZStd::string editorScriptsPath = AZStd::string::format("@engroot@/%s", editorEnvStr.constData());
XmlNodeRef envNode = XmlHelpers::LoadXmlFromFile(editorScriptsPath.c_str());
if (envNode)
{
QString scriptPath;
int childrenCount = envNode->getChildCount();
for (int idx = 0; idx < childrenCount; ++idx)
{
XmlNodeRef child = envNode->getChild(idx);
if (child->haveAttr("scriptPath"))
{
scriptPath = child->getAttr("scriptPath");
scriptFolders.push_back(scriptPath);
}
}
}
auto engineScriptPath = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets" / "Editor" / "Scripts";
scriptFolders.push_back(engineScriptPath.c_str());
AZ::IO::FixedMaxPathString projectPath = AZ::Utils::GetProjectPath();
ScanFolderForScripts(QString("%1/Editor/Scripts").arg(projectPath.c_str()), scriptFolders);
@@ -1,218 +0,0 @@
/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
#include "EditorDefs.h"
#include "NewEntityDialog.h"
// Qt
#include <QPushButton>
#include <QToolTip>
#include <QMessageBox>
// Editor
#include "Dialogs/QT/ui_NewEntityDialog.h"
NewEntityDialog::NewEntityDialog(QWidget* parent)
: QDialog(parent)
, ui(new Ui::NewEntityDialog)
{
entityNameValidator = new EntityNameValidator(this);
ui->setupUi(this);
ui->entityName->setFocus();
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
connect(ui->entityName, SIGNAL(textChanged(QString)), this, SLOT(ValidateInput()));
connect(ui->categoryName, SIGNAL(textChanged(QString)), this, SLOT(ValidateInput()));
SetCategoryCompleterPath((Path::GetEditingGameDataFolder() + "/Scripts/Entities").c_str());
SetNameValidatorPath((Path::GetEditingGameDataFolder() + "/Entities").c_str());
}
NewEntityDialog::~NewEntityDialog()
{
SAFE_DELETE(entityNameValidator);
SAFE_DELETE(folderNameCompleter);
delete ui;
}
void NewEntityDialog::SetCategoryCompleterPath(CryStringT<char> path)
{
SAFE_DELETE(folderNameCompleter);
QDirIterator directoryIt(QString::fromLocal8Bit(path.c_str(), path.length()), QDir::NoDotAndDotDot | QDir::AllDirs, QDirIterator::Subdirectories);
baseDir = directoryIt.path() + "/";
QStringList dirs;
while (directoryIt.hasNext())
{
QString dir = directoryIt.next().remove(baseDir);
dirs.append(dir);
}
folderNameCompleter = new QCompleter(dirs);
folderNameCompleter->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
folderNameCompleter->setCaseSensitivity(Qt::CaseInsensitive);
ui->categoryName->setCompleter(folderNameCompleter);
}
void NewEntityDialog::SetNameValidatorPath(CryStringT<char> path)
{
QDir dir(QString::fromLocal8Bit(path.c_str(), path.length()));
nameBaseDir = dir.path() + "/";
}
void NewEntityDialog::ValidateInput()
{
int cursorPos = ui->entityName->cursorPosition();
QString text = ui->entityName->text();
bool validText = entityNameValidator->validate(text, cursorPos);
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(validText);
}
void NewEntityDialog::accept()
{
if (ui->categoryName->text().isEmpty()
&& QMessageBox::question(this, "Are you sure?", "Create entity without category?", QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes)
{
return;
}
const char* devRoot = gEnv->pFileIO->GetAlias("@engroot@");
QString devRootPath(devRoot);
QFile entTemplateFile(devRootPath + "/Editor/NewEntityTemplate.ent_template");
QFile luaTemplateFile(devRootPath + "/Editor/NewEntityTemplate.lua_template");
QFile entDestFile(nameBaseDir + ui->entityName->text() + ".ent");
QFile luaDestFile(baseDir + ui->categoryName->text() + "/" + ui->entityName->text() + ".lua");
if (!entTemplateFile.exists() || !luaTemplateFile.exists())
{
QMessageBox::critical(this, tr("Missing Template Files"), tr("In order to create default entities the NewEntityTemplate.lua and NewEntityTemplate.ent template files must exist in the Templates folder!"));
return;
}
//generate the .ent file
QDir pathMaker(nameBaseDir);
pathMaker.mkpath(pathMaker.path());
QString entFileString;
if (!entTemplateFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
AZ_Warning("Editor", false, "Enable to open template file for ent : %s", entTemplateFile.fileName().toUtf8().constData());
return;
}
else
{
entFileString = entTemplateFile.readAll();
entTemplateFile.close();
}
entFileString.replace(QString("[CATEGORY_NAME]"), ui->categoryName->text());
entFileString.replace(QString("[ENTITY_NAME]"), ui->entityName->text());
if (!entDestFile.open(QIODevice::WriteOnly | QIODevice::Text))
{
AZ_Warning("Editor", false, "Enable to open destination file for ent : %s", entDestFile.fileName().toUtf8().constData());
return;
}
else
{
entDestFile.write(entFileString.toUtf8());
entDestFile.close();
}
//generate the .lua file
pathMaker.setPath(baseDir);
pathMaker.mkpath(ui->categoryName->text() + "/");
QString luaFileString;
if (!luaTemplateFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
AZ_Warning("Editor", false, "Enable to open template file for lua : %s", luaTemplateFile.fileName().toUtf8().constData());
return;
}
else
{
luaFileString = luaTemplateFile.readAll();
luaTemplateFile.close();
}
luaFileString.replace(QString("[ENTITY_NAME]"), ui->entityName->text());
if (!luaDestFile.open(QIODevice::WriteOnly | QIODevice::Text))
{
AZ_Warning("Editor", false, "Enable to open destination file for lua : %s", luaDestFile.fileName().toUtf8().constData());
return;
}
else
{
luaDestFile.write(luaFileString.toUtf8());
luaDestFile.close();
}
if (ui->openLuaCB->isChecked())
{
CFileUtil::EditTextFile(luaDestFile.fileName().toLocal8Bit().data());
}
QDialog::accept();
}
QValidator::State NewEntityDialog::EntityNameValidator::validate(QString& input, [[maybe_unused]] int& pos) const
{
if (!m_Parent)
{
return Invalid;
}
if (input.isEmpty())
{
return Invalid;
}
if (input.contains("/"))
{
return Invalid;
}
QString fileBaseName = m_Parent->ui->entityName->text();
// Characters
const char* notAllowedChars = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' ";
for (const char* c = notAllowedChars; *c; c++)
{
if (fileBaseName.contains(QLatin1Char(*c)))
{
const QChar qc = QLatin1Char(*c);
if (qc.isSpace())
{
QToolTip::showText(m_Parent->ui->entityName->mapToGlobal(QPoint()), tr("Name may not contain white space."), m_Parent->ui->entityName, m_Parent->ui->entityName->rect(), 2000);
}
else
{
QToolTip::showText(m_Parent->ui->entityName->mapToGlobal(QPoint()), tr("Invalid character \"%1\".").arg(qc), m_Parent->ui->entityName, m_Parent->ui->entityName->rect(), 2000);
}
return Invalid;
}
}
QString filename(m_Parent->nameBaseDir + m_Parent->ui->entityName->text() + ".ent");
QFile newFile(filename);
if (newFile.exists())
{
QToolTip::showText(m_Parent->ui->entityName->mapToGlobal(QPoint()), tr("Filename already exists!"), m_Parent->ui->entityName, m_Parent->ui->entityName->rect(), 2000);
return Invalid;
}
return Acceptable;
}
#include <Dialogs/QT/moc_NewEntityDialog.cpp>
@@ -1,69 +0,0 @@
/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
#ifndef NEWENTITYDIALOG_H
#define NEWENTITYDIALOG_H
#if !defined(Q_MOC_RUN)
#include <QDialog>
#include <QCompleter>
#include <QDirIterator>
#include <QStringListModel>
#include <QValidator>
#include <QEvent>
#include <QLineEdit>
#endif
namespace Ui {
class NewEntityDialog;
}
class NewEntityDialog
: public QDialog
{
Q_OBJECT
public:
explicit NewEntityDialog(QWidget* parent = 0);
~NewEntityDialog();
private:
Ui::NewEntityDialog* ui;
QString baseDir = "";
QString nameBaseDir = "";
QCompleter* folderNameCompleter = NULL;
void SetCategoryCompleterPath(CryStringT<char> path);
void SetNameValidatorPath(CryStringT<char> path);
virtual void accept();
class EntityNameValidator
: public QValidator
{
public:
explicit EntityNameValidator(NewEntityDialog* parent = 0)
: QValidator(parent)
, m_Parent(parent)
{
}
virtual State validate(QString& input, int& pos) const;
NewEntityDialog* m_Parent;
};
EntityNameValidator* entityNameValidator;
public slots:
void ValidateInput();
};
#endif // NEWENTITYDIALOG_H
@@ -1,161 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>NewEntityDialog</class>
<widget class="QDialog" name="NewEntityDialog">
<property name="windowModality">
<enum>Qt::WindowModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>111</height>
</rect>
</property>
<property name="contextMenuPolicy">
<enum>Qt::PreventContextMenu</enum>
</property>
<property name="windowTitle">
<string>New Entity</string>
</property>
<property name="sizeGripEnabled">
<bool>false</bool>
</property>
<property name="modal">
<bool>false</bool>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>30</x>
<y>70</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QLineEdit" name="entityName">
<property name="geometry">
<rect>
<x>110</x>
<y>10</y>
<width>281</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Entity Name:</string>
</property>
<property name="buddy">
<cstring>entityName</cstring>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>40</y>
<width>91</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Entity Category:</string>
</property>
<property name="buddy">
<cstring>categoryName</cstring>
</property>
</widget>
<widget class="QLineEdit" name="categoryName">
<property name="geometry">
<rect>
<x>110</x>
<y>40</y>
<width>281</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QCheckBox" name="openLuaCB">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>141</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Open Lua After Creating</string>
</property>
</widget>
</widget>
<tabstops>
<tabstop>entityName</tabstop>
<tabstop>categoryName</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>NewEntityDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>NewEntityDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>
+4 -1
View File
@@ -16,6 +16,8 @@
#include "EditorPanelUtils.h"
#include <AzCore/Utils/Utils.h>
// Qt
#include <QInputDialog>
#include <QFileDialog>
@@ -147,7 +149,8 @@ public:
virtual void HotKey_Export() override
{
QString filepath = QFileDialog::getSaveFileName(nullptr, "Select shortcut configuration to load", "Editor/Plugins/ParticleEditorPlugin/settings", "HotKey Config Files (*.hkxml)");
auto settingDir = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Editor" / "Plugins" / "ParticleEditorPlugin" / "settings";
QString filepath = QFileDialog::getSaveFileName(nullptr, "Select shortcut configuration to load", settingDir.c_str(), "HotKey Config Files (*.hkxml)");
QFile file(filepath);
if (!file.open(QIODevice::WriteOnly))
{
+1 -13
View File
@@ -230,9 +230,6 @@ EditorViewportWidget::~EditorViewportWidget()
//////////////////////////////////////////////////////////////////////////
int EditorViewportWidget::OnCreate()
{
m_renderer = GetIEditor()->GetRenderer();
m_engine = GetIEditor()->Get3DEngine();
CreateRenderContext();
return 0;
@@ -426,7 +423,7 @@ void EditorViewportWidget::Update()
return;
}
if (!m_engine || m_rcClient.isEmpty() || GetIEditor()->IsInMatEditMode())
if (m_rcClient.isEmpty() || GetIEditor()->IsInMatEditMode())
{
return;
}
@@ -796,10 +793,6 @@ void EditorViewportWidget::OnRender()
{
GetIEditor()->GetRenderer()->SetCamera(gEnv->pSystem->GetViewCamera());
}
if (m_engine)
{
m_engine->RenderWorld(0, SRenderingPassInfo::CreateGeneralPassRenderingInfo(m_Camera), __FUNCTION__);
}
return;
}
@@ -1814,11 +1807,6 @@ void EditorViewportWidget::SetViewTM(const Matrix34& viewTM, bool bMoveOnly)
//////////////////////////////////////////////////////////////////////////
void EditorViewportWidget::RenderSelectedRegion()
{
if (!m_engine)
{
return;
}
AABB box;
GetIEditor()->GetSelectedRegion(box);
if (box.IsEmpty())
@@ -395,9 +395,6 @@ protected:
};
void ResetToViewSourceType(const ViewSourceType& viewSourType);
//! Assigned renderer.
IRenderer* m_renderer = nullptr;
I3DEngine* m_engine = nullptr;
bool m_bRenderContextCreated = false;
bool m_bInRotateMode = false;
bool m_bInMoveMode = false;
+11 -11
View File
@@ -27,27 +27,27 @@
#include "Util/ImageUtil.h"
#define HELPER_MATERIAL "Editor/Objects/Helper"
#define HELPER_MATERIAL "Objects/Helper"
namespace
{
// Object names in this array must correspond to EObject enumeration.
const char* g_ObjectNames[eStatObject_COUNT] =
{
"Editor/Objects/Arrow.cgf",
"Editor/Objects/Axis.cgf",
"Editor/Objects/Sphere.cgf",
"Editor/Objects/Anchor.cgf",
"Editor/Objects/entrypoint.cgf",
"Editor/Objects/hidepoint.cgf",
"Editor/Objects/hidepoint_sec.cgf",
"Editor/Objects/reinforcement_point.cgf",
"Objects/Arrow.cgf",
"Objects/Axis.cgf",
"Objects/Sphere.cgf",
"Objects/Anchor.cgf",
"Objects/entrypoint.cgf",
"Objects/hidepoint.cgf",
"Objects/hidepoint_sec.cgf",
"Objects/reinforcement_point.cgf",
};
const char* g_IconNames[eIcon_COUNT] =
{
"Editor/Icons/ScaleWarning.png",
"Editor/Icons/RotationWarning.png",
"Icons/ScaleWarning.png",
"Icons/RotationWarning.png",
};
};
@@ -26,7 +26,7 @@
// ...
// return previousValue;
// }
// REGISTER_RESOURCE_SELECTOR("Sound", SoundFileSelector, "Editor/icons/sound_16x16.png")
// REGISTER_RESOURCE_SELECTOR("Sound", SoundFileSelector, "Icons/sound_16x16.png")
//
// To expose it to serialization:
//
@@ -228,7 +228,7 @@ AzToolsFramework::AssetBrowser::SourceFileDetails CLensFlareManager::GetSourceFi
{
if (IsLensFlareLibraryXML(fullSourceFileName))
{
return AzToolsFramework::AssetBrowser::SourceFileDetails("Editor/Icons/AssetBrowser/LensFlare_16.png");
return AzToolsFramework::AssetBrowser::SourceFileDetails("Icons/AssetBrowser/LensFlare_16.png");
}
return AzToolsFramework::AssetBrowser::SourceFileDetails();
}
+4 -4
View File
@@ -96,25 +96,25 @@ void CMatEditPreviewDlg::SetupMenuBar()
//////////////////////////////////////////////////////////////////////////
void CMatEditPreviewDlg::OnPreviewSphere()
{
m_previewCtrl->LoadModelFile("Editor/Objects/MtlSphere.cgf");
m_previewCtrl->LoadModelFile("Objects/MtlSphere.cgf");
}
//////////////////////////////////////////////////////////////////////////
void CMatEditPreviewDlg::OnPreviewBox()
{
m_previewCtrl->LoadModelFile("Editor/Objects/MtlBox.cgf");
m_previewCtrl->LoadModelFile("Objects/MtlBox.cgf");
}
//////////////////////////////////////////////////////////////////////////
void CMatEditPreviewDlg::OnPreviewTeapot()
{
m_previewCtrl->LoadModelFile("Editor/Objects/MtlTeapot.cgf");
m_previewCtrl->LoadModelFile("Objects/MtlTeapot.cgf");
}
//////////////////////////////////////////////////////////////////////////
void CMatEditPreviewDlg::OnPreviewPlane()
{
m_previewCtrl->LoadModelFile("Editor/Objects/MtlPlane.cgf");
m_previewCtrl->LoadModelFile("Objects/MtlPlane.cgf");
}
//////////////////////////////////////////////////////////////////////////
@@ -25,26 +25,26 @@
#include "MaterialBrowser.h"
#include "Util/Image.h"
#define ME_BG_TEXTURE "Editor/Materials/Stripes.dds"
#define ME_BG_TEXTURE "Materials/Stripes.dds"
#define MATERIAL_EDITOR_SPHERE_MODEL_FILE "Editor/Objects/MtlSphere.cgf"
#define MATERIAL_EDITOR_SPHERE_MODEL_FILE "Objects/MtlSphere.cgf"
#define MATERIAL_EDITOR_SPHERE_CAMERA_RADIUS 1.6f
#define MATERIAL_EDITOR_SPHERE_CAMERA_FROM_DIRECTION Vec3(0.1f, -1.0f, -0.1f)
#define MATERIAL_EDITOR_BOX_MODEL_FILE "Editor/Objects/MtlBox.cgf"
#define MATERIAL_EDITOR_BOX_MODEL_FILE "Objects/MtlBox.cgf"
#define MATERIAL_EDITOR_BOX_CAMERA_RADIUS 2.0f
#define MATERIAL_EDITOR_BOX_CAMERA_FROM_DIRECTION Vec3(0.75f, -0.75f, -0.5f)
#define MATERIAL_EDITOR_TEAPOT_MODEL_FILE "Editor/Objects/MtlTeapot.cgf"
#define MATERIAL_EDITOR_TEAPOT_MODEL_FILE "Objects/MtlTeapot.cgf"
#define MATERIAL_EDITOR_TEAPOT_CAMERA_RADIUS 1.6f
#define MATERIAL_EDITOR_TEAPOT_CAMERA_FROM_DIRECTION Vec3(0.1f, -0.75f, -0.25f)
#define MATERIAL_EDITOR_PLANE_MODEL_FILE "Editor/Objects/MtlPlane.cgf"
#define MATERIAL_EDITOR_PLANE_MODEL_FILE "Objects/MtlPlane.cgf"
#define MATERIAL_EDITOR_PLANE_CAMERA_RADIUS 1.6f
#define MATERIAL_EDITOR_PLANE_CAMERA_FROM_DIRECTION Vec3(-0.5f, 0.5f, -0.5f)
#define MATERIAL_EDITOR_SWATCH_MODEL_FILE "Editor/Objects/MtlSwatch.cgf"
#define MATERIAL_EDITOR_SWATCH_MODEL_FILE "Objects/MtlSwatch.cgf"
#define MATERIAL_EDITOR_SWATCH_CAMERA_RADIUS 1.0f
#define MATERIAL_EDITOR_SWATCH_CAMERA_FROM_DIRECTION Vec3(0.0f, 0.0f, -1.0f)
+2 -2
View File
@@ -298,7 +298,7 @@ namespace
AZ::IO::FixedMaxPathString engineRoot = AZ::Utils::GetEnginePath();
QDir engineDir = !engineRoot.empty() ? QDir(QString(engineRoot.c_str())) : QDir::current();
QString scriptFolder = engineDir.absoluteFilePath("Editor/Scripts/");
QString scriptFolder = engineDir.absoluteFilePath("Assets/Editor/Scripts/");
Path::ConvertBackSlashToSlash(scriptFolder);
path = scriptFolder + pFile;
@@ -524,7 +524,7 @@ namespace
// for example: Hello
return AZStd::make_any<AZStd::string>(stringValue.toUtf8().data());
}
else // then it looks like an integer
else // then it looks like an integer
{
// for example: 456
return AZStd::make_any<AZ::s64>(stringValue.toInt());
-2
View File
@@ -149,8 +149,6 @@
#define ID_OBJECTMODIFY_UNFREEZE 33518
#define ID_UNDO 33524
#define ID_EDIT_CLONE 33525
#define ID_SELECTION_SAVE 33527
#define ID_SELECTION_LOAD 33529
#define ID_GOTO_SELECTED 33535
#define ID_EDIT_LEVELDATA 33542
#define ID_FILE_EDITEDITORINI 33543
+1 -4
View File
@@ -196,7 +196,6 @@ SEditorSettings::SEditorSettings()
enableSceneInspector = false;
strStandardTempDirectory = "Temp";
strEditorEnv = "Editor/Editor.env";
// Init source safe params.
enableSourceControl = true;
@@ -532,7 +531,6 @@ void SEditorSettings::Save()
SaveValue("Settings", "editorConfigSpec", editorConfigSpec);
SaveValue("Settings", "TemporaryDirectory", strStandardTempDirectory);
SaveValue("Settings", "EditorEnv", strEditorEnv);
SaveValue("Settings", "ConsoleBackgroundColorThemeV2", (int)consoleBackgroundColorTheme);
@@ -747,7 +745,6 @@ void SEditorSettings::Load()
LoadValue("Settings", "TemporaryDirectory", strStandardTempDirectory);
LoadValue("Settings", "EditorEnv", strEditorEnv);
int consoleBackgroundColorThemeInt = (int)consoleBackgroundColorTheme;
LoadValue("Settings", "ConsoleBackgroundColorThemeV2", consoleBackgroundColorThemeInt);
@@ -760,7 +757,7 @@ void SEditorSettings::Load()
LoadValue("Settings", "ShowTimeInConsole", bShowTimeInConsole);
LoadValue("Settings", "EnableSceneInspector", enableSceneInspector);
//////////////////////////////////////////////////////////////////////////
// Viewport Settings.
//////////////////////////////////////////////////////////////////////////
-1
View File
@@ -419,7 +419,6 @@ AZ_POP_DISABLE_DLL_EXPORT_BASECLASS_WARNING
// This directory is related to the editor root.
QString strStandardTempDirectory;
QString strEditorEnv;
SGUI_Settings gui;
+1 -1
View File
@@ -25,7 +25,7 @@
#include "QtViewPaneManager.h"
#define TOOLBOX_FILE "Editor/ToolBox.xml"
#define TOOLBOX_FILE "ToolBox.xml"
#define TOOLBOX_NODE "ToolBox"
CSettingsManager::CSettingsManager(EditorSettingsManagerType managerType)
+3 -3
View File
@@ -19,8 +19,8 @@
class QByteArray;
#define EDITOR_LAYOUT_FILE_PATH "@engroot@/Editor/EditorLayout.xml"
#define EDITOR_SETTINGS_FILE_PATH "@engroot@/Editor/EditorSettings.xml"
#define EDITOR_LAYOUT_FILE_PATH "@user@/Editor/EditorLayout.xml"
#define EDITOR_SETTINGS_FILE_PATH "@user@/Editor/EditorSettings.xml"
#define EDITOR_LAYOUT_ROOT_NODE "EditorLayout"
#define EDITOR_SETTINGS_ROOT_NODE "EditorSettings"
#define EDITOR_SETTINGS_CONTENT_NODE "EditorSettingsContent"
@@ -30,7 +30,7 @@ class QByteArray;
#define CVARS_NODE "CVars"
#define CVAR_NODE "CVar"
#define EDITOR_EVENT_LOG_FILE_PATH "@engroot@/Editor/EditorEventLog.xml"
#define EDITOR_EVENT_LOG_FILE_PATH "@user@/Editor/EditorEventLog.xml"
#define EDITOR_EVENT_LOG_ROOT_NODE "EventRecorder"
#define EVENT_LOG_EVENT_NAME "eventName"
#define EDITOR_EVENT_LOG_ATTRIB_NAME "value"
+1 -1
View File
@@ -71,7 +71,7 @@ int CShaderEnum::EnumShaders()
m_shaders.push_back(sd);
}
XmlNodeRef root = GetISystem()->GetXmlUtils()->LoadXmlFromFile("Editor/Materials/ShaderList.xml");
XmlNodeRef root = GetISystem()->GetXmlUtils()->LoadXmlFromFile("Materials/ShaderList.xml");
if (root)
{
for (int i = 0; i < root->getChildCount(); ++i)
-488
View File
@@ -1,488 +0,0 @@
/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
#ResourceManagement QLabel
{
/*
This sets the indent Q_PROPERTY on QLabel to 0. The default value is -1,
which triggers some computation based on the font size. But that only
happens under some cicumstances, such as when using a stylesheet to set
margins or padding on the QLabel. Adding such styling suddenly causes
the indent to be applied, causing the left alignment of the text to break.
*/
qproperty-indent: 0
}
#ResourceManagement #TreeTitle
{
font-size: 12px;
font-weight: bold;
}
#ResourceManagement #ButtonBar {
margin-top: 6px;
}
#ResourceManagement #ButtonBar QPushButton {
padding: 6px 9px 6px 9px;
margin-right: 6px;
}
#ResourceManagement #Message, #ResourceManagement *[class='Message'] {
font-size: 12px;
margin-top: 6;
}
#ResourceManagement #Title {
font-size: 14px;
font-weight: bold;
}
#ResourceManagement #Refreshing {
color: #F0C32D;
}
#ResourceManagement #LinkButton, #ResourceManagement *[class='Link'] {
border: none;
color: #00A1C9;
margin-top: 6px;
font-weight: bold;
}
#ResourceManagement QHeaderView::section {
color: #999999;
font-weight: bold;
border: none;
padding-top: 0px;
padding-bottom: 3px;
padding-right: 3px;
padding-left: 3px;
}
#ResourceManagement #Table {
qproperty-showGrid: false;
border: none;
}
#ResourceManagement #Table::item {
padding-right: 12px;
padding-top: 3px;
padding-bottom: 3px;
}
#ResourceManagement #TextContentHelp
{
margin: 0px;
padding: 12px;
border-style: outset;
border-width: 1px;
border-color: #303030;
}
#ResourceManagement #TextContentEdit
{
}
#ResourceManagement #TextContentFooter
{
padding: 6px 12px 6px 12px;
border-style: outset;
border-width: 1px;
border-color: #303030;
}
#ResourceManagement #TextContentFooter QLabel
{
min-width: 48px;
max-width: 48px;
margin-right: 12px;
color: #999999;
}
#ResourceManagement #TextContentFooter QPushButton
{
padding: 6px 9px 6px 9px;
margin-left: 6px;
}
#ResourceManagement #Action {
padding: 12px;
background-color: #404040;
}
#ResourceManagement #Action #ButtonBar {
background-color: #404040;
}
#ResourceManagement #Action #Heading {
background-color: #404040;
}
#ResourceManagement #Heading #RefreshButton {
margin-left: 12px;
padding: 3px;
}
#ResourceManagement #Action #Heading #Title {
border: 0px solid #404040;
}
#ResourceManagement #Action #Heading #Message {
border: 0px solid #404040;
}
#ResourceManagement #Action #LearnMore {
background-color: #404040;
}
#ResourceManagement #Action #LearnMore #Title {
font-size: 12px;
margin-top: 24px;
font-weight:bold;
}
#ResourceManagement #Action #LearnMore #LinkButton {
background-color: #404040;
}
#ResourceManagement #Action #Title, #ResourceManagement #Action #Message {
background-color: #404040;
}
#ResourceManagement #Top {
padding: 12px;
border-style: outset;
border-width: 1px;
border-color: #303030;
}
#ResourceManagement #Bottom {
background-color: #404040;
padding: 12px;
}
#ResourceManagement #Bottom #Title {
background-color: #404040;
font-size: 12px;
font-weight: bold;
}
#ResourceManagement #Bottom #Message {
background-color: #404040;
margin-bottom: 6px;
}
#ResourceManagement #Bottom #Table {
background-color: #404040;
qproperty-alternatingRowColors: true;
}
#ResourceManagement #Bottom #Table QHeaderView {
background-color: #404040;
}
#ResourceManagement #Bottom #Table QHeaderView::section {
background-color: #404040;
}
#ResourceManagement #Bottom #Table::item {
background-color: #393a3c;
}
#ResourceManagement #Bottom #Table::item:alternate {
background-color: #303030;
}
#ResourceManagement #Bottom #Resources {
background-color: #404040;
}
#ResourceManagement #Bottom #Refreshing {
background-color: #404040;
}
#ResourceManagement #Stack #Heading #Message
{
margin-top: 0;
}
#ResourceManagement #Stack #Status #Title
{
font-size: 12px;
font-weight: bold;
margin-top: 6px;
margin-bottom: 6px;
}
#ResourceManagement #StackEvents #TitleBar {
color: #CCCCCC;
background-color: #393a3c;
border-style: outset;
border-width: 1px;
border-color: #303030;
}
#ResourceManagement #StackEvents #TitleBar * {
font-size:12px;
}
#ResourceManagement #StackEvents #TitleBar #Title {
font-weight:bold;
margin-right: 12px;
}
#ResourceManagement #StackEvents #TitleBar #InProgress #Text {
color: #F0C32D;
}
#ResourceManagement #StackEvents #TitleBar #Succeeded {
color: #43d96a;
}
#ResourceManagement #StackEvents #TitleBar #Failed {
color: #f44642;
}
#ResourceManagement #StackEvents #Content {
border-style: inset;
border-width: 1px;
border-color: #303030;
padding: 12px;
}
#ResourceManagement #StackEvents #Table {
qproperty-alternatingRowColors: true;
qproperty-showGrid: false;
}
#ResourceManagement #StackEvents QTableView::item {
background-color: #303030;
}
#ResourceManagement #StackEvents QTableView::item:focus {
selection-color: #FFFFFF;
selection-background-color: rgba(255, 153, 0, 128);
}
#ResourceManagement #StackEvents QTableView::item:alternate {
background-color: #393a3c;
}
#ResourceManagement #CreateDeployment #LearnMore
{
margin-bottom: 12px;
}
#ResourceManagement #CreateDeployment #WarningMessage
{
margin-top: 12px;
margin-bottom: 12px;
}
#ResourceManagement #LoadingError, #ResourceManagement #LoadingError #Title, #ResourceManagement #LoadingError #Message, #ResourceManagement #LoadingError #ErrorText
{
background: #404040;
}
#ResourceManagement #LoadingError #ErrorText
{
padding: 12px;
color: #f44642;
}
#ResourceManagement #Loading, #ResourceManagement #Loading #Title, #ResourceManagement #Loading #Message
{
background: #404040;
}
#ResourceManagement #Loading, #ResourceManagement #LoadingError
{
padding: 12px;
}
#ResourceManagement #MainToolbar
{
padding: 6px;
border-style: inset;
border-width: 1px;
border-color: #303030;
}
#ResourceManagement #MainToolbar QPushButton
{
border: none;
padding: 0px;
}
#ResourceManagement #MainToolbar #AddNewButton
{
margin-left: 12px;
margin-right: 12px;
}
#ResourceManagement #ResourceImporter #RegionBox:disabled
{
color: #555555;
}
#ResourceManagement #ResourceImporter #ListTable
{
qproperty-alternatingRowColors: true;
qproperty-showGrid: false;
border: none;
}
#ResourceManagement #ResourceImporter #ListTable::item
{
padding-right: 12px;
padding-top: 3px;
padding-bottom: 3px;
background-color: #333436;
}
#ResourceManagement #ResourceImporter #ListTable::item:alternate
{
background-color: #303030;
}
#ResourceManagement #ResourceImporter #SelectionTable
{
qproperty-showGrid: false;
border: none;
gridline-color: #393a3c;
}
#ResourceManagement #ResourceImporter #SelectionTable::item
{
padding: 1px 1px 1px 1px;
}
#ResourceManagement #ResourceImporter #LoadingLabel
{
color : #F0C32D;
}
#ResourceManagement #MainToolbar #SaveButton,
#ResourceManagement #MainToolbar #DeleteButton,
#ResourceManagement #MainToolbar #SourceControlButton,
#ResourceManagement #MainToolbar #AddNewButton
{
qproperty-flat: true;
}
#ResourceManagement #MainToolbar #CurrentProfile
{
margin-right: 12px;
}
#ResourceManagement #MainToolbar #CurrentDeployment
{
margin-right: 12px;
margin-left: 12px;
}
#ResourceManagement #UpdateStack #Refreshing
{
margin-top: 12px;
margin-left: 12px;
}
#ResourceManagement #UpdateStack #Message
{
margin-bottom: 6px;
}
#ResourceManagement #UpdateStack #Table {
qproperty-alternatingRowColors: true;
qproperty-showGrid: false;
}
#ResourceManagement #UpdateStack #Table::item {
background-color: #303030;
}
#ResourceManagement #UpdateStack #Table::item:alternate {
background-color: #393a3c;
}
#ResourceManagement #UpdateStack #Status {
color: #F0C32D;
}
#ProfileSelector #DeleteProfile {
width: 38px;
height: 11px;
border: none;
}
#ProfileSelector #EditSelectedProfile {
color: #00A1C9;
}
#InitializeCloudCanvasProject #Profiles QRadioButton {
margin-left: 5px;
}
#InitializeCloudCanvasProject #ProfileEditButtons {
}
#InitializeCloudCanvasProject #ProfileEditButtons QPushButton {
}
#InitializeCloudCanvasProject #ContentFrame {
x-margin: 6px;
x-padding: 6px;
border: 1px solid rgb(34, 35, 38);
x-background-color: purple;
}
#LoginDialog
{
background-color: #F8F8F8;
}
#LoginDialog Amazon--LoginWelcomeTitle
{
color: #444444;
background-color: #F8F8F8;
font-size: 21px;
qproperty-alignment: AlignCenter;
font-family: "Open Sans Semibold";
}
#LoginDialog Amazon--LoginWelcomeText
{
color: #444444;
background-color: #F8F8F8;
font-size: 13px;
qproperty-alignment: AlignLeft;
}
#LoginDialog Amazon--LoginFooterText
{
color: #999999;
background-color: #F8F8F8;
font-size: 13px;
qproperty-alignment: AlignCenter;
}
#LoginDialog Amazon--LoginWebViewFrame
{
border: 2px solid #EEEEEE;
}
#LoginDialog Amazon--LoginWebView
{
background-color: #F8F8F8;
}
+5 -6
View File
@@ -1,10 +1,9 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file alias="Editor/Style/Editor.qss">Editor.qss</file>
<file alias="Editor/Style/EditorPreferencesDialog.qss">EditorPreferencesDialog.qss</file>
<file alias="Editor/Style/CloudCanvas.qss">CloudCanvas.qss</file>
<file alias="Editor/Style/LayoutConfigDialog.qss">LayoutConfigDialog.qss</file>
<file alias="Editor/Style/GraphicsSettingsDialog.qss">GraphicsSettingsDialog.qss</file>
<file alias="Editor/Style/LensFlareEditor.qss">LensFlareEditor.qss</file>
<file alias="Assets/Editor/Style/Editor.qss">Editor.qss</file>
<file alias="Assets/Editor/Style/EditorPreferencesDialog.qss">EditorPreferencesDialog.qss</file>
<file alias="Assets/Editor/Style/LayoutConfigDialog.qss">LayoutConfigDialog.qss</file>
<file alias="Assets/Editor/Style/GraphicsSettingsDialog.qss">GraphicsSettingsDialog.qss</file>
<file alias="Assets/Editor/Style/LensFlareEditor.qss">LensFlareEditor.qss</file>
</qresource>
</RCC>
+1 -1
View File
@@ -1088,7 +1088,7 @@ void CTimeOfDayDialog::OnResetToDefaultValues()
ITimeOfDay* pTimeOfDay = gEnv->p3DEngine->GetTimeOfDay();
// Load the default time of day settings and use those to reset the time of day.
XmlNodeRef root = GetISystem()->LoadXmlFromFile("Editor/default_time_of_day.xml");
XmlNodeRef root = GetISystem()->LoadXmlFromFile("default_time_of_day.xml");
if (root)
{
pTimeOfDay->Serialize(root, true);
+3 -15
View File
@@ -335,21 +335,9 @@ void CToolBoxManager::Load(ActionManager* actionManager)
if (actionManager)
{
QByteArray array = gSettings.strEditorEnv.toUtf8();
AZStd::string actualPath = AZStd::string::format("@engroot@/%s", array.constData());
XmlNodeRef envNode = XmlHelpers::LoadXmlFromFile(actualPath.c_str());
if (envNode)
{
int childrenCount = envNode->getChildCount();
for (int idx = 0; idx < childrenCount; ++idx)
{
XmlNodeRef child = envNode->getChild(idx);
if (child->haveAttr("scriptPath") && child->haveAttr("shelvesPath"))
{
LoadShelves(child->getAttr("scriptPath"), child->getAttr("shelvesPath"), actionManager);
}
}
}
auto engineSourceAssetPath = AZ::IO::FixedMaxPath(AZ::Utils::GetEnginePath()) / "Assets";
LoadShelves((engineSourceAssetPath / "Editor" / "Scripts").c_str(),
(engineSourceAssetPath / "Editor" / "Scripts" / "Shelves").c_str(), actionManager);
}
}
+1 -1
View File
@@ -589,7 +589,7 @@ void CLayoutViewPane::ShowTitleMenu()
action->setChecked(IsFullscreen());
action = root.addAction(tr("Configure Layout..."));
if (AZ::Interface<AzFramework::AtomActiveInterface>::Get())
if (!CViewManager::IsMultiViewportEnabled())
{
action->setDisabled(true);
}
@@ -511,9 +511,6 @@ set(FILES
DimensionsDialog.cpp
DimensionsDialog.h
DimensionsDialog.ui
Dialogs/QT/NewEntityDialog.cpp
Dialogs/QT/NewEntityDialog.h
Dialogs/QT/NewEntityDialog.ui
NewLevelDialog.cpp
NewLevelDialog.h
NewLevelDialog.ui
@@ -551,7 +548,6 @@ set(FILES
DatabaseFrameWnd.h
DatabaseFrameWnd.ui
DatabaseFrameWnd.qrc
Dialogs/DuplicatedObjectsHandlerDlg.h
DocMultiArchive.h
EditMode/DeepSelection.h
FBXExporterDialog.h
@@ -711,8 +707,6 @@ set(FILES
graphicssettingsdialog.ui
AboutDialog.cpp
DatabaseFrameWnd.cpp
Dialogs/DuplicatedObjectsHandlerDlg.cpp
Dialogs/DuplicatedObjectsHandlerDlg.ui
ErrorReportTableModel.h
ErrorReportTableModel.cpp
EditMode/DeepSelection.cpp
@@ -376,9 +376,9 @@ private:
// Tracks new entities that have not yet been saved.
AZStd::unordered_set<AZ::EntityId> m_unsavedEntities;
const AZStd::string m_defaultComponentIconLocation = "Editor/Icons/Components/Component_Placeholder.svg";
const AZStd::string m_defaultComponentViewportIconLocation = "Editor/Icons/Components/Viewport/Component_Placeholder.png";
const AZStd::string m_defaultEntityIconLocation = "Editor/Icons/Components/Viewport/Transform.png";
const AZStd::string m_defaultComponentIconLocation = "Icons/Components/Component_Placeholder.svg";
const AZStd::string m_defaultComponentViewportIconLocation = "Icons/Components/Viewport/Component_Placeholder.png";
const AZStd::string m_defaultEntityIconLocation = "Icons/Components/Viewport/Transform.png";
bool m_debugDisplayBusImplementationActive = false;
@@ -33,8 +33,8 @@ void ComponentCategoryList::Init()
headers << tr("Categories");
setHeaderLabels(headers);
const QString parentCategoryIconPath = QString("Editor/Icons/PropertyEditor/Browse_on.png");
const QString categoryIconPath = QString("Editor/Icons/PropertyEditor/Browse.png");
const QString parentCategoryIconPath = QString("Icons/PropertyEditor/Browse_on.png");
const QString categoryIconPath = QString("Icons/PropertyEditor/Browse.png");
QTreeWidgetItem* allCategory = new QTreeWidgetItem(this);
allCategory->setText(0, "All");
@@ -94,7 +94,7 @@ namespace AZ
{
if (AzFramework::StringFunc::Equal(extensionString.c_str(), potentialExtension.c_str()))
{
return AzToolsFramework::AssetBrowser::SourceFileDetails("Editor/Icons/AssetBrowser/FBX_16.png");
return AzToolsFramework::AssetBrowser::SourceFileDetails("Icons/AssetBrowser/FBX_16.png");
}
}
}
@@ -1,17 +1,17 @@
<RCC>
<qresource prefix="/Icons">
<file alias="Browse.png">../../../../Editor/Icons/PropertyEditor/Browse.png</file>
<file alias="Browse_On.png">../../../../Editor/Icons/PropertyEditor/Browse_on.png</file>
<file alias="DeleteRule.png">../../../../Editor/Icons/PropertyEditor/remove.png</file>
<file alias="DeleteGroup.png">../../../../Editor/Icons/PropertyEditor/remove.png</file>
<file alias="Error.png">../../../../Editor/Icons/PropertyEditor/error_icon.png</file>
<file alias="RefreshGroup.png">../../../../Editor/Icons/PropertyEditor/reset_icon.png</file>
<file alias="MeshSelectorBrowse.png">../../../../Editor/Icons/AssetImporter/mesh.png</file>
<file alias="MeshSelectorBrowse_On.png">../../../../Editor/Icons/AssetImporter/mesh_on.png</file>
<file alias="MeshTreeIcon.png">../../../../Editor/Icons/AssetImporter/mesh_on.png</file>
<file alias="GroupTreeIcon.png">../../../../Editor/Icons/AssetImporter/group_icon.png</file>
<file alias="CheckMark_Checked.png">../../../../Editor/Icons/checkmark_checked.png</file>
<file alias="CheckMark_Hover.png">../../../../Editor/Icons/checkmark_checked_hover.png</file>
<file alias="CheckMark_Unchecked_Hover.png">../../../../Editor/Icons/checkmark_unchecked_hover.png</file>
<file alias="Browse.png">../../../../Assets/Editor/Icons/PropertyEditor/Browse.png</file>
<file alias="Browse_On.png">../../../../Assets/Editor/Icons/PropertyEditor/Browse_on.png</file>
<file alias="DeleteRule.png">../../../../Assets/Editor/Icons/PropertyEditor/remove.png</file>
<file alias="DeleteGroup.png">../../../../Assets/Editor/Icons/PropertyEditor/remove.png</file>
<file alias="Error.png">../../../../Assets/Editor/Icons/PropertyEditor/error_icon.png</file>
<file alias="RefreshGroup.png">../../../../Assets/Editor/Icons/PropertyEditor/reset_icon.png</file>
<file alias="MeshSelectorBrowse.png">../../../../Assets/Editor/Icons/AssetImporter/mesh.png</file>
<file alias="MeshSelectorBrowse_On.png">../../../../Assets/Editor/Icons/AssetImporter/mesh_on.png</file>
<file alias="MeshTreeIcon.png">../../../../Assets/Editor/Icons/AssetImporter/mesh_on.png</file>
<file alias="GroupTreeIcon.png">../../../../Assets/Editor/Icons/AssetImporter/group_icon.png</file>
<file alias="CheckMark_Checked.png">../../../../Assets/Editor/Icons/checkmark_checked.png</file>
<file alias="CheckMark_Hover.png">../../../../Assets/Editor/Icons/checkmark_checked_hover.png</file>
<file alias="CheckMark_Unchecked_Hover.png">../../../../Assets/Editor/Icons/checkmark_unchecked_hover.png</file>
</qresource>
</RCC>
@@ -175,7 +175,7 @@ CDockTitleBarWidget::CDockTitleBarWidget(QDockWidget* dockWidget)
m_layout->addLayout(m_buttonLayout, 0);
m_floatButton = new CDockWidgetTitleButton(dockWidget);
m_floatButton->setIcon(QIcon("Editor/Icons/float.png"));
m_floatButton->setIcon(QIcon("Icons/float.png"));
m_floatButton->setVisible(opt.floatable);
m_floatButton->setToolTip("Toggle Floating");
connect(m_floatButton, SIGNAL(clicked()), SLOT(OnFloatButtonPressed()));
@@ -185,7 +185,7 @@ CDockTitleBarWidget::CDockTitleBarWidget(QDockWidget* dockWidget)
// close.png is a standard icon that looks similar to one in Fusion theme but
// uses alpha so it can be used on dark theme as well.
// style()->standardIcon(QStyle::SP_TitleBarCloseButton, &opt, dockWidget)
QIcon closeIcon("Editor/Icons/close.png");
QIcon closeIcon("Icons/close.png");
m_closeButton->setIcon(closeIcon);
m_closeButton->setVisible(opt.closable);
m_closeButton->setToolTip("Close");
@@ -80,7 +80,7 @@ void PropertyRowLocalFrameBase::reset(QPropertyTree* tree)
void PropertyRowLocalFrameBase::redraw(const PropertyDrawContext& context)
{
static QIcon gizmo("Editor/Icons/animation/gizmo_location.png");
static QIcon gizmo("Icons/animation/gizmo_location.png");
gizmo.paint(context.painter, context.widgetRect.adjusted(1, 1, 1, 1), Qt::AlignRight);
}
@@ -292,7 +292,7 @@ const QIcon& PropertyRowResourceSelector::buttonIcon(const QPropertyTree* tree,
}
case BUTTON_CREATE:
{
static QIcon addIcon("Editor/Icons/animation/add.png");
static QIcon addIcon("Icons/animation/add.png");
;
return addIcon;
}