mirror of
https://github.com/Linloir/SceneEditor.git
synced 2025-12-18 07:58:11 +08:00
[UI][ADD] Embed model setter in editor page
This commit is contained in:
parent
3b06ec6ad8
commit
ace9e258e9
@ -36,6 +36,12 @@ EditorPage::EditorPage(QWidget* parent) :
|
|||||||
_modelSelector = new ModelSelector(_mainWidget);
|
_modelSelector = new ModelSelector(_mainWidget);
|
||||||
_mainLayout->addWidget(_modelSelector);
|
_mainLayout->addWidget(_modelSelector);
|
||||||
_modelSelector->show();
|
_modelSelector->show();
|
||||||
|
|
||||||
|
// Generate editing layout
|
||||||
|
_editingLayout = new QVBoxLayout(_mainWidget);
|
||||||
|
_editingLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
_editingLayout->setSpacing(16);
|
||||||
|
_mainLayout->addLayout(_editingLayout);
|
||||||
|
|
||||||
// Generate scene viewer
|
// Generate scene viewer
|
||||||
_sceneViewerContainer = new RoundedCornerWidget(_mainWidget);
|
_sceneViewerContainer = new RoundedCornerWidget(_mainWidget);
|
||||||
@ -47,11 +53,27 @@ EditorPage::EditorPage(QWidget* parent) :
|
|||||||
_sceneViewer = new SceneViewer(_sceneViewerContainer->mainWidget());
|
_sceneViewer = new SceneViewer(_sceneViewerContainer->mainWidget());
|
||||||
_sceneViewerContainerLayout->addWidget(_sceneViewer);
|
_sceneViewerContainerLayout->addWidget(_sceneViewer);
|
||||||
_sceneViewer->show();
|
_sceneViewer->show();
|
||||||
_mainLayout->addWidget(_sceneViewerContainer);
|
_editingLayout->addWidget(_sceneViewerContainer);
|
||||||
_sceneViewerContainer->show();
|
_sceneViewerContainer->show();
|
||||||
|
|
||||||
|
// Generate model setter
|
||||||
|
_modelSetter = new ModelSetter(_mainWidget);
|
||||||
|
_modelSetter->setMaximumHeight(150);
|
||||||
|
_editingLayout->addWidget(_modelSetter);
|
||||||
|
_modelSetter->show();
|
||||||
|
_modelSetter->setObjectName("ModelSetter");
|
||||||
|
_modelSetter->setStyleSheet("#ModelSetter { background-color: #f0f0f0; border-radius: 10px; }");
|
||||||
|
|
||||||
// Connect signals
|
// Connect signals
|
||||||
connect(_modelSelector, &ModelSelector::onObjectSelected, _sceneViewer, &SceneViewer::addObject);
|
connect(_modelSelector, &ModelSelector::onObjectSelected, _sceneViewer, &SceneViewer::addObject);
|
||||||
|
connect(_sceneViewer, &SceneViewer::onSelect, _modelSetter, &ModelSetter::update);
|
||||||
|
connect(_sceneViewer, &SceneViewer::onUpdate, _modelSetter, &ModelSetter::update);
|
||||||
|
connect(_modelSetter, &ModelSetter::onAdjustStart, _sceneViewer, &SceneViewer::setDragFlag);
|
||||||
|
connect(_modelSetter, &ModelSetter::onAdjustEnd, _sceneViewer, &SceneViewer::clearDragFlag);
|
||||||
|
connect(_modelSetter, &ModelSetter::onAdjust, this, [=]() {
|
||||||
|
_sceneViewer->update();
|
||||||
|
});
|
||||||
|
connect(_modelSetter, &ModelSetter::onDeleteObject, _sceneViewer, &SceneViewer::deleteObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorPage::~EditorPage() {}
|
EditorPage::~EditorPage() {}
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
#include "sceneviewer.h"
|
#include "sceneviewer.h"
|
||||||
#include "roundedcornerwidget.h"
|
#include "roundedcornerwidget.h"
|
||||||
#include "modelselector.h"
|
#include "modelselector.h"
|
||||||
|
#include "modelsetter.h"
|
||||||
|
|
||||||
class EditorPage : public PageWidget {
|
class EditorPage : public PageWidget {
|
||||||
|
|
||||||
@ -35,10 +36,14 @@ private:
|
|||||||
|
|
||||||
ModelSelector* _modelSelector = nullptr;
|
ModelSelector* _modelSelector = nullptr;
|
||||||
|
|
||||||
|
QVBoxLayout* _editingLayout = nullptr;
|
||||||
|
|
||||||
RoundedCornerWidget* _sceneViewerContainer = nullptr;
|
RoundedCornerWidget* _sceneViewerContainer = nullptr;
|
||||||
QVBoxLayout* _sceneViewerContainerLayout = nullptr;
|
QVBoxLayout* _sceneViewerContainerLayout = nullptr;
|
||||||
SceneViewer* _sceneViewer = nullptr;
|
SceneViewer* _sceneViewer = nullptr;
|
||||||
|
|
||||||
|
ModelSetter* _modelSetter = nullptr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual PushButton* getPageIconButton(QWidget* context) override;
|
virtual PushButton* getPageIconButton(QWidget* context) override;
|
||||||
virtual PushButton* getPageTextButton(QWidget* context) override;
|
virtual PushButton* getPageTextButton(QWidget* context) override;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user