!XT (BREAK-16) (Sandbox) Remove double-newlines at the end of files.
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorAnimation / CharacterTool / DisplayParametersPanel.cpp
blobfe8c2822b982dea072fb1e1c5ed3a87b1acc46c8
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 #include "stdafx.h"
5 #include <Serialization/QPropertyTree/QPropertyTree.h>
6 #include "Expected.h"
7 #include "Serialization.h"
8 #include "DisplayParametersPanel.h"
9 #include <QBoxLayout>
10 #include <QViewport.h>
11 #include <CryAnimation/ICryAnimation.h>
12 #include "CharacterDocument.h"
14 namespace CharacterTool
17 DisplayParametersPanel::DisplayParametersPanel(QWidget* parent, CharacterDocument* document, Serialization::SContextLink* context)
18 : QWidget(parent)
19 , m_displayOptions(document->GetDisplayOptions())
20 , m_document(document)
21 , m_changingDisplayOptions(false)
23 EXPECTED(connect(document, &CharacterDocument::SignalDisplayOptionsChanged, this, &DisplayParametersPanel::OnDisplayOptionsUpdated));
24 EXPECTED(connect(document, &CharacterDocument::SignalCharacterLoaded, this, &DisplayParametersPanel::OnDisplayOptionsUpdated));
26 QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom, this);
27 layout->setMargin(0);
28 layout->setSpacing(0);
30 m_propertyTree = new QPropertyTree(this);
31 PropertyTreeStyle treeStyle(QPropertyTree::defaultTreeStyle());
32 treeStyle.propertySplitter = false;
33 treeStyle.groupRectangle = false;
34 m_propertyTree->setTreeStyle(treeStyle);
35 m_propertyTree->setSizeHint(QSize(220, 100));
36 m_propertyTree->setExpandLevels(0);
37 m_propertyTree->setSliderUpdateDelay(5);
38 m_propertyTree->setAutoRevert(false);
39 m_propertyTree->setArchiveContext(context);
40 m_propertyTree->setValueColumnWidth(0.6f);
41 m_propertyTree->attach(Serialization::SStruct(*m_displayOptions));
42 EXPECTED(connect(m_propertyTree, &QPropertyTree::signalChanged, this, &DisplayParametersPanel::OnPropertyTreeChanged));
43 EXPECTED(connect(m_propertyTree, &QPropertyTree::signalContinuousChange, this, &DisplayParametersPanel::OnPropertyTreeChanged));
44 layout->addWidget(m_propertyTree, 1);
47 DisplayParametersPanel::~DisplayParametersPanel()
52 void DisplayParametersPanel::Serialize(Serialization::IArchive& ar)
54 ar(*m_propertyTree, "propertyTree");
57 void DisplayParametersPanel::OnDisplayOptionsUpdated()
59 if (m_changingDisplayOptions)
60 return;
62 m_propertyTree->revertNoninterrupting();
65 void DisplayParametersPanel::OnPropertyTreeChanged()
67 m_changingDisplayOptions = true;
68 if (m_document)
69 m_document->DisplayOptionsChanged();
70 m_changingDisplayOptions = false;