mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-11 09:36:37 +00:00
added selection mode UI
This commit is contained in:
parent
c1901069be
commit
0305ae3693
@ -85,7 +85,7 @@ opencs_units (view/widget
|
|||||||
|
|
||||||
opencs_units (view/render
|
opencs_units (view/render
|
||||||
scenewidget worldspacewidget pagedworldspacewidget unpagedworldspacewidget
|
scenewidget worldspacewidget pagedworldspacewidget unpagedworldspacewidget
|
||||||
previewwidget editmode instancemode
|
previewwidget editmode instancemode instanceselectionmode
|
||||||
)
|
)
|
||||||
|
|
||||||
opencs_units_noqt (view/render
|
opencs_units_noqt (view/render
|
||||||
|
@ -16,10 +16,11 @@
|
|||||||
#include "object.hpp"
|
#include "object.hpp"
|
||||||
#include "worldspacewidget.hpp"
|
#include "worldspacewidget.hpp"
|
||||||
#include "pagedworldspacewidget.hpp"
|
#include "pagedworldspacewidget.hpp"
|
||||||
|
#include "instanceselectionmode.hpp"
|
||||||
|
|
||||||
CSVRender::InstanceMode::InstanceMode (WorldspaceWidget *worldspaceWidget, QWidget *parent)
|
CSVRender::InstanceMode::InstanceMode (WorldspaceWidget *worldspaceWidget, QWidget *parent)
|
||||||
: EditMode (worldspaceWidget, QIcon (":placeholder"), Element_Reference, "Instance editing",
|
: EditMode (worldspaceWidget, QIcon (":placeholder"), Element_Reference, "Instance editing",
|
||||||
parent), mSubMode (0)
|
parent), mSubMode (0), mSelectionMode (0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,16 +49,30 @@ void CSVRender::InstanceMode::activate (CSVWidget::SceneToolbar *toolbar)
|
|||||||
"<font color=Red>Not implemented yet</font color>");
|
"<font color=Red>Not implemented yet</font color>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!mSelectionMode)
|
||||||
|
mSelectionMode = new InstanceSelectionMode (toolbar);
|
||||||
|
|
||||||
EditMode::activate (toolbar);
|
EditMode::activate (toolbar);
|
||||||
|
|
||||||
toolbar->addTool (mSubMode);
|
toolbar->addTool (mSubMode);
|
||||||
|
toolbar->addTool (mSelectionMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVRender::InstanceMode::deactivate (CSVWidget::SceneToolbar *toolbar)
|
void CSVRender::InstanceMode::deactivate (CSVWidget::SceneToolbar *toolbar)
|
||||||
{
|
{
|
||||||
toolbar->removeTool (mSubMode);
|
if (mSelectionMode)
|
||||||
delete mSubMode;
|
{
|
||||||
mSubMode = 0;
|
toolbar->removeTool (mSelectionMode);
|
||||||
|
delete mSelectionMode;
|
||||||
|
mSelectionMode = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mSubMode)
|
||||||
|
{
|
||||||
|
toolbar->removeTool (mSubMode);
|
||||||
|
delete mSubMode;
|
||||||
|
mSubMode = 0;
|
||||||
|
}
|
||||||
|
|
||||||
EditMode::deactivate (toolbar);
|
EditMode::deactivate (toolbar);
|
||||||
}
|
}
|
||||||
|
@ -10,10 +10,13 @@ namespace CSVWidget
|
|||||||
|
|
||||||
namespace CSVRender
|
namespace CSVRender
|
||||||
{
|
{
|
||||||
|
class InstanceSelectionMode;
|
||||||
|
|
||||||
class InstanceMode : public EditMode
|
class InstanceMode : public EditMode
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
CSVWidget::SceneToolMode *mSubMode;
|
CSVWidget::SceneToolMode *mSubMode;
|
||||||
|
InstanceSelectionMode *mSelectionMode;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
27
apps/opencs/view/render/instanceselectionmode.cpp
Normal file
27
apps/opencs/view/render/instanceselectionmode.cpp
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
#include "instanceselectionmode.hpp"
|
||||||
|
|
||||||
|
CSVRender::InstanceSelectionMode::InstanceSelectionMode (CSVWidget::SceneToolbar *parent)
|
||||||
|
: CSVWidget::SceneToolMode (parent, "Selection Mode")
|
||||||
|
{
|
||||||
|
addButton (":placeholder", "cube-centre",
|
||||||
|
"Centred cube"
|
||||||
|
"<ul><li>Drag with primary (make instances the selection) or secondary (invert selection state) select button from the centre of the selection cube outwards</li>"
|
||||||
|
"<li>The selection cube is aligned to the word space axis</li>"
|
||||||
|
"<li>If context selection mode is enabled, a drag with primary/secondary edit not starting on an instance will have the same effect</li>"
|
||||||
|
"</ul>"
|
||||||
|
"<font color=Red>Not implemented yet</font color>");
|
||||||
|
addButton (":placeholder", "cube-corner",
|
||||||
|
"Cube corner to corner"
|
||||||
|
"<ul><li>Drag with primary (make instances the selection) or secondary (invert selection state) select button from one corner of the selection cube to the opposite corner</li>"
|
||||||
|
"<li>The selection cube is aligned to the word space axis</li>"
|
||||||
|
"<li>If context selection mode is enabled, a drag with primary/secondary edit not starting on an instance will have the same effect</li>"
|
||||||
|
"</ul>"
|
||||||
|
"<font color=Red>Not implemented yet</font color>");
|
||||||
|
addButton (":placeholder", "sphere",
|
||||||
|
"Centred sphere"
|
||||||
|
"<ul><li>Drag with primary (make instances the selection) or secondary (invert selection state) select button from the centre of the selection sphere outwards</li>"
|
||||||
|
"<li>If context selection mode is enabled, a drag with primary/secondary edit not starting on an instance will have the same effect</li>"
|
||||||
|
"</ul>"
|
||||||
|
"<font color=Red>Not implemented yet</font color>");
|
||||||
|
}
|
19
apps/opencs/view/render/instanceselectionmode.hpp
Normal file
19
apps/opencs/view/render/instanceselectionmode.hpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#ifndef CSV_RENDER_INSTANCE_SELECTION_MODE_H
|
||||||
|
#define CSV_RENDER_INSTANCE_SELECTION_MODE_H
|
||||||
|
|
||||||
|
#include "../widget/scenetoolmode.hpp"
|
||||||
|
|
||||||
|
namespace CSVRender
|
||||||
|
{
|
||||||
|
class InstanceSelectionMode : public CSVWidget::SceneToolMode
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
InstanceSelectionMode (CSVWidget::SceneToolbar *parent);
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user