1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-03 21:19:40 +00:00

moved edit mode handling from SceneSubView to WorldspaceWidget

This commit is contained in:
Marc Zinnschlag 2015-09-27 14:38:12 +02:00
parent 5d9863aec1
commit 9bf27c7e37
4 changed files with 27 additions and 23 deletions

View file

@ -42,7 +42,7 @@ namespace
CSVRender::WorldspaceWidget::WorldspaceWidget (CSMDoc::Document& document, QWidget* parent) CSVRender::WorldspaceWidget::WorldspaceWidget (CSMDoc::Document& document, QWidget* parent)
: SceneWidget (document.getData().getResourceSystem(), parent), mSceneElements(0), mRun(0), mDocument(document), : SceneWidget (document.getData().getResourceSystem(), parent), mSceneElements(0), mRun(0), mDocument(document),
mInteractionMask (0) mInteractionMask (0), mEditMode (0), mLocked (false)
{ {
setAcceptDrops(true); setAcceptDrops(true);
@ -199,11 +199,14 @@ CSVWidget::SceneToolRun *CSVRender::WorldspaceWidget::makeRunTool (
CSVWidget::SceneToolMode *CSVRender::WorldspaceWidget::makeEditModeSelector ( CSVWidget::SceneToolMode *CSVRender::WorldspaceWidget::makeEditModeSelector (
CSVWidget::SceneToolbar *parent) CSVWidget::SceneToolbar *parent)
{ {
CSVWidget::SceneToolMode *tool = new CSVWidget::SceneToolMode (parent, "Edit Mode"); mEditMode = new CSVWidget::SceneToolMode (parent, "Edit Mode");
addEditModeSelectorButtons (tool); addEditModeSelectorButtons (mEditMode);
return tool; connect (mEditMode, SIGNAL (modeChanged (const std::string&)),
this, SLOT (editModeChanged (const std::string&)));
return mEditMode;
} }
CSVRender::WorldspaceWidget::DropType CSVRender::WorldspaceWidget::getDropType ( CSVRender::WorldspaceWidget::DropType CSVRender::WorldspaceWidget::getDropType (
@ -279,6 +282,13 @@ void CSVRender::WorldspaceWidget::updateUserSetting (const QString& name, const
{ {
if (!value.isEmpty() && storeMappingSetting (name, value.first())) if (!value.isEmpty() && storeMappingSetting (name, value.first()))
return; return;
dynamic_cast<CSVRender::EditMode&> (*mEditMode->getCurrent()).updateUserSetting (name, value);
}
void CSVRender::WorldspaceWidget::setEditLock (bool locked)
{
dynamic_cast<CSVRender::EditMode&> (*mEditMode->getCurrent()).setEditLock (locked);
} }
void CSVRender::WorldspaceWidget::addVisibilitySelectorButtons ( void CSVRender::WorldspaceWidget::addVisibilitySelectorButtons (
@ -468,6 +478,11 @@ void CSVRender::WorldspaceWidget::debugProfileAboutToBeRemoved (const QModelInde
} }
} }
void CSVRender::WorldspaceWidget::editModeChanged (const std::string& id)
{
dynamic_cast<CSVRender::EditMode&> (*mEditMode->getCurrent()).setEditLock (mLocked);
}
void CSVRender::WorldspaceWidget::elementSelectionChanged() void CSVRender::WorldspaceWidget::elementSelectionChanged()
{ {
setVisibilityMask (getVisibilityMask()); setVisibilityMask (getVisibilityMask());

View file

@ -36,6 +36,8 @@ namespace CSVRender
CSMDoc::Document& mDocument; CSMDoc::Document& mDocument;
unsigned int mInteractionMask; unsigned int mInteractionMask;
std::map<std::pair<Qt::MouseButton, bool>, std::string> mButtonMapping; std::map<std::pair<Qt::MouseButton, bool>, std::string> mButtonMapping;
CSVWidget::SceneToolMode *mEditMode;
bool mLocked;
public: public:
@ -100,6 +102,8 @@ namespace CSVRender
virtual void updateUserSetting (const QString& name, const QStringList& value); virtual void updateUserSetting (const QString& name, const QStringList& value);
virtual void setEditLock (bool locked);
protected: protected:
virtual void addVisibilitySelectorButtons (CSVWidget::SceneToolToggle2 *tool); virtual void addVisibilitySelectorButtons (CSVWidget::SceneToolToggle2 *tool);
@ -158,6 +162,7 @@ namespace CSVRender
void debugProfileAboutToBeRemoved (const QModelIndex& parent, int start, int end); void debugProfileAboutToBeRemoved (const QModelIndex& parent, int start, int end);
void editModeChanged (const std::string& id);
protected slots: protected slots:

View file

@ -27,8 +27,7 @@
#include "creator.hpp" #include "creator.hpp"
CSVWorld::SceneSubView::SceneSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document) CSVWorld::SceneSubView::SceneSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document)
: SubView (id), mScene(NULL), mLayout(new QHBoxLayout), mDocument(document), mToolbar(NULL), : SubView (id), mScene(NULL), mLayout(new QHBoxLayout), mDocument(document), mToolbar(NULL)
mEditMode (0), mLocked (false)
{ {
QVBoxLayout *layout = new QVBoxLayout; QVBoxLayout *layout = new QVBoxLayout;
@ -123,16 +122,14 @@ CSVWidget::SceneToolbar* CSVWorld::SceneSubView::makeToolbar (CSVRender::Worldsp
CSVWidget::SceneToolRun *runTool = widget->makeRunTool (toolbar); CSVWidget::SceneToolRun *runTool = widget->makeRunTool (toolbar);
toolbar->addTool (runTool); toolbar->addTool (runTool);
mEditMode = widget->makeEditModeSelector (toolbar); toolbar->addTool (widget->makeEditModeSelector (toolbar));
toolbar->addTool (mEditMode);
return toolbar; return toolbar;
} }
void CSVWorld::SceneSubView::setEditLock (bool locked) void CSVWorld::SceneSubView::setEditLock (bool locked)
{ {
mLocked = locked; mScene->setEditLock (locked);
dynamic_cast<CSVRender::EditMode&> (*mEditMode->getCurrent()).setEditLock (locked);
} }
void CSVWorld::SceneSubView::setStatusBar (bool show) void CSVWorld::SceneSubView::setStatusBar (bool show)
@ -153,7 +150,6 @@ std::string CSVWorld::SceneSubView::getTitle() const
void CSVWorld::SceneSubView::updateUserSetting (const QString& name, const QStringList& value) void CSVWorld::SceneSubView::updateUserSetting (const QString& name, const QStringList& value)
{ {
mScene->updateUserSetting (name, value); mScene->updateUserSetting (name, value);
dynamic_cast<CSVRender::EditMode&> (*mEditMode->getCurrent()).updateUserSetting (name, value);
CSVDoc::SubView::updateUserSetting (name, value); CSVDoc::SubView::updateUserSetting (name, value);
} }
@ -259,12 +255,4 @@ void CSVWorld::SceneSubView::replaceToolbarAndWorldspace (CSVRender::WorldspaceW
mScene->selectDefaultNavigationMode(); mScene->selectDefaultNavigationMode();
setFocusProxy (mScene); setFocusProxy (mScene);
connect (mEditMode, SIGNAL (modeChanged (const std::string&)),
this, SLOT (editModeChanged (const std::string&)));
}
void CSVWorld::SceneSubView::editModeChanged (const std::string& id)
{
dynamic_cast<CSVRender::EditMode&> (*mEditMode->getCurrent()).setEditLock (mLocked);
} }

View file

@ -46,8 +46,6 @@ namespace CSVWorld
CSMDoc::Document& mDocument; CSMDoc::Document& mDocument;
CSVWidget::SceneToolbar* mToolbar; CSVWidget::SceneToolbar* mToolbar;
std::string mTitle; std::string mTitle;
CSVWidget::SceneToolMode *mEditMode;
bool mLocked;
public: public:
@ -86,8 +84,6 @@ namespace CSVWorld
void cellSelectionChanged (const CSMWorld::UniversalId& id); void cellSelectionChanged (const CSMWorld::UniversalId& id);
void handleDrop(const std::vector<CSMWorld::UniversalId>& data); void handleDrop(const std::vector<CSMWorld::UniversalId>& data);
void editModeChanged (const std::string& id);
}; };
} }